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 [email protected].
To post to this group, send email to [email protected].
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