11.9. 导出集群配置,以创建一个 RHEL 系统角色 playbook
您可以使用 ha_cluster
RHEL 系统角色将集群的 Corosync 配置导出到 ha_cluster
变量中,该变量可以反馈给角色以重新创建相同的集群。如果您没有使用 ha_cluster
创建集群,或者无法访问集群的原始 playbook,您可以使用此功能来构建用于创建集群的新的 playbook。
当您使用 ha_cluster
RHEL 系统角色导出集群的配置时,并不是所有变量都会导出。您必须手动修改配置以考虑这些变量。
导出中存在以下变量:
-
ha_cluster_cluster_present
-
ha_cluster_start_on_boot
-
ha_cluster_cluster_name
-
ha_cluster_transport
-
ha_cluster_totem
-
ha_cluster_quorum
-
ha_cluster_node_options
- 仅存在node_name
、corosync_addresses
和pcs_address
选项。
导出中不存在以下变量:
-
ha_cluster_hacluster_password
- 这是角色的一个强制变量,但不能从现有集群中提取。 -
ha_cluster_corosync_key_src
,ha_cluster_pacemaker_key_src
和ha_cluster_fence_virt_key_src
- 这些变量应包含带有 Corosync 和 Pacemaker 密钥的文件的路径。由于密钥本身没有导出,因此导出中也不存在这些变量。这些密钥对每个集群应该是唯一的。 -
ha_cluster_regenerate_keys
- 您应该决定是否使用现有密钥或生成新密钥。
要导出当前的集群配置,请运行 ha_cluster
RHEL 系统角色,并设置 ha_cluster_export_configuration: true
。这会在角色完成配置集群或 qnetd
主机后触发导出,并将其存储在 ha_cluster_facts
变量中。
默认情况下,ha_cluster_cluster_present
被设为 true
,ha_cluster_qnetd.present
被设为 false
。这些设置将在指定的主机上重新配置集群,从指定的主机中删除 qnetd
配置,然后导出配置。要在不修改现有配置的情况下触发导出,请使用以下设置运行角色:
以下流程:
-
将集群配置从集群节点
node1
导出到ha_cluster_facts
变量。 -
将
ha_cluster_cluster_present
和ha_cluster_qnetd
变量设置为 null,以确保运行此 playbook 不会修改现有集群配置。 -
使用 Ansible debug 模块显示
ha_cluster_facts
的内容。 -
将
ha_cluster_facts
的内容以 YAML 格式保存到控制节点上的一个文件中,以便您围绕它编写 playbook。
先决条件
- 您已准备好控制节点和受管节点。
- 您以可在受管主机上运行 playbook 的用户身份登录到控制节点。
-
您用于连接到受管节点的帐户对它们具有
sudo
权限。 - 您之前已使用要导出的配置配置了高可用性集群。
- 您已在控制节点上创建了一个清单文件,如 在 RHEL 10 上准备一个控制节点 中所述。
流程
创建一个包含以下内容的 playbook 文件,如
~/playbook.yml
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例 playbook 中指定的设置包括如下:
hosts: node1
- 包含要导出的集群信息的节点。
ha_cluster_cluster_present: null
- 设置以指示集群配置将不会在指定主机上更改。
ha_cluster_qnetd: null
- 设置以指示 qnetd 主机配置将不会在指定主机上更改。
ha_cluster_export_configuration: true
-
一个决定是否导出当前集群配置并将其存储在
ha_cluster_facts
变量中的变量,该变量由ha_cluster_info
模块生成。 ha_cluster_facts
- 一个包含导出的集群配置的变量。
delegate_to: localhost
- 将控制节点指定为导出配置文件的位置。
content: "{{ ha_cluster_facts | to_nice_yaml(sort_keys=false) }"}
,dest: /path/to/file
,mode: "0640"
将 YAML 格式的配置文件复制到 /path/to/file,将文件权限设置为 0640。
有关 playbook 中使用的所有变量的详情,请查看控制节点上的
/usr/share/ansible/roles/rhel-system-roles.ha_cluster/README.md
文件。
使用您在控制节点上导出到 /path/to/file 的变量来为您的系统编写 playbook。
您必须添加
ha_cluster_hacluster_password
变量,因为它是一个必要的变量,但在导出中不存在。(可选)添加ha_cluster_corosync_key_src
,ha_cluster_pacemaker_key_src
,ha_cluster_fence_virt_key_src
, 和ha_cluster_regenerate_keys
变量(如果您的系统需要它们)。这些变量永远不会被导出。验证 playbook 语法:
ansible-playbook --syntax-check ~/playbook.yml
$ ansible-playbook --syntax-check ~/playbook.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 请注意,这个命令只验证语法,不能防止错误的、但有效的配置。
运行 playbook:
ansible-playbook ~/playbook.yml
$ ansible-playbook ~/playbook.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow