Ansible ping не работает

Ниже мой хост-файл /etc/ansible/hosts

root@ubuntu:/home/dasitha# cat /etc/ansible/hosts
[web]
10.0.0.112 ansible_user=root

[local]
127.0.0.1 ansible_user=root

Когда я выполняю ansible all -m ping -vv ниже, выдается ошибка.

ansible 2.5.3
  config file = /etc/ansible/ansible.cfg
  configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.7/dist-packages/ansible
  executable location = /usr/bin/ansible
  python version = 2.7.6 (default, Jun 22 2015, 18:00:18) [GCC 4.8.2]
Using /etc/ansible/ansible.cfg as config file
META: ran handlers

    10.0.0.112 | UNREACHABLE! => {
        "changed": false,
        "msg": "Failed to connect to the host via ssh: Permission denied (publickey,password).\r\n",
        "unreachable": true
    }
    127.0.0.1 | UNREACHABLE! => {
        "changed": false,
        "msg": "Failed to connect to the host via ssh: Permission denied (publickey,password).\r\n",
        "unreachable": true
    }

person Community    schedule 24.05.2018    source источник
comment
Это проблема ssh, а не проблема с недоступностью. Можете ли вы подключиться к 10.0.0.112 по ssh с локального компьютера ssh [email protected]?   -  person tux    schedule 24.05.2018
comment
проверьте журналы sshd на 2 машинах. если вам повезет, вы можете увидеть четкое описание ошибки: systemctl status sshd   -  person ilias-sp    schedule 24.05.2018
comment
@tux ssh [email protected] [email protected]'s password: Welcome to Ubuntu 14.04.5 LTS (GNU/Linux 4.4.0-31-generic i686)it подсказка для пароля. Когда я ввел пароль. работает отлично   -  person    schedule 24.05.2018
comment
@ ilias-sp это единственная запись в журнале, которую я получаю May 24 17:32:35 ubuntuClient sshd[2389]: Connection closed by 10.0.0.111 [preauth]   -  person    schedule 24.05.2018
comment
@Daz в порядке, так что это не проблема ssh (пришлось это исключить). написание потенциального ответа с выводом сейчас   -  person ilias-sp    schedule 24.05.2018


Ответы (2)


поскольку ssh работает между доступным контроллером и удаленными машинами, это, вероятно, связано с тем, что ssh отклоняет вход в систему из-за неудачных способов аутентификации. вы, вероятно, не обменивались ключами ssh для входа в систему без пароля, и с вашей командой вы также не указали пароль.

Чтобы предоставить в специальных командах, подобных той, которую вы пробовали, пароль, вы передаете в конце флаг --ask-pass:

[ilias@optima-ansible ~]$ ansible greenhat -m ping --ask-pass
SSH password: 
greenhat | SUCCESS => {
    "changed": false, 
    "ping": "pong"
}
[ilias@optima-ansible ~]$

без флага:

[ilias@optima-ansible ~]$ ansible greenhat -m ping
greenhat | UNREACHABLE! => {
    "changed": false, 
    "msg": "Failed to connect to the host via ssh: ilias@greenhat: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).\r\n", 
    "unreachable": true
}
[ilias@optima-ansible ~]$ 

Надеюсь, это поможет

person ilias-sp    schedule 24.05.2018
comment
PS: если вам нужно управлять несколькими хостами, и у некоторых из них разные пароли, то описанный выше подход не идеален для вас. Я рекомендую обменять ssh-ключи. возможно, это будет вам полезно. - person ilias-sp; 24.05.2018
comment
да, у меня несколько логинов. Можете ли вы помочь мне в этом? - person ; 24.05.2018
comment
Я удалил один хост, чтобы начать тестирование. Но в итоге получилось что-то вроде ниже. root@ubuntu:/home/dasitha# ansible greenhat -m ping --ask-pass SSH password: [WARNING]: Could not match supplied host pattern, ignoring: greenhat [WARNING]: No hosts matched, nothing to do - person ; 24.05.2018
comment
greenhat - это имя хоста из моей среды, вы должны использовать all или любой отдельный хост из вашей среды :) - person ilias-sp; 24.05.2018
comment
опс! Виноват. Это прекрасно работает. Спасибо :) Не могли бы вы посоветовать мне, как обмениваться ключами между серверами? - person ; 24.05.2018
comment
есть много статей по этому поводу. Если вы хотите использовать мою книгу, для начала есть соответствующая документация. - person ilias-sp; 24.05.2018
comment
Не могли бы вы поделиться этим здесь? :) - person ; 24.05.2018
comment
Я добавил ссылку в 1-й комментарий, его здесь. - person ilias-sp; 24.05.2018

Ansible предполагает, что вы используете вход без пароля (на основе ключа) для SSH. Если вы настаиваете на использовании паролей, добавьте флаг --ask-pass ( -k ) в команды Ansible (вам также может потребоваться установить пакет sshpass, чтобы это работало).

$ sudo apt-get install sshpass
ansible server-group -m ping -k -u username
SSH password:
person haj_baba    schedule 16.09.2019