Okay, I placed both inventory scripts in ~/ansible/inventory and it works. 
The command opens an ssh connection to each host on both clouds.

But, again, spying the process tree list while ansible is running, I've 
noticed something odd. (BTW, all runs are done after clearing the caches 
for both inventory scripts every time)

If I do -i ~/ansible/inventory/ec2.py, I see ansible running ec2.py --list 
for a while, then it initiates the ssh connections.

If I do -i ~/ansible/inventory/digital_ocean.py, I see ansible running 
digital_ocean.py 
--list for a while, then digital_ocean.py --host once for each host I have 
at DO, and then it launches the ssh connections.

But if I do -i ~/ansible/inventory, I see this: It runs one of the scripts 
with --list; it runs the other script with --list; then it runs 
digital-ocean.py 
--host *for all hosts in both lists* (EC2 and DO)! This is A) unnecessary, 
B) slow, and C) hammering the DO API servers for no good reason.

Is it a bug, or am I still doing something wrong?


On Wednesday, December 10, 2014 2:55:04 PM UTC-8, Matt Martz wrote:
>
> Ansible supports inventory directories.  If you place both ec2.py and 
> digital_ocean.py in a directory called "inventory", you could then use:
>
> ansible -i ~/ansible/inventory -u my-special-user -f 20 -s \* -m shell -a 
> 'ps'
>
> You could then also call each inventory script separately if you needed.
>
>
> On Wed, Dec 10, 2014 at 4:48 PM, Florin Andrei <[email protected] 
> <javascript:>> wrote:
>
>> New to Ansible, just testing it. For now, I'm using dynamic inventory 
>> scrips, and I'm trying to run simple commands on all hosts, via ansible.
>>
>> I've setup ec2.py and digital_ocean.py in ~/ansible/, and both scripts 
>> work just fine. Provisioned with the correct credentials, if I run either 
>> script manually, I get the correct list of assets from those two cloud 
>> providers, respectively.
>>
>> If I run Ansible with just one script (either ec2.py or digital_ocean.py) 
>> then that also works well:
>>
>> ansible -i ~/ansible/ec2.py -u my-special-user -f 20 -s \* -m shell -a 
>> 'ps'
>>
>> ansible -i ~/ansible/digital_ocean.py -u my-special-user -f 20 -s \* -m 
>> shell -a 'ps'
>>
>> But if I try to do just -i ~/ansible/ (hoping to use both inventory 
>> scripts in a concatenated list) then it doesn't work. Spying the process 
>> list with pstree, I've noticed that ansible runs digital_ocean.py --host 
>> with all the hosts from the EC2 list. That can't be right. No wonder it 
>> doesn't work then.
>>
>> What is the correct way to use several dynamic inventory scripts at once 
>> for something simple like -m shell -a 'ps'?
>>
>> P.S.:
>>
>> If I run ./digital_ocean.py --list manually, it just throws a JSON with 
>> my hosts. But if I do ./ec2.py --list manually, then it generates first 
>> the "_meta": tag, and then throws a list similar to the DO script. Not 
>> sure if this is relevant to the main issue, I just thought I should mention 
>> it.
>>  
>> -- 
>> 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] <javascript:>.
>> To post to this group, send email to [email protected] 
>> <javascript:>.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/ansible-project/f1717237-2b88-4b50-b42d-b19f0ae8964a%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/ansible-project/f1717237-2b88-4b50-b42d-b19f0ae8964a%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>
>
> -- 
> Matt Martz
> @sivel
> sivel.net
>  

-- 
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/b7212e8a-d587-40a1-b1ed-fe819e01c5a3%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to