У меня есть 2 окружения , у каждого есть 3 сервера . Первое окружение - давайте назовем его ansible_env
- существует в той же сети сервера, что и отвечающий клиент ansible_server
.
Второе окружение env_a
доступно через jumpserver , который является одним из его 3 серверов master-a
.
Этот файл инвентаризации /etc/ansible/hosts
:
all:
children:
linux:
hosts:
slave1:
slave2:
master:
centos7sx64:
ansible_user: user
ansible_password: password
children:
env_a:
hosts:
master-a:
ansible_host: master
slave1-a:
ansible_host: slave1
slave2-a:
ansible_host: slave2
vars:
ansible_ssh_common_args: '-oProxyCommand="ssh -W %h:%p host -p 22"'
vars:
ansible_user: user
ansible_password: password
Когда я вызываю ansible на env_a
, я получаю правильные значения , , которые представляют собой имена хостов, добавленные к -a
, которые я добавил на каждом сервере и не перезагружал, поэтому я могу продолжатьиспользуйте те же имена хостов и отличайтесь от них в другой среде .
$ ansible env_a -a 'hostname'
slave1-a | CHANGED | rc=0 >>
slave1-a
master-a | CHANGED | rc=0 >>
master-a
slave2-a | CHANGED | rc=0 >>
slave2-a
Проблема заключается в том, что при вызове его на all
он возвращает значениясоответствующие серверы ansible_env
.
$ ansible all -a 'hostname'
master | CHANGED | rc=0 >>
master
master-a | CHANGED | rc=0 >>
master
slave1 | CHANGED | rc=0 >>
slave1
slave2 | CHANGED | rc=0 >>
slave2
centos7sx64 | CHANGED | rc=0 >>
centos7
slave2-a | CHANGED | rc=0 >>
slave2
slave1-a | CHANGED | rc=0 >>
slave1
PS Я могу ssh нормально, используя тот же ProxyCommand
, используемый для вышеупомянутых env_a
серверов, и уже проверил его.
Этоповедение с ansible version 2.8.4 & 2.8.5
.
Это ошибка, или я что-то упустил?