📜  不同端口上的 ansible ssh - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:35:54.545000             🧑  作者: Mango

不同端口上的 ansible ssh - Shell-Bash

Ansible 是一种自动化工具,可以让您自动配置、部署和管理远程服务器、网络设备等各种系统。 Ansible 可以通过 SSH 协议与目标系统进行通信。 默认情况下,Ansible 会使用标准 SSH 端口22。

但是,有时您需要使用不同的端口号,例如22端口被防火墙阻止或导致服务冲突。在这种情况下,您可以在 ansible ssh 命令中指定端口号。 在本文中,我们将介绍如何在 ansible ssh 命令中指定不同的端口号。

在ansible脚本中使用不同的 ssh 端口

您可以通过在标准 ansible ssh 命令中指定 -p 参数来使用不同的 ssh 端口。例如,要连接到 ssh 端口2022,可以使用以下命令:

ansible all -i hosts.ini -m ping -u root -e 'ansible_ssh_common_args="-p 2022"' 

在上面的命令中,-e 'ansible_ssh_common_args="-p 2022"' 将告诉 Ansible 使用 SSH 端口2022 连接 SSH 目标主机。

注意:使用指定的 ssh 端口需要在目标系统中打开该端口。否则,您将无法与目标系统建立 ssh 连接。

通过配置文件设置 ssh 端口

如果您需要在整个 ansible 项目中使用相同的 ssh 端口,则可以在配置文件 ansible.cfg 中进行设置。

在 ansible.cfg 中添加以下内容

[ssh_connection]
ssh_args = -o ControlMaster=auto -o ControlPersist=30m -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -p 2022

在上面的配置中, ssh_args 参数将会告诉 Ansible 默认使用 SSH 端口2022 连接所有目标主机。

总结

通过在 ansible ssh 命令中指定 -p 参数,我们可以使用不同的 ssh 端口连接目标系统。 在 ansible 项目全局设置时,可以通过配置文件 ansible.cfg 设置 ssh 端口,以便在全部 ansible 命令中使用。