Невозможно: нет хостов

Я пытаюсь выполнить мой первый удаленный сценарий оболочки на Ansible. Сначала я сгенерировал и скопировал ключи SSH. Вот мой yml файл:

---
- name: Ansible remote shell
  hosts: 192.168.10.1
  user: myuser1
  become: true
  become_user: jboss
  tasks:
    - name: Hello server
      shell: /home/jboss/script.sh

Однако при запуске playbook результат "нет хостов согласован":

ansible-playbook setup.yml 

PLAY [Ansible remote shell
******************************************** 
skipping: no hosts matched

PLAY RECAP ******************************************************************** 

Я также пробовал использовать имя хоста (вместо IP-адреса), однако ничего не изменилось. Любая помощь?

Ответ 1

Вам необходимо определить инвентарь хоста.

Путь по умолчанию для этого - /etc/ansible/hosts (как также указано helloV).

Для минимального примера вы также можете указать инвентарь в командной строке:

ansible-playbook setup.yml -i 192.168.10.1,

Задняя запятая делает его списком, таким образом, чтобы он анализировал его прямо. В противном случае вы можете запустить

ansible-playbook setup.yml -i myinventory

где myinventory - это файл, в котором перечислены ваши хосты.

Ответ 2

Ansible ничего не знает о вашем хосте. Если он находится в динамической инвентаризации, вы можете передать сценарий инвентаризации с помощью опции -i или изменить /etc/ansible/hosts и добавить запись для своего хоста, например:

[myhost]
192.168.10.1

и укажите хост в playbook как:

hosts: myhost