我有多个主机的主机清单,每个主机都有端口转发,主机文件是:
[all]
10.80.238.11:20003
10.80.238.11:20001
10.80.238.11:20007
10.80.238.11:20009我试图用playbook来ping他们,但总是从第一个条目得到响应,在这种情况下是10.80.238.11:20003,而不是其他人。身份验证已经到位,无论我移动到哪个主机,我都会从它那里得到响应,而不是其他人,我的行动手册是:
---
- hosts: all
  remote_user: root
  gather_facts: no
  tasks:
  - name: test connection
    ping:有办法解决这个问题吗?
发布于 2014-10-23 20:41:57
我认为您正在进行的端口转发是针对SSH的。
因此,您必须告诉ansible连接到哪个ssh端口。问题是你所有的主机都有相同的IP。所以你必须使用主机名,这样Ansible才能区分它们。
假设您将SSH端口转发到2000X的主机称为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然后,您可以发出:
ansible host3 -m ping 或者甚至是:
ansible all -m ping请注意,您不应该创建all组,因为Ansible会自动创建它。
https://stackoverflow.com/questions/26527458
复制相似问题