2016-05-01 2 views
1

У меня есть Линукс работает ec2 амазонки, которые я могу SSH, чтобы с помощью:Pinging ec2 экземпляра из анзибля

ssh -i "keypair.pem" [email protected] 

, но когда я пытаюсь пинговать сервер с помощью анзибля я получаю:

testserver | UNREACHABLE! => { 
    "changed": false, 
    "msg": "Failed to connect to the host via ssh.", 
    "unreachable": true 
} 

Я использую следующий файл хостов:

testserver ansible_ssh_host=some-ip.eu-west-1.compute.amazonaws.com ansible_ssh_user=ec2-user ansible_ssh_private_key_file=/Users/me/playbook/key-pair.pem 

и выполнив следующую команду для запуска анзибля:

ansible testserver -i hosts -m ping -vvvvv 

Выход:

<some-ip.eu-west-1.compute.amazonaws.com> ESTABLISH SSH CONNECTION FOR USER: ec2-user 
<some-ip.eu-west-1.compute.amazonaws.com> SSH: ansible.cfg set ssh_args: (-o)(ControlMaster=auto)(-o)(ControlPersist=60s) 
<some-ip.eu-west-1.compute.amazonaws.com> SSH: ANSIBLE_PRIVATE_KEY_FILE/private_key_file/ansible_ssh_private_key_file set: (-o)(IdentityFile="/Users/me/playbook/key-pair.pem") 
<some-ip.eu-west-1.compute.amazonaws.com> SSH: ansible_password/ansible_ssh_pass not set: (-o)(KbdInteractiveAuthentication=no)(-o)(PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey)(-o)(PasswordAuthentication=no) 
<some-ip.eu-west-1.compute.amazonaws.com> SSH: ANSIBLE_REMOTE_USER/remote_user/ansible_user/user/-u set: (-o)(User=ec2-user) 
<some-ip.eu-west-1.compute.amazonaws.com> SSH: ANSIBLE_TIMEOUT/timeout set: (-o)(ConnectTimeout=10) 
<some-ip.eu-west-1.compute.amazonaws.com> SSH: PlayContext set ssh_common_args:() 
<some-ip.eu-west-1.compute.amazonaws.com> SSH: PlayContext set ssh_extra_args:() 
<some-ip.eu-west-1.compute.amazonaws.com> SSH: found only ControlPersist; added ControlPath: (-o)(ControlPath=/Users/me/.ansible/cp/ansible-ssh-%h-%p-%r) 
<some-ip.eu-west-1.compute.amazonaws.com> SSH: EXEC ssh -C -vvv -o ControlMaster=auto -o ControlPersist=60s -o 'IdentityFile="/Users/me/playbook/key-pair.pem"' -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o User=ec2-user -o ConnectTimeout=10 -o ControlPath=/Users/me/.ansible/cp/ansible-ssh-%h-%p-%r ec2-52-18-106-35.eu-west-1.compute.amazonaws.com '/bin/sh -c '"'"'(umask 22 && mkdir -p "` echo $HOME/.ansible/tmp/ansible-tmp-1462096401.65-214839021792201 `" && echo "` echo $HOME/.ansible/tmp/ansible-tmp-1462096401.65-214839021792201 `")'"'"'' 
testserver | UNREACHABLE! => { 
    "changed": false, 
    "msg": "Failed to connect to the host via ssh.", 
    "unreachable": true 
} 

Что я делаю неправильно?

+0

Вы уверены, что у вас нет опечатки в имени хоста? Я не могу подключиться к 'ec2-52-18-106-35.eu-west-1.compute.amazonaws.com', используя' ssh'. – Jakuje

+0

Да, безусловно, получилось правильное имя хоста. Это общедоступно здесь, и я только дважды проверил, что могу использовать ssh, используя адрес выше http://ec2-52-18-106-35.eu-west-1.compute.amazonaws.com –

+0

Какая версия Ansible вы используете? – RaviTezu

ответ

0

У меня была аналогичная проблема, и чтение через Troubleshooting Connecting to Your Instance помогло мне. В частности, я пинговал экземпляр Ubuntu с экземпляра Amazon-Linux, но забыл изменить имя пользователя подключения с «ec2-user» на «ubuntu»!

0

Вы должны изменить хост файл и убедитесь, что у вас есть правильное имя пользователя

test2 ansible_ssh_host=something.something.eu-west-1.compute.amazonaws.com ansible_ssh_user=theUser 

«test2» - это имя, которое я дать к SSH machice на моих местных анзибль хостов файл

'ansible_ssh_host = something.something.eu-west-1.compute.amazonaws.com' - Это соединение с экземпляром ec2

'ansible_ssh_user = theUser' - пользователь экземпляра. (Важно)

  1. 'SSH' в экземпляр
  2. [theUser @ Instance:] Убедитесь, что вы копируете 'theUser' в хостах и ​​место как 'ansible_ssh_user' переменная

затем попробуйте выполнить ping.

Если это не сработает, проверьте, есть ли у вас права на пакет ICMP в амазонке aws.

Смежные вопросы