为了避免playbook过于冗长,也同时为了可以重复利用和组织管理playbook,ansible有三种方法来实现这些功能:includes, imports, roles.
incloud和import允许用户把大的playbook分散为小的文件,其可以用在多个父playbook之上,也可以在同一个playbook中多次使用。
roles不仅能把taskas融合在一起,甚至是变量,handlers,模块,和插件。角色也可以通过Ansible Galaxy上传和共享,不同于include和导import。
最佳的组织方法就是role。
production # inventory file for production servers 关于生产环境服务器的清单文件
stage # inventory file for stage environment 关于 stage 环境的清单文件
group_vars/
group1 # here we assign variables to particular groups 这里我们给特定的组赋值
group2 # ""
host_vars/
hostname1 # if systems need specific variables, put them he