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.
