prudhvi
prudhvi

Reputation: 1171

Remote Machine unreachable while trying to ping through ansible

This is my hosts file :

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

I am trying to ping it using the following command :

ansible openstack -u redhat -m ping -vvvv

I got the following response :

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
}

NOTE : I am able to connect to centos machines properly. But, I can't ping Ubuntu and Redhat machines. My controller machine is Centos. What might the problem be?

Upvotes: 0

Views: 652

Answers (3)

prudhvi
prudhvi

Reputation: 1171

I solved it finally by using the following command :

ansible openstack -u ec2-user -m ping

I have been typing -u redhat but AWS has already given a name to it automatically ec2-user

Upvotes: 1

Nelson G.
Nelson G.

Reputation: 5441

In your command line, use argument -k to ask ssh passwork:

ansible openstack -u redhat -m ping -k

Upvotes: 0

Cloudish123
Cloudish123

Reputation: 879

"ESTABLISH SSH CONNECTION FOR USER: None" - this means that it is trying to ssh this host using a blank username which will not work.

Two solutions:

  1. Edit the hosts file to include ansible_user=ubuntu (or whatever user your flavor uses, i.e. ec2-user for amazon linux)

    [openstack]
    ec2-54-204-230-203.compute-1.amazonaws.com ansibler_user=ubuntu

  2. Just call it with the -u ubuntu when calling the playbook (or again whatever your flavor uses).

    ansible openstack -u ubuntu -m ping -vvvv

Hope this helps!

--Edit-- (this is what helped me do it)

1.) Add your ssh key to the ~/.ssh directory

touch ~/.ssh/mykey.pem  

2.) Enter ssh-agent bash mode

ssh-agent bash

3.) Ehange its permissionschmod

chmod 600 ~/.ssh/mykey.pem  

4.) Make a path for ansible to use the permission

ssh-add ~/.ssh/mykey.pem

Upvotes: 0

Related Questions