Ansible多个主机端口转发

soh*_*ahi 12 python networking portforwarding ansible ansible-playbook

我有多个主机的主机库存,每个主机都有端口转发,主机文件是:

[all]

10.80.238.11:20003

10.80.238.11:20001

10.80.238.11:20007

10.80.238.11:20009
Run Code Online (Sandbox Code Playgroud)

我试图用剧本来ping它们,但是在这种情况下总是从第一次输入获得响应而10.80.238.11:20003不是来自其他人.身份验证已经到位,无论我移动到第一个位置的主机我都得到了响应而不是其他人,我的剧本是:

---
- hosts: all

  remote_user: root

  gather_facts: no

  tasks:

  - name: test connection

    ping:
Run Code Online (Sandbox Code Playgroud)

知道怎么解决这个???

leu*_*cos 23

我想您正在进行的端口转发是针对SSH的.

所以你必须告诉ansible要连接哪个ssh端口.问题是所有主机都具有相同的IP.所以你必须使用主机名,所以Ansible可以区分它们.

假设您将具有SSH端口转发的主机2000X称为as hostX,然后使用正确的语法指定ssh端口以及主机IP:

host3 ansible_ssh_port=20003 ansible_ssh_host=10.80.238.11
host1 ansible_ssh_port=20001 ansible_ssh_host=10.80.238.11
host7 ansible_ssh_port=20007 ansible_ssh_host=10.80.238.11
host9 ansible_ssh_port=20009 ansible_ssh_host=10.80.238.11
Run Code Online (Sandbox Code Playgroud)

然后你可以发出:

ansible host3 -m ping 
Run Code Online (Sandbox Code Playgroud)

甚至 :

ansible all -m ping
Run Code Online (Sandbox Code Playgroud)

请注意,您不应创建all组,因为Ansible会自动创建它.