使用ansible要求控制机要能够直接ssh到被控制机,这样不在同一子网的话,ansible无法控制,使用proxycommand能够解决这一问题。
#建立互信
ssh-copy-id -p 12321 root@1.1.1.1
# vi /etc/ssh/ssh_config
# 通过1.1.1.1这台主机的12321端口的root用户作为跳板机连接172.16.2.0/24,172.16.2.1/32这两个网段的机器
Host ss
Hostname 1.1.1.1
User root
Port 12321
Host 172.17.2.* , 172.16.2.1
ProxyCommand ssh -q -W %h:%p ss
在ansible里面也可以直接用-o选项来进行配置
# vi /etc/ansible/ansible.cfg or vi /etc/ansible/hosts
ssh_args = -o "ProxyCommand ssh -W %h:%p root@192.168.1.60"