一、利用角色构造ansible playbook
1、What's 角色
1️⃣:Ansible角色提供了一种方法,让用户能以通用的方式更加轻松地重复利用Ansible代码。
我们可以在标准化目录结构中打包所有任务、变量、文件、模板,以及调配基础架构或部署应用所需的其他资源
只需通过复制相关的目录,将角色从一个项目复制到另一个项目。然后,只需从一个play调用该角色就能执行它
3️⃣:借助编写良好的角色,可以从playbook中向角色传递调整其行为的变量,设置所有站点相关的主机名、IP地址、用户名,或其他在本地需要的具体详细信息
3️⃣:Ansible具备的优点:
- 角色可以分组内容,从而与他人轻松共享代码
- 可以编写角色来定义系统类型的基本要素:Web服务器、数据库服务器、Git存储库,或满足其他用途
- 角色使得较大型项目更容易管理
- 角色可以由不同的管理员并行开发
4️⃣:除了自行编写、使用、重用和共享角色外,还可以从其他来源获取角色。一些角色已包含在rhel-system-roles软件包中,用户也可以从Ansible Galaxy网站获取由社区提供支持的许多角色
- 使用rhel-system-roles软件包使用角色
//在控制节点上查看本地的角色 [root@localhost ~]# ls /usr/share/ansible/roles/ //安装rhel-system-roles [root@localhost ~]# yum list | grep rhel-system-roles rhel-system-roles.noarch 1.0-9.el8 appstream [root@localhost ~]# yum install -y rhel-system-roles //在次查看本地的角色 [root@localhost ~]# ls /usr/share/ansible/roles/ linux-system-roles.kdump linux-system-roles.postfix linux-system-roles.storage rhel-system-roles.kdump rhel-system-roles.postfix rhel-system-roles.storage linux-system-roles.network linux-system-roles.selinux linux-system-roles.timesync rhel-system-roles.network rhel-system-roles.selinux rhel-system-roles.timesync
- 从Ansible Galaxy网站获取由社区提供支持的许多角色,请戳:https://galaxy.ansible.com/