部署高可用性自动化中心(automation hub)
自动化中心高可用性部署要求和程序概述。
摘要
前言 复制链接链接已复制到粘贴板!
本指南概述了自动化中心高可用性部署的要求和程序。
高可用性(HA)配置提高了自动化中心部署的可靠性和可扩展性。
自动化中心的 HA 部署有多个节点,它们使用负载均衡器分布工作负载同时运行相同的服务(一个"主动-主动"配置)。此配置消除了单一故障点,以最小化服务停机时间,并可让您轻松添加或移除节点来满足工作负载需求。
本指南仅涵盖 HA 自动化中心应用程序堆栈的部署。其他 HA 组件(如数据库和文件系统 HA 或设置 DNS 负载平衡)超出了本指南的范围。
使开源包含更多 复制链接链接已复制到粘贴板!
红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。有关更多详情,请参阅我们的首席技术官 Chris Wright 提供的消息。
第 1 章 对高可用性自动化中心的要求 复制链接链接已复制到粘贴板!
在部署高可用性 (HA) 自动化中心前,请确保在您的环境中安装了共享文件系统,并配置了网络存储系统(如果适用)。
1.2. 网络存储安装要求 复制链接链接已复制到粘贴板!
如果要使用自动化 hub 节点本身的网络存储安装 HA 自动化中心,您必须首先安装和使用 firewalld,以根据共享存储系统的要求打开共享存储系统所需的端口,然后才能运行 Ansible Automation Platform 安装程序。
执行以下命令安装和配置 firewalld :
安装
firewalld守护进程:dnf install firewalld
$ dnf install firewalldCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用以下命令在 <service> 下添加网络存储:
firewall-cmd --permanent --add-service=<service>
$ firewall-cmd --permanent --add-service=<service>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如需支持的服务列表,请使用
$ firewall-cmd --get-services命令重新载入以应用配置:
firewall-cmd --reload
$ firewall-cmd --reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow
第 2 章 安装高可用性自动化中心 复制链接链接已复制到粘贴板!
配置 Ansible Automation Platform 安装程序,以便在高可用 (HA) 配置中安装自动化中心。通过创建挂载点并在 Ansible Automation Platform 环境中添加适当的 SELinux 上下文,在 SELinux 上安装 HA 自动化中心。
2.1. 带有高可用性功能的自动化中心安装 复制链接链接已复制到粘贴板!
通过对 Ansible Automation Platform 安装程序中的 清单文件 进行以下更改,然后运行 ./setup.sh 脚本,安装高可用性的自动化中心:
指定数据库主机 IP
使用 automation_pg_host 和 automation_pg_port fields 指定数据库主机的 IP 地址。例如:
automationhub_pg_host='192.0.2.10' automationhub_pg_port='5432'
automationhub_pg_host='192.0.2.10'
automationhub_pg_port='5432'
另外,使用 automationhub_pg_port 字段中的值,在 [database] 部分中指定数据库主机的 IP 地址:
[database] 192.0.2.10
[database]
192.0.2.10
列出集群设置中的所有实例
如果安装集群设置,请将 [automationhub] 部分中的 localhost ansible_connection=local 替换为所有实例的主机名或 IP。例如:
[automationhub] automationhub1.testing.ansible.com ansible_user=cloud-user ansible_host=192.0.2.18 automationhub2.testing.ansible.com ansible_user=cloud-user ansible_host=192.0.2.20 automationhub3.testing.ansible.com ansible_user=cloud-user ansible_host=192.0.2.22
[automationhub]
automationhub1.testing.ansible.com ansible_user=cloud-user ansible_host=192.0.2.18
automationhub2.testing.ansible.com ansible_user=cloud-user ansible_host=192.0.2.20
automationhub3.testing.ansible.com ansible_user=cloud-user ansible_host=192.0.2.22
Red Hat Single Sign-On 要求
如果您要在自动化 hub 环境中实施 Red Hat Single Sign-On,请使用 automationhub_main_url 字段指定客户端要连接到的主自动化中心 URL。例如:
automationhub_main_url = 'https://automationhub.ansible.com'
automationhub_main_url = 'https://automationhub.ansible.com'
如果没有指定 Automationhub_main_url,则默认使用 [automationhub] 组中的第一个节点。
2.2. 在 SELinux 上安装自动化中心的高可用性 (HA) 部署 复制链接链接已复制到粘贴板!
要在 SELinux 上设置自动化中心的高可用性(HA)部署,请为 /var/lib/pulp 和 /var/lib/pulp/pulpcore_static 创建两个挂载点,然后将适当的 SELinux 上下文分配给每个。您需要为 /var/lib/pulp/pulpcore_static 添加上下文,并在为 /var/lib/pulp 添加上下文前运行 Ansible Automation Platform 安装程序。
先决条件
- 您已在服务器上配置了 NFS 导出。
预安装步骤
在
/var/lib/pulp中创建挂载点:mkdir /var/lib/pulp/
$ mkdir /var/lib/pulp/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用文本编辑器打开
/etc/fstab,然后添加以下值:srv_rhel8:/data /var/lib/pulp nfs defaults,_netdev,nosharecache 0 0 srv_rhel8:/data/pulpcore_static /var/lib/pulp/pulpcore_static nfs defaults,_netdev,nosharecache,context="system_u:object_r:httpd_sys_content_rw_t:s0" 0 0
srv_rhel8:/data /var/lib/pulp nfs defaults,_netdev,nosharecache 0 0 srv_rhel8:/data/pulpcore_static /var/lib/pulp/pulpcore_static nfs defaults,_netdev,nosharecache,context="system_u:object_r:httpd_sys_content_rw_t:s0" 0 0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为
/var/lib/pulp运行 mount 命令:mount /var/lib/pulp
$ mount /var/lib/pulpCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在
/var/lib/pulp/pulpcore_static处创建一个挂载点:mkdir /var/lib/pulp/pulpcore_static
$ mkdir /var/lib/pulp/pulpcore_staticCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行 mount 命令:
mount -a
$ mount -aCopy to Clipboard Copied! Toggle word wrap Toggle overflow 设置挂载点后,运行 Ansible Automation Platform 安装程序:
setup.sh -- -b --become-user root
$ setup.sh -- -b --become-user rootCopy to Clipboard Copied! Toggle word wrap Toggle overflow
安装完成后,卸载 /var/lib/pulp/ 挂载点,然后应用适当的 SELinux 上下文:
安装后的步骤
关闭 Pulp 服务:
systemctl stop pulpcore.service
$ systemctl stop pulpcore.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 卸载
/var/lib/pulp/pulpcore_static:umount /var/lib/pulp/pulpcore_static
$ umount /var/lib/pulp/pulpcore_staticCopy to Clipboard Copied! Toggle word wrap Toggle overflow 卸载
/var/lib/pulp/:umount /var/lib/pulp/
$ umount /var/lib/pulp/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用文本编辑器打开
/etc/fstab,然后使用以下内容替换/var/lib/pulp的现有值:srv_rhel8:/data /var/lib/pulp nfs defaults,_netdev,nosharecache,context="system_u:object_r:pulpcore_var_lib_t:s0" 0 0
srv_rhel8:/data /var/lib/pulp nfs defaults,_netdev,nosharecache,context="system_u:object_r:pulpcore_var_lib_t:s0" 0 0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行 mount 命令:
mount -a
$ mount -aCopy to Clipboard Copied! Toggle word wrap Toggle overflow
配置 pulpcore.service:
设置了两个挂载点,关闭 Pulp 服务以配置
pulpcore.service:systemctl stop pulpcore.service
$ systemctl stop pulpcore.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
systemctl编辑pulpcore.service:systemctl edit pulpcore.service
$ systemctl edit pulpcore.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将以下条目添加到
pulpcore.service中,以确保自动化中心服务仅在启动网络并挂载远程挂载点后启动:[Unit] After=network.target var-lib-pulp.mount
[Unit] After=network.target var-lib-pulp.mountCopy to Clipboard Copied! Toggle word wrap Toggle overflow 启用
remote-fs.target:systemctl enable remote-fs.target
$ systemctl enable remote-fs.targetCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重启系统:
systemctl reboot
$ systemctl rebootCopy to Clipboard Copied! Toggle word wrap Toggle overflow
故障排除
pulpcore SELinux 策略中存在一个错误,可能会导致 etc/pulp/certs/ 中的令牌身份验证的公钥/私钥没有正确的 SELinux 标签,从而导致 pulp 进程失败。当发生这种情况时,运行以下命令临时附加正确的标签:
chcon system_u:object_r:pulpcore_etc_t:s0 /etc/pulp/certs/token_{private,public}_key.pem
$ chcon system_u:object_r:pulpcore_etc_t:s0 /etc/pulp/certs/token_{private,public}_key.pem
您必须重复此命令,以便在重新标记系统时重新附加正确的 SELinux 标签。
其它资源
- 如需 SELinux 上下文列表,请参阅 Pulp 项目文档的 SELinux 要求。
- 有关 Pulp 文件夹的完整描述,请参阅文件系统布局信息。