简介
自动化网格是红帽 Ansible 自动化平台上的一个功能,便于企业使用现有网络通过混合云点对点连接来分配自动化工作负载。利用自动化网格与 Microsoft Azure 上的红帽 Ansible 自动化平台,企业可以通过单个控制平面将自动化扩展至两倍:
- Azure 架构上的 Ansible 自动化平台可根据自动化工作负载自动扩展,这些工作负载可通过直接或中转路由直接自动化处理,无需客户直接管理自动化基础架构。
- 如果必须在其他数据中心、边缘或在 Azure 上的 Ansible 自动化平台无法直接连接的情况下针对资源运行自动化,客户可以配置连接到 Azure 上 Ansible 自动化平台的自动化网格执行平面。
自动化网格执行平面由两类网格节点组成,即跳跃节点和执行节点。
跳跃节点用于促进与执行节点的通信,并将流量路由到执行节点。
执行节点针对目标端点资源运行自动化。
很多企业都具有混合云环境,其工作负载和资源位于公共云、私有云和不同的数据中心。对他们来说至关重要的一点是需要访问这些网络并将执行节点放置在靠近自动化端点的地方。此类配置的示例如下。
随着自动化控制器 4.5 的发布,Azure 上的 Ansible 自动化平台现在可实施跳跃节点。
订阅 Ansible 自动化平台后,您将获得十个红帽企业 Linux(RHEL)许可证,可用于运行 Ansible 自动化平台上的组件。在本例中,我们将利用这些许可证实施自动化网格,使用一个跳跃节点和一个执行节点,通过 Azure 上部署的 Ansible 自动化平台在远程站点运行。
我们来逐步了解如何部署和利用此项功能。
准备网络
这些示例中的网络配置将使用默认端口。网络配置可根据企业需求进行配置。对于复杂的网络配置,请参考自动化网格文档中的指导。
自动化网格使用 TLS 加密进行通信,因此经过外部网络(互联网或其他网络)的流量将在传输过程中进行加密。
- DMZ 对来自公共互联网的流量开放 27199 端口,允许从 Azure 上的 Ansible 自动化平台实例进行通信。
- 网络流量可通过 27199 端口在 DMZ 和专用网络之间路由。
- 专用网络内的网络流量可在发生自动化的端口上路由,如用于 SSH 的 22 端口和用于 API 的 443 端口。
同时还要在专用网络上准备资源,如虚拟机。在 Ansible 自动化平台中,可使用专用资源的专用 IP 地址或主机名创建一个清单。
准备 RHEL 实例
可通过多种不同方式部署和配置自动化网格计算机,包括使用更多 Ansible 自动化。作为示例,我们将在本节手动描述这些步骤。以下内容假定 RHEL 9 在 x64_64 架构上运行。
- 在需要通信的远程网络中部署 RHEL 实例。
- 在上面的示例中,一个实例将驻留在具有公共 IP 地址的 DMZ 网络中,另一个实例将驻留在专用网络中。
- RHEL ISO 可以从 access.redhat.com 中获取。
- 使用 SSH 登录每个 RHEL 实例并执行以下步骤。 根据网络访问和控制情况,可能需要 SSH 代理或其他访问模式。
确保 RHEL 实例已通过 subscription-manager 授权。
sudo subscription-manager register --auto-attach
订阅 Ansible 自动化平台存储库。
sudo subscription-manager repos --enable ansible-automation-platform-2.4-for-rhel-9-x86_64-rpms
安装 ansible-core 软件包。
sudo dnf install -y ansible-core
安装 ansible.receptor Ansible 集合。
ansible-galaxy collection install ansible.receptor
- 创建或复制在后续步骤中可用于从跳跃节点连接到执行节点的 SSH 密钥。该密钥可以是一个仅用于自动化网格配置的临时密钥,也可以是一个长期有效的密钥。后续步骤将会用到 SSH 用户和密钥。
打开 27199 端口进行接收器通信。
sudo firewall-cmd --permanent --zone=public --add-port=27199/tcp
RHEL 实例现在应可以运行自动化网格。
在自动化控制器中配置
我们需要在自动化控制器中配置节点。在我们的示例中,我们将部署 1 个跳跃节点和 1 个执行节点。
- 登录自动化控制器。
- 导航至“Administration”菜单下的“Instances”。
- 点击“Add”。
- 按以下说明填写字段,以配置执行节点。
- 主机名:<主机的专用 IP 地址>
- 描述:执行节点
- 侦听器端口:27199
- 实例类型:执行
- 点击“Save”。
- 点击“Install Bundle”图标,以下载安装软件包。保存软件包供后续步骤使用。
- 点击“Back to servers”。
- 点击“Add”。
- 按以下说明填写字段,以配置跳跃节点。
- 主机名:
- 描述:跳跃节点
- 侦听器端口:27199
- 实例类型:跳跃
- 对等点:点击放大镜,然后选择之前创建的执行节点
- 选中“Peers from control nodes”选项
- 主机名:
此屏幕截图中的 IP 地址仅为示例
- 点击“Save”。
- 点击“Install Bundle”图标,以下载安装软件包。保存软件包供后续步骤使用。
- 点击“Administration”下的“Topology View”菜单项。您应能够看到自动化网格配置处于暂定的“已安装”状态。
此屏幕截图中的 IP 地址仅用于示例目的
跳跃节点 IP 地址:20.123.123.972
执行节点 IP 地址:10.10.0.2
安装自动化网格捆绑包
上一节中下载的两个捆绑包使用 Ansible 自动化平台来设置每个自动化网格节点。运行捆绑包的位置取决于您的网络对资源的访问权限。在我们的示例中,我们假设您具有对跳跃节点的 SSH 访问权限,并且可以从跳跃节点为两台计算机运行捆绑包自动化。
- 将两个捆绑包文件从本地计算机复制到跳跃节点。请注意,您的 IP 地址或主机名对于您的环境将是唯一的。
scp /path/to/hop/bundle/20.123.123.972_install_bundle.tar.gz \ user@20.123.123.972
scp /path/to/exec/bundle/10.10.0.2_install_bundle.tar.gz user@20.123.123.972
- 提取两个 tar.gz 文件。
tar -xzvf /path/to/hop/bundle/20.123.123.972_install_bundle.tar.gz
tar -xzvf /path/to/exec/bundle/10.10.0.2_install_bundle.tar.gz
- 切换到执行节点文件夹的目录。
cd /path/to/exec/bundle/10.10.0.2_install_bundle
- 在文本编辑器中打开 inventory.yml 文件。
vim /path/to/exec/bundle/10.10.0.2_install_bundle/inventory.yml
- 更改 user 字段,使其包含执行节点的 SSH 用户。
---
all:
hosts:
remote-execution:
ansible_host: 10.10.0.2
ansible_user: <username> # user provided
ansible_ssh_private_key_file: ~/.ssh/id_rsa
- 如果需要,可根据前面步骤中在该主机上设置 SSH 密钥的情况,更改 SSH 密钥的名称。
- 保存 inventory.yml 文件。
- 运行 playbook,以便在执行节点主机上安装自动化网格。
ansible-playbook -i inventory.yml install_receptor.yml
- 安装完成后,切换到跳跃节点文件夹的目录。
cd /path/to/hop/bundle/20.123.123.972_install_bundle
- 在文本编辑器中打开 inventory.yml 文件。
vim /path/to/hop/bundle/20.123.123.972_install_bundle/inventory.yml
- 更改 user 字段,使其包含跳跃节点的 SSH 用户。
---
all:
hosts:
remote-execution:
ansible_host: 20.123.123.972
ansible_user: <username> # user provided
ansible_ssh_private_key_file: ~/.ssh/id_rsa
- 如果需要,可根据前面步骤中在该主机上设置 SSH 密钥的情况,更改 SSH 密钥的名称。
- 保存 inventory.yml 文件。
- 运行 playbook,以便在跳跃节点主机上安装自动化网格。
ansible-playbook -i inventory.yml install_receptor.yml
验证连通性
- 在 Web 浏览器中,再次打开自动化控制器。
- 在左侧菜单中,点击“Administration”下的“Instances”。
- 点击执行节点旁边的复选框。
- 点击“Run health check”。此步骤可能需要几分钟时间。
- 如果自动化网格运行正常,则所有节点都应处于“Ready”状态。
创建实例组
- 点击“Administration”下的“Instance Groups”。
- 点击“Add”。
- 点击“Add instance group”。
- 使用以下字段创建实例组:
- 名称:远程网络
- 点击“Save”。
- 点击“Instances”选项卡。
- 点击“Associate”。
- 点击所创建的执行节点旁边的复选框。
- 点击“Save”。
演示运作方式
现在,我们已经完成了跳跃节点和执行节点的配置。下面,我们来从自动化控制器启动一些作业,并观察这些作业如何通过跳跃节点,跳跃节点又如何将其传递到执行节点以运行自动化任务。
- 打开您在本次指导的准备阶段创建的清单。
- 点击“Edit”以编辑清单。
- 点击“Instance Groups”旁边的放大镜。
- 选择“Remote Network”实例组。
- 点击“OK”
- 点击“Save”
- 点击“hosts”选项卡。
- 点击您在专用网络上创建的虚拟机主机旁边的复选框。
- 点击“Run Command”。
- 对主机运行 ping 模块。
如果 ping 模块运行成功,则自动化网格配置正确。您现在可以对专用网络上的主机运行自动化作业。
接下来可以做些什么?
如需进一步了解 Azure 上的 Ansible 自动化平台,请访问此处页面。
如需了解有关自动化网格的更多信息,请访问本指南。
如需进一步了解其他超大规模云上的 Ansible 自动化平台,请访问此处页面。
如需有关 Ansible 自动化平台的自定进度实训教学,请访问此页面。
关于作者
Hicham is responsible for technical marketing of the Red Hat Ansible Automation Platform on Clouds. Hicham has been in the software industry for over 20 years and for many of them focused on cloud management. Hicham has been a frequent presenter at events and conferences like VMworld, vForum, VMUG, VMLive, Gartner, Dell Technology World, AWS re:Invent, HPE Discover, Cloud Field Day, Red Hat Summit, AnsibleFest, in addition to Customer events.
Scott Harwell is a Principal Product Manager at Red Hat for Ansible on Clouds. His focus is the delivery of Ansible Automation Platform offerings on hyperscaler cloud vendors such as Microsoft Azure and AWS. Prior to joining Red Hat, Scott held product management, development, and consulting roles for Oracle, AST Corporation, Tech Machine, and Volvo. Scott is a cloud enthusiast with experience and certifications across many cloud providers. He is passionate about automation and likes to find creative ways to improve IT, technical, and business processes.
产品
工具
试用购买与出售
沟通
关于红帽
我们是世界领先的企业开源解决方案供应商,提供包括 Linux、云、容器和 Kubernetes。我们致力于提供经过安全强化的解决方案,从核心数据中心到网络边缘,让企业能够更轻松地跨平台和环境运营。