Ansible берёт машины из инвентаря и входит на каждую по SSH. Ошибка в строке машины — и до самой работы дело не доходит.
Инвентарь — файл со списком машин. Файл ansible.cfg в текущем каталоге указывает на него строкой inventory = inventory.ini, поэтому ansible all в ~/ansible-lab находит список сам. Строка машины у коллеги:
| Часть | Что значит |
|---|---|
[web] |
группа: несколько машин под одним именем; all — все машины инвентаря |
app1 |
имя машины в Ansible: его пишут в командах и видят в ответах |
ansible_host |
адрес, по которому идёт SSH; без него SSH идёт по имени машины |
ansible_user |
под кем входить; без него — под тем, кто запустил Ansible |
Ansible подключается так же, как ssh deploy@app1.lab.test (SSH), и уже на машине запускает модуль — небольшую программу на python, которая делает работу и отвечает. Поэтому UNREACHABLE! значит одно: SSH не подключился, модуль не запускался. Искать причину надо в имени, адресе, пользователе и ключе (три сообщения SSH — в Вики). Что Ansible понял из инвентаря, показывают ansible-inventory --graph (группы) и ansible-inventory --host app1 (переменные машины).
В этом уроке app.lab.test — адрес этой же машины, 127.0.0.1: Ansible входит на неё по SSH, как на соседний сервер.
Почини строку app1 в инвентаре
Исправь ~/ansible-lab/inventory.ini так, чтобы ansible all -m ping получил от app1 pong по SSH. Имя машины в инвентаре оставь app1; входить на неё Ansible должен под учётной записью, у которой есть ключ SSH.
Цели · 0 из 2
- Указать адрес, по которому SSH находит машину ещё не выполнена
- Получить pong от app1 по SSH ещё не выполнена