作者:裸身耍丶暧昧800 | 来源:互联网 | 2023-10-13 13:32
原文:蚊子132围绕对象存储系统(Swift)做研发工作蚊子132当时的第一个任务是在青岛IDC部署一套小规模的Openstack集群用于支持内部的开发环境。虽然我
原文:蚊子132 围绕对象存储系统(Swift)做研发工作
蚊子132当时的第一个任务是在青岛IDC部署一套小规模的Openstack集群用于支持内部的开发环境。
虽然我从11年开始接触Openstack,但一直围绕对象存储系统(Swift)做研发工作,对于nova和glance了解的不多,好在有大牛的指导和帮助下,我花了一周的时间把每个服务都详细地了解一遍并手动配置成功后,使用puppet对openstack的包,服务,静态配置文件经行了管理。在这个阶段中,我熟悉了puppet 常见的resource的用法,以及C/S架构puppet的配置,但还是属于初级阶段。
下一个任务仍是与openstack集群部署相关,我发现之前写的puppet代码并不合理:
1. 首先配置文件中许多参数是需要配置的,于是我开始研究使用template来替换原先的静态文件。
2. 其次其他服务都是手动安装和配置的,比如mysql和rabbitmq,每台机器上还需要安装ntp服务等等。于是我又添加上了管理相关服务的代码。
3. 然后我发现把所有的类放到一个module里实在是不太合理,于是开始进行初步的分离,把每个服务都抽象成一个单独的模块,例如puppet-mysql,puppet-openstack等等。
在这个阶段,我掌握了如何根据实际情况将逻辑抽象为class,define和module。
随后,我发现github的puppetlabs project已经有许多比较成熟的module,于是开始使用upstream的代码来替代原先旧有的代码。阅读这些代码使得我掌握了一些新知识,通过阅读这些有经验的puppet程序员编写的代码,我掌握了如何使用逻辑判断,选择器,链式语法,各种数据类型,函数的用法。