1、实施推荐做法
1.1 自动化思想
Jeff Geerling提出自动化思想:让事情变得简单、维持组织化、经常维护
最佳实践 | 说明 |
---|---|
Keep Thing Simple | 让事情变得简单 |
Stay Organized | 维持组织化 |
Test Often | 经常维护 |
2、让事情变得简单
2.1 让playbook变得可读
- 让playbook变得容易阅读
- 确保每一个缩进一致
- 给每一个任务取一个有意义的名字
- 通过定义变量简化playbook
- 除非一定要使用循环,否则最好不使用循环
- 使用jinja2模版是非常不错的选择
- yaml文件使用展开式写法
- name: postfix 安装和升级
yum:
name: postfix
state: latest
notify: restart postfix
- name: postfix 运行
service:
name: postfix
state: started
2.2 使用已有的模块
- 写好了playbook以后,如果可以的话,使用静态inventory可以方便阅读,合理使用debug模块可以发现playbook是否正常执行,尽量把一个大的playbook拆分成若干个小的playbook(解耦),使用imports 和 includes 导入它们。
- 尽可能在playbook中避免使用command、shell、raw模块,使用已有模块可以保证幂等性。
- 很多模块都有state参数,如果可以,尽量将他们描述出来(尽管不描述他们有默认值),便于后期维护。
- name: 使用shell模块,不推荐
shell: yum install httpd -y
- name: 使用yum模块安装httpd,推荐
yum:
name: httpd
state: latest
2.3 统一风格
确定统一编码风格有利于后期维护
- 缩进空格统一标准
- 如何给taks、plays、roles、vars命名
- 怎么写注释
3、维持组织
组织化管理可以提高playbook的可维护性,便于排错和审计