Hi Alex,

1) I am not sure I understood "placing the availability zone in the region 
field instead of the region" correctly. Because when I exported 
"us-west-2a" as AWS_DEFAULT_REGION (which my ec2.py is using to filter 
region), it gave me error like this:

ERROR! The file inventory/ec2.py is marked as executable, but failed to 
execute correctly. If this is not supposed to be an executable script, 
correct this with `chmod -x inventory/ec2.py`.
Inventory script (inventory/ec2.py) had an execution error: region name: 
us-west-2a likely not supported, or AWS is down.  connection to region 
failed.
inventory/ec2.py:3: Error parsing host definition ''''': No closing 
quotation


Let me know where can I place AZ instead of region.

2) Yes, I tried executing 
./inventory/ec2.py --refresh-cache
between instance creation playbook and ping command, but with no luck ! And 
IMHO it doesn't matter to refresh cache as I have "*cache_max_age = 0*" in 
ec2.ini. (Correct me if I am wrong.)

For the first time when I ping *doesn't succeed*, verbose and console 
output is:

[Private_IP1 and Private_IP2 are the instances already running and matching 
the filter in ec2.py, *Private_IP3* is the IP of the instance just launched 
and waited for port 22 successfully]

Using /etc/ansible/ansible.cfg as config file
Loaded callback minimal of type stdout, v2.0
<Private_IP1> ESTABLISH SSH CONNECTION FOR USER: centos
<Private_IP3> ESTABLISH SSH CONNECTION FOR USER: centos
<Private_IP3> SSH: ansible.cfg set ssh_args: 
(-o)(ControlMaster=auto)(-o)(ControlPersist=60s)
<Private_IP3> SSH: ANSIBLE_HOST_KEY_CHECKING/host_key_checking disabled: 
(-o)(StrictHostKeyChecking=no)
<Private_IP1> SSH: ansible.cfg set ssh_args: 
(-o)(ControlMaster=auto)(-o)(ControlPersist=60s)
<Private_IP1> SSH: ANSIBLE_HOST_KEY_CHECKING/host_key_checking disabled: 
(-o)(StrictHostKeyChecking=no)
<Private_IP1> SSH: 
ANSIBLE_PRIVATE_KEY_FILE/private_key_file/ansible_ssh_private_key_file set: 
(-o)(IdentityFile="/home/ubuntu/.ssh/MyKey.pem")
<Private_IP3> SSH: 
ANSIBLE_PRIVATE_KEY_FILE/private_key_file/ansible_ssh_private_key_file set: 
(-o)(IdentityFile="/home/ubuntu/.ssh/MyKey.pem")
<Private_IP3> SSH: ansible_password/ansible_ssh_pass not set: 
(-o)(KbdInteractiveAuthentication=no)(-o)(PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey)(-o)(PasswordAuthentication=no)
<Private_IP3> SSH: ANSIBLE_REMOTE_USER/remote_user/ansible_user/user/-u 
set: (-o)(User=centos)
<Private_IP1> SSH: ansible_password/ansible_ssh_pass not set: 
(-o)(KbdInteractiveAuthentication=no)(-o)(PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey)(-o)(PasswordAuthentication=no)
<Private_IP1> SSH: ANSIBLE_REMOTE_USER/remote_user/ansible_user/user/-u 
set: (-o)(User=centos)
<Private_IP1> SSH: ANSIBLE_TIMEOUT/timeout set: (-o)(ConnectTimeout=10)
<Private_IP3> SSH: ANSIBLE_TIMEOUT/timeout set: (-o)(ConnectTimeout=10)
<Private_IP3> SSH: PlayContext set ssh_common_args: ()
<Private_IP3> SSH: PlayContext set ssh_extra_args: ()
<Private_IP1> SSH: PlayContext set ssh_common_args: ()
<Private_IP1> SSH: PlayContext set ssh_extra_args: ()
<Private_IP1> SSH: found only ControlPersist; added ControlPath: 
(-o)(ControlPath=/home/ubuntu/.ansible/cp/ansible-ssh-%h-%p-%r)
<Private_IP3> SSH: found only ControlPersist; added ControlPath: 
(-o)(ControlPath=/home/ubuntu/.ansible/cp/ansible-ssh-%h-%p-%r)
<Private_IP3> SSH: EXEC ssh -C -vvv -o ControlMaster=auto -o 
ControlPersist=60s -o StrictHostKeyChecking=no -o 
'IdentityFile="/home/ubuntu/.ssh/MyKey.pem"' -o 
KbdInteractiveAuthentication=no -o 
PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey 
-o PasswordAuthentication=no -o User=centos -o ConnectTimeout=10 -o 
ControlPath=/home/ubuntu/.ansible/cp/ansible-ssh-%h-%p-%r Private_IP3 
'/bin/sh -c '"'"'( umask 77 && mkdir -p "` echo 
$HOME/.ansible/tmp/ansible-tmp-1474528176.32-147953530428586 `" && echo 
ansible-tmp-1474528176.32-147953530428586="` echo 
$HOME/.ansible/tmp/ansible-tmp-1474528176.32-147953530428586 `" ) && sleep 
0'"'"''
<Private_IP1> SSH: EXEC ssh -C -vvv -o ControlMaster=auto -o 
ControlPersist=60s -o StrictHostKeyChecking=no -o 
'IdentityFile="/home/ubuntu/.ssh/MyKey.pem"' -o 
KbdInteractiveAuthentication=no -o 
PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey 
-o PasswordAuthentication=no -o User=centos -o ConnectTimeout=10 -o 
ControlPath=/home/ubuntu/.ansible/cp/ansible-ssh-%h-%p-%r Private_IP1 
'/bin/sh -c '"'"'( umask 77 && mkdir -p "` echo 
$HOME/.ansible/tmp/ansible-tmp-1474528176.32-242806970585719 `" && echo 
ansible-tmp-1474528176.32-242806970585719="` echo 
$HOME/.ansible/tmp/ansible-tmp-1474528176.32-242806970585719 `" ) && sleep 
0'"'"''
<Private_IP2> ESTABLISH SSH CONNECTION FOR USER: centos
<Private_IP2> SSH: ansible.cfg set ssh_args: 
(-o)(ControlMaster=auto)(-o)(ControlPersist=60s)
<Private_IP2> SSH: ANSIBLE_HOST_KEY_CHECKING/host_key_checking disabled: 
(-o)(StrictHostKeyChecking=no)
<Private_IP2> SSH: 
ANSIBLE_PRIVATE_KEY_FILE/private_key_file/ansible_ssh_private_key_file set: 
(-o)(IdentityFile="/home/ubuntu/.ssh/MyKey.pem")
<Private_IP2> SSH: ansible_password/ansible_ssh_pass not set: 
(-o)(KbdInteractiveAuthentication=no)(-o)(PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey)(-o)(PasswordAuthentication=no)
<Private_IP2> SSH: ANSIBLE_REMOTE_USER/remote_user/ansible_user/user/-u 
set: (-o)(User=centos)
<Private_IP2> SSH: ANSIBLE_TIMEOUT/timeout set: (-o)(ConnectTimeout=10)
<Private_IP2> SSH: PlayContext set ssh_common_args: ()
<Private_IP2> SSH: PlayContext set ssh_extra_args: ()
<Private_IP2> SSH: found only ControlPersist; added ControlPath: 
(-o)(ControlPath=/home/ubuntu/.ansible/cp/ansible-ssh-%h-%p-%r)
<Private_IP2> SSH: EXEC ssh -C -vvv -o ControlMaster=auto -o 
ControlPersist=60s -o StrictHostKeyChecking=no -o 
'IdentityFile="/home/ubuntu/.ssh/MyKey.pem"' -o 
KbdInteractiveAuthentication=no -o 
PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey 
-o PasswordAuthentication=no -o User=centos -o ConnectTimeout=10 -o 
ControlPath=/home/ubuntu/.ansible/cp/ansible-ssh-%h-%p-%r Private_IP2 
'/bin/sh -c '"'"'( umask 77 && mkdir -p "` echo 
$HOME/.ansible/tmp/ansible-tmp-1474528176.32-96061508357666 `" && echo 
ansible-tmp-1474528176.32-96061508357666="` echo 
$HOME/.ansible/tmp/ansible-tmp-1474528176.32-96061508357666 `" ) && sleep 
0'"'"''
<Private_IP1> PUT /tmp/tmplSwpxr TO 
/home/centos/.ansible/tmp/ansible-tmp-1474528176.32-242806970585719/ping
<Private_IP1> SSH: ansible.cfg set ssh_args: 
(-o)(ControlMaster=auto)(-o)(ControlPersist=60s)
<Private_IP1> SSH: ANSIBLE_HOST_KEY_CHECKING/host_key_checking disabled: 
(-o)(StrictHostKeyChecking=no)
<Private_IP1> SSH: 
ANSIBLE_PRIVATE_KEY_FILE/private_key_file/ansible_ssh_private_key_file set: 
(-o)(IdentityFile="/home/ubuntu/.ssh/MyKey.pem")
<Private_IP1> SSH: ansible_password/ansible_ssh_pass not set: 
(-o)(KbdInteractiveAuthentication=no)(-o)(PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey)(-o)(PasswordAuthentication=no)
<Private_IP1> SSH: ANSIBLE_REMOTE_USER/remote_user/ansible_user/user/-u 
set: (-o)(User=centos)
<Private_IP1> SSH: ANSIBLE_TIMEOUT/timeout set: (-o)(ConnectTimeout=10)
<Private_IP1> SSH: PlayContext set ssh_common_args: ()
<Private_IP1> SSH: PlayContext set sftp_extra_args: ()
<Private_IP1> SSH: found only ControlPersist; added ControlPath: 
(-o)(ControlPath=/home/ubuntu/.ansible/cp/ansible-ssh-%h-%p-%r)
<Private_IP1> SSH: EXEC sftp -b - -C -vvv -o ControlMaster=auto -o 
ControlPersist=60s -o StrictHostKeyChecking=no -o 
'IdentityFile="/home/ubuntu/.ssh/MyKey.pem"' -o 
KbdInteractiveAuthentication=no -o 
PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey 
-o PasswordAuthentication=no -o User=centos -o ConnectTimeout=10 -o 
ControlPath=/home/ubuntu/.ansible/cp/ansible-ssh-%h-%p-%r '[Private_IP1]'
<Private_IP2> PUT /tmp/tmptkiK31 TO 
/home/centos/.ansible/tmp/ansible-tmp-1474528176.32-96061508357666/ping
<Private_IP2> SSH: ansible.cfg set ssh_args: 
(-o)(ControlMaster=auto)(-o)(ControlPersist=60s)
<Private_IP2> SSH: ANSIBLE_HOST_KEY_CHECKING/host_key_checking disabled: 
(-o)(StrictHostKeyChecking=no)
<Private_IP2> SSH: 
ANSIBLE_PRIVATE_KEY_FILE/private_key_file/ansible_ssh_private_key_file set: 
(-o)(IdentityFile="/home/ubuntu/.ssh/MyKey.pem")
<Private_IP2> SSH: ansible_password/ansible_ssh_pass not set: 
(-o)(KbdInteractiveAuthentication=no)(-o)(PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey)(-o)(PasswordAuthentication=no)
<Private_IP2> SSH: ANSIBLE_REMOTE_USER/remote_user/ansible_user/user/-u 
set: (-o)(User=centos)
<Private_IP2> SSH: ANSIBLE_TIMEOUT/timeout set: (-o)(ConnectTimeout=10)
<Private_IP2> SSH: PlayContext set ssh_common_args: ()
<Private_IP2> SSH: PlayContext set sftp_extra_args: ()
<Private_IP2> SSH: found only ControlPersist; added ControlPath: 
(-o)(ControlPath=/home/ubuntu/.ansible/cp/ansible-ssh-%h-%p-%r)
<Private_IP2> SSH: EXEC sftp -b - -C -vvv -o ControlMaster=auto -o 
ControlPersist=60s -o StrictHostKeyChecking=no -o 
'IdentityFile="/home/ubuntu/.ssh/MyKey.pem"' -o 
KbdInteractiveAuthentication=no -o 
PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey 
-o PasswordAuthentication=no -o User=centos -o ConnectTimeout=10 -o 
ControlPath=/home/ubuntu/.ansible/cp/ansible-ssh-%h-%p-%r '[Private_IP2]'
<Private_IP1> ESTABLISH SSH CONNECTION FOR USER: centos
<Private_IP1> SSH: ansible.cfg set ssh_args: 
(-o)(ControlMaster=auto)(-o)(ControlPersist=60s)
<Private_IP1> SSH: ANSIBLE_HOST_KEY_CHECKING/host_key_checking disabled: 
(-o)(StrictHostKeyChecking=no)
<Private_IP1> SSH: 
ANSIBLE_PRIVATE_KEY_FILE/private_key_file/ansible_ssh_private_key_file set: 
(-o)(IdentityFile="/home/ubuntu/.ssh/MyKey.pem")
<Private_IP1> SSH: ansible_password/ansible_ssh_pass not set: 
(-o)(KbdInteractiveAuthentication=no)(-o)(PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey)(-o)(PasswordAuthentication=no)
<Private_IP1> SSH: ANSIBLE_REMOTE_USER/remote_user/ansible_user/user/-u 
set: (-o)(User=centos)
<Private_IP1> SSH: ANSIBLE_TIMEOUT/timeout set: (-o)(ConnectTimeout=10)
<Private_IP1> SSH: PlayContext set ssh_common_args: ()
<Private_IP1> SSH: PlayContext set ssh_extra_args: ()
<Private_IP1> SSH: found only ControlPersist; added ControlPath: 
(-o)(ControlPath=/home/ubuntu/.ansible/cp/ansible-ssh-%h-%p-%r)
<Private_IP1> SSH: EXEC ssh -C -vvv -o ControlMaster=auto -o 
ControlPersist=60s -o StrictHostKeyChecking=no -o 
'IdentityFile="/home/ubuntu/.ssh/MyKey.pem"' -o 
KbdInteractiveAuthentication=no -o 
PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey 
-o PasswordAuthentication=no -o User=centos -o ConnectTimeout=10 -o 
ControlPath=/home/ubuntu/.ansible/cp/ansible-ssh-%h-%p-%r -tt Private_IP1 
'/bin/sh -c '"'"'LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 
LC_MESSAGES=en_US.UTF-8 /usr/bin/python 
/home/centos/.ansible/tmp/ansible-tmp-1474528176.32-242806970585719/ping; 
rm -rf 
"/home/centos/.ansible/tmp/ansible-tmp-1474528176.32-242806970585719/" > 
/dev/null 2>&1 && sleep 0'"'"''
<Private_IP2> ESTABLISH SSH CONNECTION FOR USER: centos
<Private_IP2> SSH: ansible.cfg set ssh_args: 
(-o)(ControlMaster=auto)(-o)(ControlPersist=60s)
<Private_IP2> SSH: ANSIBLE_HOST_KEY_CHECKING/host_key_checking disabled: 
(-o)(StrictHostKeyChecking=no)
<Private_IP2> SSH: 
ANSIBLE_PRIVATE_KEY_FILE/private_key_file/ansible_ssh_private_key_file set: 
(-o)(IdentityFile="/home/ubuntu/.ssh/MyKey.pem")
<Private_IP2> SSH: ansible_password/ansible_ssh_pass not set: 
(-o)(KbdInteractiveAuthentication=no)(-o)(PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey)(-o)(PasswordAuthentication=no)
<Private_IP2> SSH: ANSIBLE_REMOTE_USER/remote_user/ansible_user/user/-u 
set: (-o)(User=centos)
<Private_IP2> SSH: ANSIBLE_TIMEOUT/timeout set: (-o)(ConnectTimeout=10)
<Private_IP2> SSH: PlayContext set ssh_common_args: ()
<Private_IP2> SSH: PlayContext set ssh_extra_args: ()
<Private_IP2> SSH: found only ControlPersist; added ControlPath: 
(-o)(ControlPath=/home/ubuntu/.ansible/cp/ansible-ssh-%h-%p-%r)
<Private_IP2> SSH: EXEC ssh -C -vvv -o ControlMaster=auto -o 
ControlPersist=60s -o StrictHostKeyChecking=no -o 
'IdentityFile="/home/ubuntu/.ssh/MyKey.pem"' -o 
KbdInteractiveAuthentication=no -o 
PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey 
-o PasswordAuthentication=no -o User=centos -o ConnectTimeout=10 -o 
ControlPath=/home/ubuntu/.ansible/cp/ansible-ssh-%h-%p-%r -tt Private_IP2 
'/bin/sh -c '"'"'LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 
LC_MESSAGES=en_US.UTF-8 /usr/bin/python 
/home/centos/.ansible/tmp/ansible-tmp-1474528176.32-96061508357666/ping; rm 
-rf "/home/centos/.ansible/tmp/ansible-tmp-1474528176.32-96061508357666/" > 
/dev/null 2>&1 && sleep 0'"'"''
Private_IP1 | SUCCESS => {
    "changed": false,
    "invocation": {
        "module_args": {
            "data": null
        },
        "module_name": "ping"
    },
    "ping": "pong"
}
Private_IP2 | SUCCESS => {
    "changed": false,
    "invocation": {
        "module_args": {
            "data": null
        },
        "module_name": "ping"
    },
    "ping": "pong"
}
Private_IP3 | UNREACHABLE! => {
    "changed": false,
    "msg": "Failed to connect to the host via ssh.",
    "unreachable": true
}


On the second time (after half a min max) when it *succeeds*, the logs are: 

Using /etc/ansible/ansible.cfg as config file
Loaded callback minimal of type stdout, v2.0
<Private_IP3> ESTABLISH SSH CONNECTION FOR USER: centos
<Private_IP3> SSH: ansible.cfg set ssh_args: 
(-o)(ControlMaster=auto)(-o)(ControlPersist=60s)
<Private_IP1> ESTABLISH SSH CONNECTION FOR USER: centos
<Private_IP1> SSH: ansible.cfg set ssh_args: 
(-o)(ControlMaster=auto)(-o)(ControlPersist=60s)
<Private_IP3> SSH: ANSIBLE_HOST_KEY_CHECKING/host_key_checking disabled: 
(-o)(StrictHostKeyChecking=no)
<Private_IP3> SSH: 
ANSIBLE_PRIVATE_KEY_FILE/private_key_file/ansible_ssh_private_key_file set: 
(-o)(IdentityFile="/home/ubuntu/.ssh/MyKey.pem")
<Private_IP1> SSH: ANSIBLE_HOST_KEY_CHECKING/host_key_checking disabled: 
(-o)(StrictHostKeyChecking=no)
<Private_IP1> SSH: 
ANSIBLE_PRIVATE_KEY_FILE/private_key_file/ansible_ssh_private_key_file set: 
(-o)(IdentityFile="/home/ubuntu/.ssh/MyKey.pem")
<Private_IP1> SSH: ansible_password/ansible_ssh_pass not set: 
(-o)(KbdInteractiveAuthentication=no)(-o)(PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey)(-o)(PasswordAuthentication=no)
<Private_IP3> SSH: ansible_password/ansible_ssh_pass not set: 
(-o)(KbdInteractiveAuthentication=no)(-o)(PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey)(-o)(PasswordAuthentication=no)
<Private_IP3> SSH: ANSIBLE_REMOTE_USER/remote_user/ansible_user/user/-u 
set: (-o)(User=centos)
<Private_IP3> SSH: ANSIBLE_TIMEOUT/timeout set: (-o)(ConnectTimeout=10)
<Private_IP1> SSH: ANSIBLE_REMOTE_USER/remote_user/ansible_user/user/-u 
set: (-o)(User=centos)
<Private_IP1> SSH: ANSIBLE_TIMEOUT/timeout set: (-o)(ConnectTimeout=10)
<Private_IP1> SSH: PlayContext set ssh_common_args: ()
<Private_IP3> SSH: PlayContext set ssh_common_args: ()
<Private_IP3> SSH: PlayContext set ssh_extra_args: ()
<Private_IP1> SSH: PlayContext set ssh_extra_args: ()
<Private_IP1> SSH: found only ControlPersist; added ControlPath: 
(-o)(ControlPath=/home/ubuntu/.ansible/cp/ansible-ssh-%h-%p-%r)
<Private_IP3> SSH: found only ControlPersist; added ControlPath: 
(-o)(ControlPath=/home/ubuntu/.ansible/cp/ansible-ssh-%h-%p-%r)
<Private_IP1> SSH: EXEC ssh -C -vvv -o ControlMaster=auto -o 
ControlPersist=60s -o StrictHostKeyChecking=no -o 
'IdentityFile="/home/ubuntu/.ssh/MyKey.pem"' -o 
KbdInteractiveAuthentication=no -o 
PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey 
-o PasswordAuthentication=no -o User=centos -o ConnectTimeout=10 -o 
ControlPath=/home/ubuntu/.ansible/cp/ansible-ssh-%h-%p-%r Private_IP1 
'/bin/sh -c '"'"'( umask 77 && mkdir -p "` echo 
$HOME/.ansible/tmp/ansible-tmp-1474528970.94-42038548997439 `" && echo 
ansible-tmp-1474528970.94-42038548997439="` echo 
$HOME/.ansible/tmp/ansible-tmp-1474528970.94-42038548997439 `" ) && sleep 
0'"'"''
<Private_IP3> SSH: EXEC ssh -C -vvv -o ControlMaster=auto -o 
ControlPersist=60s -o StrictHostKeyChecking=no -o 
'IdentityFile="/home/ubuntu/.ssh/MyKey.pem"' -o 
KbdInteractiveAuthentication=no -o 
PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey 
-o PasswordAuthentication=no -o User=centos -o ConnectTimeout=10 -o 
ControlPath=/home/ubuntu/.ansible/cp/ansible-ssh-%h-%p-%r Private_IP3 
'/bin/sh -c '"'"'( umask 77 && mkdir -p "` echo 
$HOME/.ansible/tmp/ansible-tmp-1474528970.94-11790883317121 `" && echo 
ansible-tmp-1474528970.94-11790883317121="` echo 
$HOME/.ansible/tmp/ansible-tmp-1474528970.94-11790883317121 `" ) && sleep 
0'"'"''
<Private_IP2> ESTABLISH SSH CONNECTION FOR USER: centos
<Private_IP2> SSH: ansible.cfg set ssh_args: 
(-o)(ControlMaster=auto)(-o)(ControlPersist=60s)
<Private_IP2> SSH: ANSIBLE_HOST_KEY_CHECKING/host_key_checking disabled: 
(-o)(StrictHostKeyChecking=no)
<Private_IP2> SSH: 
ANSIBLE_PRIVATE_KEY_FILE/private_key_file/ansible_ssh_private_key_file set: 
(-o)(IdentityFile="/home/ubuntu/.ssh/MyKey.pem")
<Private_IP2> SSH: ansible_password/ansible_ssh_pass not set: 
(-o)(KbdInteractiveAuthentication=no)(-o)(PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey)(-o)(PasswordAuthentication=no)
<Private_IP2> SSH: ANSIBLE_REMOTE_USER/remote_user/ansible_user/user/-u 
set: (-o)(User=centos)
<Private_IP2> SSH: ANSIBLE_TIMEOUT/timeout set: (-o)(ConnectTimeout=10)
<Private_IP2> SSH: PlayContext set ssh_common_args: ()
<Private_IP2> SSH: PlayContext set ssh_extra_args: ()
<Private_IP2> SSH: found only ControlPersist; added ControlPath: 
(-o)(ControlPath=/home/ubuntu/.ansible/cp/ansible-ssh-%h-%p-%r)
<Private_IP2> SSH: EXEC ssh -C -vvv -o ControlMaster=auto -o 
ControlPersist=60s -o StrictHostKeyChecking=no -o 
'IdentityFile="/home/ubuntu/.ssh/MyKey.pem"' -o 
KbdInteractiveAuthentication=no -o 
PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey 
-o PasswordAuthentication=no -o User=centos -o ConnectTimeout=10 -o 
ControlPath=/home/ubuntu/.ansible/cp/ansible-ssh-%h-%p-%r Private_IP2 
'/bin/sh -c '"'"'( umask 77 && mkdir -p "` echo 
$HOME/.ansible/tmp/ansible-tmp-1474528970.94-115245318606115 `" && echo 
ansible-tmp-1474528970.94-115245318606115="` echo 
$HOME/.ansible/tmp/ansible-tmp-1474528970.94-115245318606115 `" ) && sleep 
0'"'"''
<Private_IP1> PUT /tmp/tmpIzmsRg TO 
/home/centos/.ansible/tmp/ansible-tmp-1474528970.94-42038548997439/ping
<Private_IP1> SSH: ansible.cfg set ssh_args: 
(-o)(ControlMaster=auto)(-o)(ControlPersist=60s)
<Private_IP1> SSH: ANSIBLE_HOST_KEY_CHECKING/host_key_checking disabled: 
(-o)(StrictHostKeyChecking=no)
<Private_IP1> SSH: 
ANSIBLE_PRIVATE_KEY_FILE/private_key_file/ansible_ssh_private_key_file set: 
(-o)(IdentityFile="/home/ubuntu/.ssh/MyKey.pem")
<Private_IP1> SSH: ansible_password/ansible_ssh_pass not set: 
(-o)(KbdInteractiveAuthentication=no)(-o)(PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey)(-o)(PasswordAuthentication=no)
<Private_IP1> SSH: ANSIBLE_REMOTE_USER/remote_user/ansible_user/user/-u 
set: (-o)(User=centos)
<Private_IP1> SSH: ANSIBLE_TIMEOUT/timeout set: (-o)(ConnectTimeout=10)
<Private_IP1> SSH: PlayContext set ssh_common_args: ()
<Private_IP1> SSH: PlayContext set sftp_extra_args: ()
<Private_IP1> SSH: found only ControlPersist; added ControlPath: 
(-o)(ControlPath=/home/ubuntu/.ansible/cp/ansible-ssh-%h-%p-%r)
<Private_IP1> SSH: EXEC sftp -b - -C -vvv -o ControlMaster=auto -o 
ControlPersist=60s -o StrictHostKeyChecking=no -o 
'IdentityFile="/home/ubuntu/.ssh/MyKey.pem"' -o 
KbdInteractiveAuthentication=no -o 
PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey 
-o PasswordAuthentication=no -o User=centos -o ConnectTimeout=10 -o 
ControlPath=/home/ubuntu/.ansible/cp/ansible-ssh-%h-%p-%r '[Private_IP1]'
<Private_IP2> PUT /tmp/tmppBD_UL TO 
/home/centos/.ansible/tmp/ansible-tmp-1474528970.94-115245318606115/ping
<Private_IP2> SSH: ansible.cfg set ssh_args: 
(-o)(ControlMaster=auto)(-o)(ControlPersist=60s)
<Private_IP2> SSH: ANSIBLE_HOST_KEY_CHECKING/host_key_checking disabled: 
(-o)(StrictHostKeyChecking=no)
<Private_IP2> SSH: 
ANSIBLE_PRIVATE_KEY_FILE/private_key_file/ansible_ssh_private_key_file set: 
(-o)(IdentityFile="/home/ubuntu/.ssh/MyKey.pem")
<Private_IP2> SSH: ansible_password/ansible_ssh_pass not set: 
(-o)(KbdInteractiveAuthentication=no)(-o)(PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey)(-o)(PasswordAuthentication=no)
<Private_IP2> SSH: ANSIBLE_REMOTE_USER/remote_user/ansible_user/user/-u 
set: (-o)(User=centos)
<Private_IP2> SSH: ANSIBLE_TIMEOUT/timeout set: (-o)(ConnectTimeout=10)
<Private_IP2> SSH: PlayContext set ssh_common_args: ()
<Private_IP2> SSH: PlayContext set sftp_extra_args: ()
<Private_IP2> SSH: found only ControlPersist; added ControlPath: 
(-o)(ControlPath=/home/ubuntu/.ansible/cp/ansible-ssh-%h-%p-%r)
<Private_IP2> SSH: EXEC sftp -b - -C -vvv -o ControlMaster=auto -o 
ControlPersist=60s -o StrictHostKeyChecking=no -o 
'IdentityFile="/home/ubuntu/.ssh/MyKey.pem"' -o 
KbdInteractiveAuthentication=no -o 
PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey 
-o PasswordAuthentication=no -o User=centos -o ConnectTimeout=10 -o 
ControlPath=/home/ubuntu/.ansible/cp/ansible-ssh-%h-%p-%r '[Private_IP2]'
<Private_IP1> ESTABLISH SSH CONNECTION FOR USER: centos
<Private_IP1> SSH: ansible.cfg set ssh_args: 
(-o)(ControlMaster=auto)(-o)(ControlPersist=60s)
<Private_IP1> SSH: ANSIBLE_HOST_KEY_CHECKING/host_key_checking disabled: 
(-o)(StrictHostKeyChecking=no)
<Private_IP1> SSH: 
ANSIBLE_PRIVATE_KEY_FILE/private_key_file/ansible_ssh_private_key_file set: 
(-o)(IdentityFile="/home/ubuntu/.ssh/MyKey.pem")
<Private_IP1> SSH: ansible_password/ansible_ssh_pass not set: 
(-o)(KbdInteractiveAuthentication=no)(-o)(PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey)(-o)(PasswordAuthentication=no)
<Private_IP1> SSH: ANSIBLE_REMOTE_USER/remote_user/ansible_user/user/-u 
set: (-o)(User=centos)
<Private_IP1> SSH: ANSIBLE_TIMEOUT/timeout set: (-o)(ConnectTimeout=10)
<Private_IP1> SSH: PlayContext set ssh_common_args: ()
<Private_IP1> SSH: PlayContext set ssh_extra_args: ()
<Private_IP1> SSH: found only ControlPersist; added ControlPath: 
(-o)(ControlPath=/home/ubuntu/.ansible/cp/ansible-ssh-%h-%p-%r)
<Private_IP1> SSH: EXEC ssh -C -vvv -o ControlMaster=auto -o 
ControlPersist=60s -o StrictHostKeyChecking=no -o 
'IdentityFile="/home/ubuntu/.ssh/MyKey.pem"' -o 
KbdInteractiveAuthentication=no -o 
PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey 
-o PasswordAuthentication=no -o User=centos -o ConnectTimeout=10 -o 
ControlPath=/home/ubuntu/.ansible/cp/ansible-ssh-%h-%p-%r -tt Private_IP1 
'/bin/sh -c '"'"'LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 
LC_MESSAGES=en_US.UTF-8 /usr/bin/python 
/home/centos/.ansible/tmp/ansible-tmp-1474528970.94-42038548997439/ping; rm 
-rf "/home/centos/.ansible/tmp/ansible-tmp-1474528970.94-42038548997439/" > 
/dev/null 2>&1 && sleep 0'"'"''
<Private_IP2> ESTABLISH SSH CONNECTION FOR USER: centos
<Private_IP2> SSH: ansible.cfg set ssh_args: 
(-o)(ControlMaster=auto)(-o)(ControlPersist=60s)
<Private_IP2> SSH: ANSIBLE_HOST_KEY_CHECKING/host_key_checking disabled: 
(-o)(StrictHostKeyChecking=no)
<Private_IP2> SSH: 
ANSIBLE_PRIVATE_KEY_FILE/private_key_file/ansible_ssh_private_key_file set: 
(-o)(IdentityFile="/home/ubuntu/.ssh/MyKey.pem")
<Private_IP2> SSH: ansible_password/ansible_ssh_pass not set: 
(-o)(KbdInteractiveAuthentication=no)(-o)(PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey)(-o)(PasswordAuthentication=no)
<Private_IP2> SSH: ANSIBLE_REMOTE_USER/remote_user/ansible_user/user/-u 
set: (-o)(User=centos)
<Private_IP2> SSH: ANSIBLE_TIMEOUT/timeout set: (-o)(ConnectTimeout=10)
<Private_IP2> SSH: PlayContext set ssh_common_args: ()
<Private_IP2> SSH: PlayContext set ssh_extra_args: ()
<Private_IP2> SSH: found only ControlPersist; added ControlPath: 
(-o)(ControlPath=/home/ubuntu/.ansible/cp/ansible-ssh-%h-%p-%r)
<Private_IP2> SSH: EXEC ssh -C -vvv -o ControlMaster=auto -o 
ControlPersist=60s -o StrictHostKeyChecking=no -o 
'IdentityFile="/home/ubuntu/.ssh/MyKey.pem"' -o 
KbdInteractiveAuthentication=no -o 
PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey 
-o PasswordAuthentication=no -o User=centos -o ConnectTimeout=10 -o 
ControlPath=/home/ubuntu/.ansible/cp/ansible-ssh-%h-%p-%r -tt Private_IP2 
'/bin/sh -c '"'"'LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 
LC_MESSAGES=en_US.UTF-8 /usr/bin/python 
/home/centos/.ansible/tmp/ansible-tmp-1474528970.94-115245318606115/ping; 
rm -rf 
"/home/centos/.ansible/tmp/ansible-tmp-1474528970.94-115245318606115/" > 
/dev/null 2>&1 && sleep 0'"'"''
Private_IP1 | SUCCESS => {
    "changed": false,
    "invocation": {
        "module_args": {
            "data": null
        },
        "module_name": "ping"
    },
    "ping": "pong"
}
Private_IP2 | SUCCESS => {
    "changed": false,
    "invocation": {
        "module_args": {
            "data": null
        },
        "module_name": "ping"
    },
    "ping": "pong"
}
<Private_IP3> PUT /tmp/tmpQBmgof TO 
/home/centos/.ansible/tmp/ansible-tmp-1474528970.94-11790883317121/ping
<Private_IP3> SSH: ansible.cfg set ssh_args: 
(-o)(ControlMaster=auto)(-o)(ControlPersist=60s)
<Private_IP3> SSH: ANSIBLE_HOST_KEY_CHECKING/host_key_checking disabled: 
(-o)(StrictHostKeyChecking=no)
<Private_IP3> SSH: 
ANSIBLE_PRIVATE_KEY_FILE/private_key_file/ansible_ssh_private_key_file set: 
(-o)(IdentityFile="/home/ubuntu/.ssh/MyKey.pem")
<Private_IP3> SSH: ansible_password/ansible_ssh_pass not set: 
(-o)(KbdInteractiveAuthentication=no)(-o)(PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey)(-o)(PasswordAuthentication=no)
<Private_IP3> SSH: ANSIBLE_REMOTE_USER/remote_user/ansible_user/user/-u 
set: (-o)(User=centos)
<Private_IP3> SSH: ANSIBLE_TIMEOUT/timeout set: (-o)(ConnectTimeout=10)
<Private_IP3> SSH: PlayContext set ssh_common_args: ()
<Private_IP3> SSH: PlayContext set sftp_extra_args: ()
<Private_IP3> SSH: found only ControlPersist; added ControlPath: 
(-o)(ControlPath=/home/ubuntu/.ansible/cp/ansible-ssh-%h-%p-%r)
<Private_IP3> SSH: EXEC sftp -b - -C -vvv -o ControlMaster=auto -o 
ControlPersist=60s -o StrictHostKeyChecking=no -o 
'IdentityFile="/home/ubuntu/.ssh/MyKey.pem"' -o 
KbdInteractiveAuthentication=no -o 
PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey 
-o PasswordAuthentication=no -o User=centos -o ConnectTimeout=10 -o 
ControlPath=/home/ubuntu/.ansible/cp/ansible-ssh-%h-%p-%r '[Private_IP3]'
<Private_IP3> ESTABLISH SSH CONNECTION FOR USER: centos
<Private_IP3> SSH: ansible.cfg set ssh_args: 
(-o)(ControlMaster=auto)(-o)(ControlPersist=60s)
<Private_IP3> SSH: ANSIBLE_HOST_KEY_CHECKING/host_key_checking disabled: 
(-o)(StrictHostKeyChecking=no)
<Private_IP3> SSH: 
ANSIBLE_PRIVATE_KEY_FILE/private_key_file/ansible_ssh_private_key_file set: 
(-o)(IdentityFile="/home/ubuntu/.ssh/MyKey.pem")
<Private_IP3> SSH: ansible_password/ansible_ssh_pass not set: 
(-o)(KbdInteractiveAuthentication=no)(-o)(PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey)(-o)(PasswordAuthentication=no)
<Private_IP3> SSH: ANSIBLE_REMOTE_USER/remote_user/ansible_user/user/-u 
set: (-o)(User=centos)
<Private_IP3> SSH: ANSIBLE_TIMEOUT/timeout set: (-o)(ConnectTimeout=10)
<Private_IP3> SSH: PlayContext set ssh_common_args: ()
<Private_IP3> SSH: PlayContext set ssh_extra_args: ()
<Private_IP3> SSH: found only ControlPersist; added ControlPath: 
(-o)(ControlPath=/home/ubuntu/.ansible/cp/ansible-ssh-%h-%p-%r)
<Private_IP3> SSH: EXEC ssh -C -vvv -o ControlMaster=auto -o 
ControlPersist=60s -o StrictHostKeyChecking=no -o 
'IdentityFile="/home/ubuntu/.ssh/MyKey.pem"' -o 
KbdInteractiveAuthentication=no -o 
PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey 
-o PasswordAuthentication=no -o User=centos -o ConnectTimeout=10 -o 
ControlPath=/home/ubuntu/.ansible/cp/ansible-ssh-%h-%p-%r -tt Private_IP3 
'/bin/sh -c '"'"'LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 
LC_MESSAGES=en_US.UTF-8 /usr/bin/python 
/home/centos/.ansible/tmp/ansible-tmp-1474528970.94-11790883317121/ping; rm 
-rf "/home/centos/.ansible/tmp/ansible-tmp-1474528970.94-11790883317121/" > 
/dev/null 2>&1 && sleep 0'"'"''
Private_IP3 | SUCCESS => {
    "changed": false,
    "invocation": {
        "module_args": {
            "data": null
        },
        "module_name": "ping"
    },
    "ping": "pong"
}


Let me know if you find something.

Thanks again,
Nirav



On Thursday, 22 September 2016 08:01:05 UTC+5:30, Alexander H. Laughlin 
wrote:
>
> Hi Nirav,
>
> I have a vague recollection of at some point having had a similar issue 
> with dynamic inventory that was solved by placing the availability zone in 
> the region field instead of the region. My memory is far from a reliable 
> source of information so if you decide to give that a shot don't be 
> surprised if it doesn't work. 
>
> With that said, I just re-read your original post and your statement that 
> this is only a problem on the first run stuck out because the script uses 
> caching to avoid hitting the AWS api all the time. The related docs are 
> here:
>
>
> http://docs.ansible.com/ansible/intro_dynamic_inventory.html#example-aws-ec2-external-inventory-script
>
> Though I'm sure you've read through those several times already, the bit I 
> believe affects your specific situation is right at the bottom of that 
> section:
>
> Note that the AWS inventory script will cache results to avoid repeated 
> API calls, and this cache setting is configurable in ec2.ini. To explicitly 
> clear the cache, you can run the ec2.py script with the --refresh-cache
>  parameter:
>
> # ./ec2.py --refresh-cache
>
>
> Have you tried adding the `--refresh-cache` option to your first run of 
> the ec2.py script? If that works, then bully! but if it doesn't, would you 
> mind posting the related results from the first run of your playbook with 
> the error and then also the related portions of the second one where it 
> works?
>
> Thanks,
> Alex
>
>
> On Wednesday, September 21, 2016 at 1:05:52 AM UTC-7, Nirav Radia wrote:
>>
>> Thanks @Alexander for your reply. Here is *ec2.ini*
>>
>>
>> # Ansible EC2 external inventory script settings
>> #
>>
>>
>> [ec2]
>>
>>
>> # to talk to a private eucalyptus instance uncomment these lines
>> # and edit edit eucalyptus_host to be the host name of your cloud 
>> controller
>> #eucalyptus = True
>> #eucalyptus_host = clc.cloud.domain.org
>>
>>
>> # AWS regions to make calls to. Set this to 'all' to make request to all 
>> regions
>> # in AWS and merge the results together. Alternatively, set this to a 
>> comma
>> # separated list of regions. E.g. 'us-east-1,us-west-1,us-west-2'
>> regions = all
>> regions_exclude = us-gov-west-1,cn-north-1
>>
>>
>> # When generating inventory, Ansible needs to know how to address a 
>> server.
>> # Each EC2 instance has a lot of variables associated with it. Here is 
>> the list:
>> #   
>> http://docs.pythonboto.org/en/latest/ref/ec2.html#module-boto.ec2.instance
>> # Below are 2 variables that are used as the address of a server:
>> #   - destination_variable
>> #   - vpc_destination_variable
>>
>>
>> # This is the normal destination variable to use. If you are running 
>> Ansible
>> # from outside EC2, then 'public_dns_name' makes the most sense. If you 
>> are
>> # running Ansible from within EC2, then perhaps you want to use the 
>> internal
>> # address, and should set this to 'private_dns_name'. The key of an EC2 
>> tag
>> # may optionally be used; however the boto instance variables hold 
>> precedence
>> # in the event of a collision.
>> destination_variable = public_dns_name
>>
>>
>> # For server inside a VPC, using DNS names may not make sense. When an 
>> instance
>> # has 'subnet_id' set, this variable is used. If the subnet is public, 
>> setting
>> # this to 'ip_address' will return the public IP address. For instances 
>> in a
>> # private subnet, this should be set to 'private_ip_address', and Ansible 
>> must
>> # be run from with EC2. The key of an EC2 tag may optionally be used; 
>> however
>> # the boto instance variables hold precedence in the event of a collision.
>> vpc_destination_variable = private_ip_address
>>
>>
>> # To tag instances on EC2 with the resource records that point to them 
>> from
>> # Route53, uncomment and set 'route53' to True.
>> route53 = False
>>
>>
>> # To exclude RDS instances from the inventory, uncomment and set to False.
>> rds = False
>>
>>
>> # Additionally, you can specify the list of zones to exclude looking up in
>> # 'route53_excluded_zones' as a comma-separated list.
>> # route53_excluded_zones = samplezone1.com, samplezone2.com
>>
>>
>> # By default, only EC2 instances in the 'running' state are returned. Set
>> # 'all_instances' to True to return all instances regardless of state.
>> all_instances = False
>>
>>
>> # By default, only RDS instances in the 'available' state are returned. 
>>  Set
>> # 'all_rds_instances' to True return all RDS instances regardless of 
>> state.
>> all_rds_instances = False
>>
>>
>> # API calls to EC2 are slow. For this reason, we cache the results of an 
>> API
>> # call. Set this to the path you want cache files to be written to. Two 
>> files
>> # will be written to this directory:
>> #   - ansible-ec2.cache
>> #   - ansible-ec2.index
>> cache_path = ~/.ansible/tmp
>>
>>
>> # The number of seconds a cache file is considered valid. After this many
>> # seconds, a new API call will be made, and the cache file will be 
>> updated.
>> # To disable the cache, set this value to 0
>> cache_max_age = 0
>>
>>
>> # Organize groups into a nested/hierarchy instead of a flat namespace.
>> nested_groups = False
>>
>>
>> # The EC2 inventory output can become very large. To manage its size,
>> # configure which groups should be created.
>> group_by_instance_id = False
>> group_by_region = True
>> group_by_availability_zone = False
>> group_by_ami_id = False
>> group_by_instance_type = False
>> group_by_key_pair = False
>> group_by_vpc_id = False
>> group_by_security_group = False
>> group_by_tag_keys = True
>> group_by_tag_none = False
>> group_by_route53_names = False
>> group_by_rds_engine = False
>> group_by_rds_parameter_group = False
>>
>>
>> # If you only want to include hosts that match a certain regular 
>> expression
>> # pattern_include = stage-*
>>
>>
>> # If you want to exclude any hosts that match a certain regular expression
>> pattern_exclude = datafactory*
>>
>>
>> # Instance filters can be used to control which instances are retrieved 
>> for
>> # inventory. For the full list of possible filters, please read the EC2 
>> API
>> # docs: 
>> http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeInstances.html#query-DescribeInstances-filters
>> # Filters are key/value pairs separated by '=', to list multiple filters 
>> use
>> # a list separated by commas. See examples below.
>>
>>
>> # Retrieve only instances with (key=value) env=stage tag
>> #instance_filters = tag:cmx_env=dev
>>
>>
>> # Retrieve only instances with role=webservers OR role=dbservers tag
>> # instance_filters = tag:role=webservers,tag:role=dbservers
>>
>>
>> # Retrieve only t1.micro instances OR instances with tag env=stage
>> # instance_filters = instance-type=t1.micro,tag:env=stage
>>
>>
>> # You can use wildcards in filter values also. Below will list instances 
>> which
>> # tag Name value matches webservers1*
>> # (ex. webservers15, webservers1a, webservers123 etc) 
>> # instance_filters = tag:Name=webservers1*
>>
>>
>> elasticache = False
>> expand_csv_tags = True
>>
>>
>> In my ec2.py file, I have modified the Regions section a little bit.
>>
>> ...
>> # Regions
>>         self.regions = []
>>         configRegions = os.getenv('AWS_DEFAULT_REGION', config.get('ec2', 
>> 'regions'))
>>         configRegions_exclude = config.get('ec2', 'regions_exclude')
>>         if (configRegions == 'all'):
>>             if self.eucalyptus_host:
>>                 
>> self.regions.append(boto.connect_euca(host=self.eucalyptus_host).
>> region.name, **self.credentials)
>>             else:
>>                 for regionInfo in ec2.regions():
>>                     if regionInfo.name not in configRegions_exclude:
>>                         self.regions.append(regionInfo.name)
>>         else:
>>             self.regions = configRegions.split(",")
>> ...
>>
>> I export environment variable AWS_DEFAULT_REGION just before the 
>> playbook call. When I run ec2.py, it returns me the host on which I am 
>> expecting to run the playbook.
>>
>> PS: On a different note, I have added "search_regex=OpenSSH" in wait_for 
>> before the playbook call, but it didn't help either.
>>
>> On Monday, 19 September 2016 22:48:10 UTC+5:30, Alexander H. Laughlin 
>> wrote:
>>>
>>> Would you mind to post your ec2.ini with the credentials taken out? 
>>> Also, what is the output of ec2.py when you run it alone?
>>>
>>> On Friday, September 16, 2016 at 12:15:39 AM UTC-7, Nirav Radia wrote:
>>>>
>>>> Hi all,
>>>>
>>>> I am pretty new to Ansible. I am using ec2.py to connect to my EC2 
>>>> instances and run my ansible scripts on them. Previously, it was working 
>>>> fine when I was using "all" regions. But now when I change the region to a 
>>>> specific one region (any of the available ones), in ec2.ini, it gives me 
>>>> below error for the first time and after second time onward, it works well.
>>>>
>>>> UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host 
>>>> via ssh.", "unreachable": true}
>>>>
>>>>
>>>> What I do is use ec2 module to create a instance and then wait_for port 
>>>> 22 on each host to be up. It wait successfully and moves forward but in 
>>>> the 
>>>> immediate next step when I try to connect to the instance, it gives above 
>>>> error first time. Here is my wait_for task: (ec2_server is the 
>>>> variable registered from ec2 module)
>>>>
>>>> name: wait for ssh server to be running
>>>>     wait_for: host={{ item.public_dns_name }} port=22
>>>>     with_items: "{{ec2_server.instances | default([])}}"
>>>>     when: item.state == 'running'
>>>>
>>>>
>>>> I ping in between to the instance using private ip and the ping 
>>>> succeeds. I suspect it is some timing issue or DNS name resolution issue 
>>>> with AWS. Has anyone faced such problem before?
>>>>
>>>> Any help would be appreciated. Thanks !
>>>>
>>>>

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to ansible-project+unsubscr...@googlegroups.com.
To post to this group, send email to ansible-project@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/85a8c289-23cc-4381-aa27-533e229ab812%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to