1、roles
角色(roles)是ansible自1.2版本开始引入的新特性,用于层次性,结构化地组织playbook。roles能够根据层次型结构自动装载变量文件、tasks以及handlers等。要使用roles只需要在playbook中使用include指令即可。简单的说,roles就是通过分别将变量、文件、任务、模块及处理器放置于单独的目录中、并可以便捷地include他们的一种机制。角色一般用于基于主机构建服务的场景中、但也可以是用于构建守护进程等场景中
2、目录结构
├── files #角色名称
├── handlers #存放静态文件
├── tasks #具体任务
├── templates #模板文件
└── vars #存放变量
role执行顺序:pre_tasks > role > tasks > post_tasks
3、分类
(1)RHEL系统角色:
名称 | 状态 | 角色描述 |
rhel-system-roles.kdump | 全面支持 | 配置kdump崩溃恢复服务 |
rhel-system-roles.network | 全面支持 | 配置网络接口 |
rhel-system-roles.selinux | 全面支持 | 配置和管理SELinux自定义 |
rhel-system-roles.timesync | 全面支持 | 使用网络协议或者精确时间配置时间同步 |
rhel-system-roles.postfix | 技术预览 | 使用Postfix服务将每个主机配置为邮件传输代理 |
rhel-system-roles.firewall | 开发中 | 配置主机防火墙 |
rhel-system-roles.tuned | 开发中 | 配置tuned服务,进行系统调优 |
(2)自定义创建角色
[root@master ~]# yum install rhel-system-roles #安装软件
[root@master ansible]# ansible-galaxy init motd #初始化roles目录(moto)
#--init-path= 路径
[root@master ansible]# vim roles/xxx/tasks/main.yml # 在“xxxx”tasks下编写main.yml 所实现的功能
[root@master ansible]# vim roles/xxx/templates/motd.j2 #编写模板文件templates 内容
[root@master ansible]# vim xxxx.yml #在/ansible目录下创建yml文件进行调用角色
(3)使用Asible Galaxy 网站中下载角色
https://galaxy.ansible.com/