2016-11-30 9 views
0

Это мой хосты файл:Удаленная машина недостижима при попытке пинговать через анзибль

[openstack] 
ec2-54-152-162-0.compute-1.amazonaws.com 

Я пытаюсь пинговать его с помощью следующей команды:

ansible openstack -u redhat -m ping -vvvv 

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

Loaded callback minimal of type stdout, v2.0 
Using module file /usr/lib/python2.7/site-packages/ansible-2.2.0-py2.7.egg/ansible/modules/core/system/ping.py 
<ec2-54-152-162-0.compute-1.amazonaws.com> ESTABLISH SSH CONNECTION FOR USER: redhat 
<ec2-54-152-162-0.compute-1.amazonaws.com> SSH: EXEC ssh -vvv -C -o ControlMaster=auto -o ControlPersist=60s -o Port=22 -o 'IdentityFile="/home/centos/AnsibleKeyPair.pem"' -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o User=redhat -o ConnectTimeout=10 -o ControlPath=/home/centos/.ansible/cp/ansible-ssh-%h-%p-%r ec2-54-152-162-0.compute-1.amazonaws.com '/bin/sh -c '"'"'(umask 77 && mkdir -p "` echo $HOME/.ansible/tmp/ansible-tmp-1480529571.83-128837972481874 `" && echo ansible-tmp-1480529571.83-128837972481874="` echo $HOME/.ansible/tmp/ansible-tmp-1480529571.83-128837972481874 `") && sleep 0'"'"'' 
ec2-54-152-162-0.compute-1.amazonaws.com | UNREACHABLE! => { 
    "changed": false, 
    "msg": "Failed to connect to the host via ssh.", 
    "unreachable": true 
} 

Примечание: Я могу подключиться к ЕКС tos машины. Но я не могу пинговать машины Ubuntu и Redhat. Мой контроллер - Centos. В чем проблема?

+1

Возможный дубликат [Корневая ошибка при попытке удалять удаленный сервер с помощью Ansible] (http://stackoverflow.com/questions/40888769/root-error-while-trying-to-ping-remote-server-using -следуемый) – user2599522

+0

Yaa .... обе такие же. Я редактировал его много раз. Итак, я опубликовал его отлично на этот раз – prudhvi

ответ

0

"СОХРАНЕНИЕ SSH ПОДКЛЮЧЕНИЕ ДЛЯ ПОЛЬЗОВАТЕЛЯ: Нет" - это означает, что он пытается передать этот хост пустым именем пользователя, которое не будет работать.

Два решения:

  1. Редактировать файл хостов включить ansible_user = убунту (или любой другой пользователь вашего вкуса использования, т.е. ec2 пользователей для амазонки Linux)

    [OpenStack]
    ec2- 54-204-230-203.compute-1.amazonaws.com ansibler_user = убунт

  2. Просто позвоните его с -u убунтом при вызове пьес (или еще раз, что когда-либо ваш вкус использует).

    анзибль OpenStack -u убунту -m пинг -vvvv

Надеется, что это помогает!

--Edit-- (это то, что помогло мне это сделать)

1.) Добавьте свой ключ SSH в ~/.ssh каталога

touch ~/.ssh/mykey.pem 

2.) Введите SSH-агент режим Баш

ssh-agent bash 

3.) Ehange его permissionschmod

chmod 600 ~/.ssh/mykey.pem 

4.) Сделать путь для анзибль использовать разрешение

ssh-add ~/.ssh/mykey.pem 
+0

Я пробовал, что у сказал мне сделать. Я получил ответ, и я обновил его в вопросе. Пожалуйста, проверьте это. – prudhvi

+0

У Ansible есть трудное время с вашими ключами. Лучшее решение, которое я нашел для этого, - это использовать команду ssh-add для добавления ssh-ключа. Вы должны получить идентификатор, добавленный: blah blah blah response, если вы правильно выполняете команду. – Cloudish123

+0

ssh-add ~/.ssh/mykey.pem – Cloudish123

0

В командной строке, используйте аргумент -k спросить SSH passwork:

ansible openstack -u redhat -m ping -k 
+0

Я прошу пароль ssh. Но у меня нет пароля ssh. Как его установить? – prudhvi

+1

Сильное использование ssh, тогда что происходит, когда вы используете команду 'ssh redhat @ ec2-54-152-162-0.compute-1.amazonaws.com'? –

1

Я решил это, наконец, с помощью следующей команды:

ansible openstack -u ec2-user -m ping 

Я набрал -u redhat, но AWS уже дал ему имя автоматически ec2-use r