it-roy-ru.com

ошибка ANSIB соединения

Я пытаюсь запустить ANSIBLE роль на нескольких серверах, но я получаю сообщение об ошибке:

фатально: [192.168.0.10]: недостижимо! => {"изменено": false, "msg": "Не удалось подключиться к хосту через ssh.", "Unreachable": true}

Мой файл/etc/ansible/hosts выглядит следующим образом:

192.168.0.10 ansible_Sudo_pass='passphrase' ansible_ssh_user=user
192.168.0.11 ansible_Sudo_pass='passphrase' ansible_ssh_user=user
192.168.0.12 ansible_Sudo_pass='passphrase' ansible_ssh_user=user

Я понятия не имею, что происходит - все выглядит хорошо - я могу войти через SSH, но ansible ping возвращает ту же ошибку.

Лог от подробного исполнения:

<192.168.0.10> УСТАНОВИТЬ СОЕДИНЕНИЕ SSH ДЛЯ ПОЛЬЗОВАТЕЛЯ: пользователь <192.168.0.10> SSH: EXEC ssh -C -vvv -o ControlMaster = auto -o ControlPersist = 60 с -o KbdInteractiveAuthentication = нет -o PreferredAuthentications = GSSAPI-с-микрофоном, GSSAPI-keyex, hostbased, PublicKey -o PasswordAuthentication = нет -o пользователь = пользователь -o ConnectTimeout = 10 -o ControlPath =/root/.ansible/cp/ansible-ssh-% h-% p-% r 192.168.0.10 '/ bin/sh -c' "'"' (umask 22 && mkdir -p "echo $HOME/.ansible/tmp/ansible-tmp-1463151813.31-156630225033829" && echo "echo $HOME/.ansible/tmp/ansible-tmp-1463151813.31-156630225033829" ) '"'" ''

Вы можете помочь мне как-нибудь? Если мне нужно использовать ansible в локальном режиме (-c local), то это бесполезно.

Я пытался удалить ansible_Sudo_pass и ansible_ssh_user, но это не помогло.

25
Thomas

Вам также необходимо изменить ansible_ssh_pass или ключ ssh, например, я использую это в моем файле инвентаря:

192.168.33.100 ansible_ssh_pass=vagrant ansible_ssh_user=vagrant

После этого я могу подключиться к удаленному хосту:

ansible all -i tests -m ping

Со следующим результатом:

192.168.33.100 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}

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

37
Arbab Nazar
mkdir /etc/ansible
cat > hosts
default ansible_ssh_Host=127.0.0.1 ansible_ssh_port=2222 ansible_ssh_user=vagrant ansible_ssh_private_key_file=.vagrant/machines/default/virtualbox/private_key

Перейдите в каталог playbook и запустите ansible all -m ping

4
SJP

Попробуйте изменить свой файл хоста так: 

192.168.0.10
192.168.0.11
192.168.0.12
2
Nikola

$ansible -m ping all -vvv

После установки ansible в Ubuntu или CentOS . Вы можете получить сообщения ниже. Не паникуйте, у вас должно быть право доступа к файлу /tmp пользователя [/home/user_name/.ansible/tmp/] . "Authentication or permission failure".

Эта предварительная версия решит проблему.

[Your_server ~]$ ansible -m ping all
rusub-bm-gt | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
Your_server | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
0
Toungara Mohamed

У меня была эта проблема, но это было по другой причине, чем было задокументировано в других ответах. Мой Хост, на котором я пытался развернуться, был доступен только через поле перехода. Первоначально я думал, что это потому, что Ansible не распознавал мой конфигурационный файл SSH, но это было так. Решение для меня состояло в том, чтобы удостовериться, что пользователь, который присутствовал в файле конфигурации SSH, соответствовал пользователю в книге воспроизведения Ansible. Это решило проблему для меня.

0
entpnerd

Ansible_ssh_port изменился при перезагрузке виртуальной машины. 

==> по умолчанию: загрузка ВМ ...

==> default: ожидание загрузки машины. Это может занять несколько минут...

default: SSH address: 127.0.0.1:2222

default: SSH username: vagrant

default: SSH auth method: private key

Поэтому мне пришлось обновить файл инвентаризации/хостов следующим образом:

default ansible_ssh_Host=127.0.0.1 ansible_ssh_port=2222 ansible_ssh_user='centos' ansible_ssh_private_key_file=<key path>
0
Geetha