Menu Close
1.3. 应用一个角色
以下流程描述了如何应用特定角色。
先决条件
确保
rhel-system-roles
软件包安装在您要用作控制节点的系统上:# dnf install rhel-system-roles
安装 Ansible Core 软件包:
# dnf install ansible-core
Ansible Core 软件包提供了
ansible-playbook
CLI、Ansible Vault 功能以及 RHEL Ansible 内容所需的基本模块和过滤器。
确保您能够创建 Ansible 清单。
清单表示主机、主机组,以及 Ansible playbook 使用的一些配置参数。
playbook 通常为人类可读,并以
ini
、yaml
、json
和其他文件格式定义。确保您能够创建 Ansible playbook。
Playbook 代表 Ansible 的配置、部署和编配语言。通过使用 playbook,您可以声明和管理远程机器的配置,部署多个远程机器,编配任何手动排序进程的步骤。
playbook 是一个或多个
play
的列表。每个play
都可以包括 Ansible 变量、任务或角色。playbook 是人类可读的,并以
yaml
格式定义。
流程
创建所需的包含您要管理的主机和组的 Ansible 清单。以下是一个使用名为
inventory.ini
的文件的示例,其包含一组名为webservers
的主机:[webservers] host1 host2 host3
创建一个 Ansible playbook,包括所需角色。以下示例演示了如何通过 playbook 的
roles:
选项来使用角色:以下示例演示了如何通过角色(
roles:
选项)来使用给定play
:--- - hosts: webservers roles: - rhel-system-roles.network - rhel-system-roles.postfix
注意每个角色都包括 README 文件,该文件记录如何使用角色和支持的参数值。您还可以在角色的文档目录中找到特定角色的示例 playbook。这些文档目录默认由
rhel-system-roles
软件包提供,并可在以下位置找到:/usr/share/doc/rhel-system-roles/SUBSYSTEM/
将 SUBSYSTEM 替换为所需角色的名称,如
postfix
,metrics
,network
,tlog
, 或ssh
。要在特定主机上执行 playbook,您必须执行以下一个操作:
编辑 playbook ,以使用
hosts: host1[,host2,…]
或hosts: all
,并执行该命令:# ansible-playbook name.of.the.playbook
编辑清单,以确保在组中定义了您要使用的主机,并执行命令:
# ansible-playbook -i name.of.the.inventory name.of.the.playbook
在执行
ansible-playbook
命令时指定所有主机:# ansible-playbook -i host1,host2,... name.of.the.playbook
重要请注意,
-i
标志指定所有可用主机的清单。如果您有多个目标主机,但希望选择其中一个运行 playbook 的主机,您可以在 playbook 中添加变量,以便能够选择主机。例如:Ansible Playbook | example-playbook.yml: - hosts: "{{ target_host }}" roles: - rhel-system-roles.network - rhel-system-roles.postfix
Playbook 执行命令:
# ansible-playbook -i host1,..hostn -e target_host=host5 example-playbook.yml