部署高可用性自动化中心(automation hub)
通过具有高可用性功能的自动化 hub 部署,提高可靠性和可扩展性
摘要
前言
本指南概述了自动化中心高可用性部署的要求和程序。
高可用性(HA)配置提高了自动化中心部署的可靠性和可扩展性。
自动化中心的 HA 部署有多个节点,它们使用负载均衡器分布工作负载同时运行相同的服务(一个"主动-主动"配置)。此配置消除了单一故障点,以最小化服务停机时间,并可让您轻松添加或移除节点来满足工作负载需求。
本指南仅涵盖 HA 自动化中心应用程序堆栈的部署。其他 HA 组件(如数据库和文件系统 HA 或设置 DNS 负载平衡)超出了本指南的范围。
使开源包含更多
红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。有关更多详情,请参阅我们的首席技术官 Chris Wright 提供的消息。
对红帽文档提供反馈
我们非常感谢您对我们的技术内容提供反馈,并鼓励您告诉我们您的想法。如果您想添加评论,提供见解、纠正拼写错误甚至询问问题,您可以在文档中直接这样做。
您必须有一个红帽帐户并登录到客户门户网站。
要从客户门户网站提交文档反馈,请执行以下操作:
- 选择 Multi-page HTML 格式。
- 点文档右上角的 反馈 按钮。
- 突出显示您要提供反馈的文本部分。
- 点高亮文本旁的添加反馈对话框。
- 在页面右侧的文本框中输入您的反馈,然后点 Submit。
每次提交反馈时,我们都会自动创建跟踪问题。打开在点 Submit 后显示的链接,并开始监视问题或添加更多注释。
第 1 章 对高可用性自动化中心的要求
在部署高可用性 (HA) 自动化中心前,请确保在您的环境中安装了共享文件系统,并配置了网络存储系统(如果适用)。
1.2. 网络存储安装要求
如果要使用自动化 hub 节点本身的网络存储安装 HA 自动化中心,您必须首先安装和使用 firewalld
,以根据共享存储系统的要求打开共享存储系统所需的端口,然后才能运行 Ansible Automation Platform 安装程序。
执行以下命令安装和配置 firewalld
:
安装
firewalld
守护进程:$ dnf install firewalld
使用以下命令在 <service> 下添加网络存储:
$ firewall-cmd --permanent --add-service=<service>
注意如需支持的服务列表,请使用
$ firewall-cmd --get-services
命令重新载入以应用配置:
$ firewall-cmd --reload
第 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
清单变量指定数据库主机的 IP 地址。例如:
automationhub_pg_host='192.0.2.10' automationhub_pg_port='5432'
另外,使用 automationhub_pg_host
清单变量中的值,在 [database] 部分中指定数据库主机的 IP 地址:
[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
Red Hat Single Sign-On 要求
如果要在自动化中心环境中实施 Red Hat Single Sign-On,请使用 automationhub_main_url
清单变量指定客户端要连接的主自动化中心 URL。例如:
automationhub_main_url = 'https://automationhub.ansible.com'
安装后
检查以确保每个 Private Automation Hub 服务器的 /etc/pulp/settings.py
中存在以下指令:
USE_X_FORWARDED_PORT = True USE_X_FORWARDED_HOST = True
如果没有指定 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/
使用文本编辑器打开
/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
运行以下命令:
$ systemctl daemon-reload
为
/var/lib/pulp
运行 mount 命令:$ mount /var/lib/pulp
在
/var/lib/pulp/pulpcore_static
处创建一个挂载点:$ mkdir /var/lib/pulp/pulpcore_static
运行 mount 命令:
$ mount -a
设置挂载点后,运行 Ansible Automation Platform 安装程序:
$ setup.sh -- -b --become-user root
安装完成后,卸载 /var/lib/pulp/
挂载点,然后应用适当的 SELinux 上下文:
安装后的步骤
关闭 Pulp 服务:
$ systemctl stop pulpcore.service
卸载
/var/lib/pulp/pulpcore_static
:$ umount /var/lib/pulp/pulpcore_static
卸载
/var/lib/pulp/
:$ umount /var/lib/pulp/
使用文本编辑器打开
/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
运行 mount 命令:
$ mount -a
配置 pulpcore.service:
设置了两个挂载点,关闭 Pulp 服务以配置
pulpcore.service
:$ systemctl stop pulpcore.service
使用
systemctl
编辑pulpcore.service
:$ systemctl edit pulpcore.service
将以下条目添加到
pulpcore.service
中,以确保自动化中心服务仅在启动网络并挂载远程挂载点后启动:[Unit] After=network.target var-lib-pulp.mount
启用
remote-fs.target
:$ systemctl enable remote-fs.target
重启系统:
$ systemctl reboot
故障排除
pulpcore SELinux 策略中存在一个错误,可能会导致 etc/pulp/certs/
中的令牌身份验证的公钥/私钥没有正确的 SELinux 标签,从而导致 pulp 进程失败。当发生这种情况时,运行以下命令临时附加正确的标签:
$ chcon system_u:object_r:pulpcore_etc_t:s0 /etc/pulp/certs/token_{private,public}_key.pem
您必须重复此命令,以便在重新标记系统时重新附加正确的 SELinux 标签。
其它资源
- 如需 SELinux 上下文列表,请参阅 Pulp 项目文档的 SELinux 要求。
- 有关 Pulp 文件夹的完整描述,请参阅 Filesystem Layout。