创建角色
- 角色创建流程
- 在Ansible中创建角色不需要特别的开发工具,创建和使用角色包含三个步骤:
- 创建角色目录结构
- 定义角色内容
- 在playbook中使用角色
创建角色目录结构
寻找角色的顺序:
- 默认情况下,Ansible在Ansible Playbook所在目录的roles子目录中查找角色
- ~/.ansible/roles
- /usr/share/ansible/roles
- /etc/ansible/roles
按照以上的寻找角色的顺序,就会允许用户将角色安装到由多个项目共享的系统上
每个角色都有自己的目录,采用标准化的结构目录,以下示例演示一个便准结构:
[root@localhost roles]# tree user.example/
user.example/
├── defaults
│ └── main.yml
├── files
├── handlers
│ └── main.yml
├── meta
│ └── main.yml
├── README.md
├── tasks
│ └── main.yml
├── templates
├── tests
│ ├── inventory
│ └── test.yml
└── vars
└── main.yml
- README.md提供人类可读的基本角色描述、有关如何使用该角色的文档和示例,以及其发挥作用所需要满足的任何非Ansible要求。
- meta子目录包含一个main.yml文件,该文件指定有关模块的作者、许可证、兼容性和依赖项的信息。
- files子目录包含固定内容的文件
- templates子目录则包含使用时可由角色部署的模板
- 如果某一子目录存在但为空,如本例中的handlers,它将被忽略
- 如果某一角色不使用功能,则其子目录可以完全省略
创建角色框架
- 使用标准的Linux命令创建角色所需要的所有子目录和文件
以下示例演示使用Linux命令创建角色:
[root@192 roles]# mkdir -p httpd/{defaults,vars,templates,files,tasks,handlers0} //创建所需目录
[root@192 roles]# touch httpd/{defaults/main.yml,vars/main.yml}
[root@192 roles]# tree httpd/
httpd/
├── defaults
│ └── main.yml
├── files
├── handlers0
├──