我遇到了一个问题: 我设置了 3 个服务器:
Jumphost1 --> Jumphost2 --> 节点服务器
在本地我可以使用这个 ssh 命令及其工作,因此没有网络、ssh 或防火墙问题:
ssh -A -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -J customer@<jumphost_ip>:22000,customer@<bastion_ip>:22 [email protected] -p 22
这个命令也在我的管道中工作。
现在我想对 Ansible 做同样的事情。 我不想使用 ssh 配置文件,只想使用 ansible 主机文件。 我的主机文件:
[nodes]
customer-node ansible_host=10.1.0.123 ansible_port=22 ansible_user=customer
[nodes:vars]
ansible_ssh_common_args='-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -J customer@<Jumphost_ip>:22000,customer@<bastion_ip>:22'
[bastion]
customer-bastion ansible_host=<bastion_ip> ansible_port=22 ansible_user=customer
[bastion:vars]
ansible_ssh_common_args='-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
[jumphost]
customer-jumphost ansible_host=<jumphost_IP> ansible_port=22000 ansible_user=customer
[jumphost:vars]
ansible_ssh_common_args='-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
看起来 Ansible 使用了错误的顺序,因为如果我启用 VPN,此配置才起作用,因为它只能通过 VPN 或从 Jumphost1 连接到第二个服务器 。 Ping Jumphost 和 Bastion 正常,只是节点不工作。 有人知道出了什么问题吗?
问题真的很难说