I'm having difficulty between drawing the lines between "command echo" and
your cloud integration.

The rax module has a parameter "instance-name" and will create that
instance with that name if it does not exist.

http://ansibleworks.com/docs/modules.html#rax

You can also use the "exact_count" parameter to request an exact number of
instances starting with a given name, and it will slay extra instances if
you have too many.



On Sun, Nov 24, 2013 at 11:16 AM, Lars Vonk <[email protected]> wrote:

> Thanks for replying and clarifying.
>
> So then my question is this: Both application A and B require a local
> connection and variables to communicate with rackspace (like hostname for
> instance). Do you have some pointers how I should setup my inventory file
> and were to put my variables? The playbook for both apps is basically:
>
> - if not exists create instance in rackspace with this {{ hostname }}
> - add host to group using add_host command
> - include application specific playbook
>
> Like the example below one of the apps fails because it (rightfully)
> resolves to the wrong hostname.
>
> Thanks again.
>
> Lars
>
>
> On Sunday, November 24, 2013 5:02:02 PM UTC+1, Michael DeHaan wrote:
>
>> The host is a member of two groups.
>>
>> In this case, rightfully, variables are pulled from both.
>>
>> This is by design -- you may select hosts based on purpose (such as
>> webservers), while assigning other variables based on geography.
>>
>>
>>
>>
>> On Sun, Nov 24, 2013 at 10:42 AM, Lars Vonk <[email protected]> wrote:
>>
>>> Hi,
>>>
>>> We are creating playbooks for our servers that include creating
>>> instances with rackspace. We have problems with setting up the different
>>> inventory files with the appropriate vars. To illustrate the problem I
>>> created a small test case:
>>>
>>> DIR
>>> ./a.yml
>>> ./b.yml
>>> ./test
>>>
>>> a.yml contains:
>>> ---
>>> - hosts: a
>>>   connection: local
>>>   remote_user: root
>>>   tasks:
>>>     - name: Foo
>>>       command: echo {{ hostname }}
>>>
>>> b.yml contains:
>>> ---
>>> - hosts: b
>>>   connection: local
>>>   remote_user: root
>>>   tasks:
>>>     - name: Foo
>>>       command: echo {{ hostname }}
>>>
>>> test contains:
>>> localhost ansible_python_interpreter=/usr/local/bin/python
>>>
>>> [a]
>>> localhost
>>>
>>> [b]
>>> localhost
>>>
>>> [test-a:children]
>>> a
>>>
>>> [test-a:vars]
>>> hostname=a.com<http://www.google.com/url?q=http%3A%2F%2Fa.com&sa=D&sntz=1&usg=AFQjCNEYnDzIlRjJbXDcx3Cax_hkvntAFQ>
>>>
>>> [test-b:children]
>>> b
>>>
>>> [test-b:vars]
>>> hostname=b.com<http://www.google.com/url?q=http%3A%2F%2Fb.com&sa=D&sntz=1&usg=AFQjCNFq7tUq50NgFVyTsk2WMeiRf6l6WQ>
>>>
>>> When I run ansible-playbook a.yml -i test -vvvv it echos *b.com
>>> <http://www.google.com/url?q=http%3A%2F%2Fb.com&sa=D&sntz=1&usg=AFQjCNFq7tUq50NgFVyTsk2WMeiRf6l6WQ>*
>>>  while
>>> I expect *a.com
>>> <http://www.google.com/url?q=http%3A%2F%2Fa.com&sa=D&sntz=1&usg=AFQjCNEYnDzIlRjJbXDcx3Cax_hkvntAFQ>*.
>>> I expected this because the hosts in a.yml is a and a is a child of test-a
>>> that defines the hostname as *a.com
>>> <http://www.google.com/url?q=http%3A%2F%2Fa.com&sa=D&sntz=1&usg=AFQjCNEYnDzIlRjJbXDcx3Cax_hkvntAFQ>*.
>>> For some reason I don't understand the hostname variable resolves to *b.com
>>> <http://www.google.com/url?q=http%3A%2F%2Fb.com&sa=D&sntz=1&usg=AFQjCNFq7tUq50NgFVyTsk2WMeiRf6l6WQ>*
>>> .
>>> What we are trying to achieve with this setup is to create a rackspace
>>> instance using a local connection (a.yml) and that add a host to the test-a
>>> which is then used later in the playbook as host. This fails because it
>>> resolves to the wrong hostname.
>>>
>>> What am I doing wrong here? Is there a better setup to achieve this?
>>>
>>> Thanks in advance,
>>> Lars
>>>
>>>  --
>>> 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].
>>>
>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>
>>
>>
>>
>> --
>> Michael DeHaan <[email protected]>
>>
>> CTO, AnsibleWorks, Inc.
>> http://www.ansibleworks.com/<http://www.google.com/url?q=http%3A%2F%2Fwww.ansibleworks.com%2F&sa=D&sntz=1&usg=AFQjCNEn7XMcb-1wMxliSyOhlnyBBlDaQg>
>>
>>   --
> 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].
> For more options, visit https://groups.google.com/groups/opt_out.
>



-- 
Michael DeHaan <[email protected]>
CTO, AnsibleWorks, Inc.
http://www.ansibleworks.com/

-- 
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].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to