Хост не найден в инвентаре Ansible - PullRequest
0 голосов
/ 29 июня 2018

Я пытаюсь провести некоторое тестирование на конкретном хосте с Ansible 2.5, но ansible не может определить мой инвентарь. Я либо сделал что-то не так, либо есть ошибка. Я делал это в прошлом, но, возможно, что-то изменилось в 2.5

У меня есть файл инвентаря, указанный следующим образом:

localhost   ansible_connection=local
testhost   ansible_ssh_host=1.2.3.4

У меня есть плейбук, который отлично работает, если я просто запускаю его с ansible playbook.yml. Это начинается так:

- hosts: localhost
  become: yes
  become_user: root
  become_method: sudo
  gather_facts: yes

Если я запускаю ansible-inventory --list, я вижу, что оба моих хоста указаны как "разгруппированные"

Однако, если я попытаюсь запустить мою книгу воспроизведения с удаленного хоста, используя ansible -l testhost playbook.yml, произойдет следующее:

 [WARNING]: Could not match supplied host pattern, ignoring: playbook.yml

ERROR! Specified hosts and/or --limit does not match any hosts

Я не могу понять, как заставить Ansible работать на моем удаленном хосте.

Ответы [ 2 ]

0 голосов
/ 20 июня 2019

использовать простой метод, где вы должны подключиться в локальной системе? просто укажите connection : local для блока hosts

- hosts: localhost
  connection : local
  become: yes
  become_user: root
0 голосов
/ 29 июня 2018

В вашей пьесе указано:

hosts: localhost

Он не будет работать на testfile независимо от того, какие аргументы вы указали. --limit не заменяет декларацию hosts.


Поскольку ваши хосты разгруппированы, вам нужно изменить это на:

hosts: all

Затем вы можете использовать параметр limit для фильтрации хостов из заданной целевой группы.


Вы также используете неправильную команду для запуска Ansible playbook, она должна быть ansible-playbook, а не ansible (и, хотя эффект тот же, последний не выдает ошибку в таком случае).

...