playbooks是 一个不同于使用Ansible命令行执行方式的模式,其功能更强大灵活。简单来说,playbook是一个非常简单的配置管理和多主机部署系统,不同于任何已经存在的模式,可作为一个适合部署复杂应用程序的基础。Playbook可以定制配置,可以按照指定的操作步骤有序执行,支持同步和异步方式。值得注意的是playbook是通过YAML格式来进行描述定义的。
playbook最佳使用方法:
- 鼓励文件的重用,尽量使用include和role避免重复的代码。
- 尽量把大的文件分成小的文件
https://github.com/ansible/ansible-examples
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| production # inventory file for production servers staging # inventory file for staging environment group_vars/ group1 # 在这里,我们将变量分配给特定的组 group2 # "" host_vars/ hostname1 # 如果系统需要特定的变量,请将其放在此处 hostname2 # "" library/ # 如果有任何自定义模块,请将其放在此处(可选) filter_plugins/ # i如果有任何自定义过滤器插件,请将其放在此处(可选) site.yml # master playbook webservers.yml # 适用于Web服务器层的playbook dbservers.yml # playbook for dbserver tier roles/ common/ # 代表"role"的命名 tasks/ # main.yml # <-- tasks file can include smaller files if warranted handlers/ # 处理程序 main.yml # <-- handlers file defaults/ # main.yml # <-- default lower priority variables for this role vars/ # main.yml # <-- variables associated with this role files/ # bar.txt # <-- files for use with the copy resource foo.sh # <-- script files for use with the script resource templates/ # <-- files for use with the template resource ntp.conf.j2 # <------- templates end in .j2 README.md # <-- role 角色用途 及 使用说明 meta/ # main.yml # <-- role dependencies webtier/ # 上述“ common”相同的结构,用于webtier角色 monitoring/ # "" fooapp/ # ""
|
ansible目录及文件含义