Проблема с Ansible Notebook для пинга пользователей - PullRequest
0 голосов
/ 19 сентября 2019

Пройдя некоторое чтение, я только что создал свой первый Ansible Playbook, чтобы пинговать хосты.

Сначала я удостоверился, что создал ключи SSH для сервера администратора и скопировал их на целевые серверы:

$ # ssh-keygen -t rsa -b4096

# ssh-copy-id administrator@nap-01.vm

# ssh-copy-id administrator@nap-02.vm

Затем я добавил целевые серверы в файл / etc / ansible / hosts:

[testing]
nap-01.vm
nap-02.vm

Сначала я протестировал с помощью модуля ping.Все прошло хорошо:

$ ansible -i /etc/ansible/hosts testing -m ping -u administrator
nap-02.vm | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
nap-01.vm | SUCCESS => {
    "changed": false,
    "ping": "pong"
}

У меня есть несколько пользователей на серверах тестирования, поэтому я использую учетную запись администратора.

Далее я попытался выполнить то же действие (ping)используя playbook:

$ cat test.yml
---
- name: "Get ping response"
  hosts: testing
  tasks:
  - action: ping
    register: hello
  - debug: msg="{hello.stdout}"


Но после его запуска:

$ ansible-playbook test.yml

я получаю следующий вывод:

PLAY [Get ping response] *******************************************************************************************************************************************************************

TASK [Gathering Facts] *********************************************************************************************************************************************************************
fatal: [nap-01.vm]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: oscar@nap-01.vm: Permission denied (publickey,password).", "unreachable": true}
fatal: [nap-02.vm]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: oscar@nap-02.vm: Permission denied (publickey,password).", "unreachable": true}

PLAY RECAP *********************************************************************************************************************************************************************************
nap-01.vm                  : ok=0    changed=0    unreachable=1    failed=0    skipped=0    rescued=0    ignored=0
nap-02.vm                  : ok=0    changed=0    unreachable=1    failed=0    skipped=0    rescued=0    ignored=0

Таким образом, похоже, что пульт неразрешить подключение через SSH и разрешение отклоняется.Однако, поскольку ping работал через модуль, я предполагаю, что, возможно, мне не хватает чего-то в файле YAML, который указывает на подключение к пользователю «администратор», как в первом тесте.

Любой совет по этому вопросу будетБудьте благодарны.

Спасибо.

Ответы [ 2 ]

2 голосов
/ 19 сентября 2019

Ошибка:

Не удалось подключиться к хосту через ssh: oscar@nap-01.vm

Есть параопций как подключиться как administrator@nap-01.vm*

1) Укажите remote_user в командной строке

$ ansible-playbook test.yml -u administrator

2) Указатьremote_user в сборнике пьес

- name: "Get ping response"
  hosts: testing
  remote_user: administrator
  tasks:
  ...

3) Укажите ansible_user в инвентаре

[testing]
nap-01.vm ansible_user=administrator
nap-02.vm ansible_user=administrator

4) Набор ANSIBLE_REMOTE_USER


Примечания
0 голосов
/ 19 сентября 2019

Начиная с 1-го действия:

ansible -i /etc/ansible/hosts testing -m ping -u administrator

Вы сообщаете пользователю «администратор» и можете подключиться к хосту при настройке необходимых ключей.

Когдавы запускаете playbook, он говорит:

fatal: [nap-01.vm]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: oscar@nap-01.vm: Permission denied (publickey,password).", "unreachable": true}

Это потому, что он использует пользователя "oscar" для подключения к целевому хосту.Передайте "-u администратор" в свою игровую книгу.Это должно работать.

Или, если вы хотите запускать все ответные задачи, используя «administrator», измените настройки в файле ansible.cfg.Найдите запись «Удаленный пользователь», как показано ниже:

# default user to use for playbooks if user is not specified
# (/usr/bin/ansible will use current user as default)
#remote_user = root
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...