BTW, you don't pre-create hosts when using cloud machines.

You should be using the rackspace dynamic inventory script.

You would still use add_host, but if you are trying to predefine the system
in your INI based inventory, that's not really the way it's meant to work.

The cloud is meant to be authorative.

Can you still use group variables?  Sure.  Should you it to define
hostnames prior to creating instances -- no.




On Sun, Nov 24, 2013 at 11:29 AM, Michael DeHaan
<[email protected]>wrote:

> 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/
>
>


-- 
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