Hi Alex,

Replacing availability zone in ec2.ini also gave me the same error:

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


Unsetting the environment variable and setting region in ec2.ini does not 
help and gives the same Unreachable error. :(

Thanks,
Nirav

On Thursday, 22 September 2016 15:51:27 UTC+5:30, Alexander H. Laughlin 
wrote:
>
> Hi Nirav,
>
> Sorry about the lack of clarity in my suggestion. I was referring to your 
> ec2.ini, specifically:
>
>
> # 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
>
> would become:
>
> # 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 = us-west-2a
> regions_exclude = us-gov-west-1,cn-north-1
>
>
> If you were using that particular availability zone. I'd be surprised if 
> that worked, however, what happens when you unset the environment variable 
> and set the region in the ec2.ini file? 
>
> Alex
>
>
> On Thursday, September 22, 2016 at 12:51:19 AM UTC-7, Nirav Radia wrote:
>>
>> 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/ca0bfd07-15b1-4ca6-9392-08ee2614cdeb%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to