3.2. 为远程执行配置基于拉取的传输
默认情况下,远程执行使用基于推送的 SSH 作为脚本供应商的传输机制。如果您的基础架构禁止从 Capsule 服务器到主机的传出连接,您可以使用带有基于 pull 的传输的远程执行,因为主机启动与 Capsule 服务器的连接。使用基于拉取的传输不会限制这些基础架构。
基于拉取的传输在 Capsule 上包括 pull-mqtt
模式,以及主机上运行的拉取客户端。
pull-mqtt
模式仅适用于 Script 提供程序。Ansible 和其他提供程序将继续使用其默认传输设置。
模式为每个胶囊服务器配置。某些胶囊服务器可以配置为使用 pull-mqtt
模式,而其他胶囊服务器则配置为使用 SSH。如果出现这种情况,则给定主机上的一个远程作业将使用拉取客户端,并且同一主机上的下一个作业将使用 SSH。如果要避免这种情况,请将所有胶囊服务器配置为使用相同的模式。
流程
在 Capsule 服务器上启用基于拉取的传输:
# satellite-installer --foreman-proxy-plugin-remote-execution-script-mode=pull-mqtt
配置防火墙以允许端口 1883 上的 MQTT 服务:
# firewall-cmd --add-service=mqtt
使更改持久:
# firewall-cmd --runtime-to-permanent
在
pull-mqtt
模式中,主机订阅作业通知到您的 Satellite 服务器或它们注册的任何胶囊服务器。确保 Satellite 服务器将远程执行作业发送到相同的 Satellite 服务器或 Capsule 服务器:- 在 Satellite Web UI 中,进入到 Administer > Settings。
- 在 Content 选项卡上,将 Prefer registered through Capsule for remote execution 的值设为 Yes 。
后续步骤
- 为基于拉取的传输配置主机。如需更多信息, 请参阅管理主机中的远程执行的传输模式。