Matt,

Great, meta data is now correctly put into the api call..

However we still are having some problems. Sometimes the script goes faster 
then the meta data becomes available:

fatal: [web6] => error while evaluating conditional: 
rax_facts.ansible_facts.rax_metadata['rackconnect_automation_status']|default('')
 == 'DEPLOYED'

We checked and the automation status metadata is not yet present and as such 
the check fails.

Jurgen



On 04 Jun 2014, at 18:15, Matt Martz <[email protected]> wrote:

> PR #7122 has just been merged.  It also includes a new module "rax_meta" for 
> more easily allowing metadata updates on cloud servers.
> 
> Both "rax" and "rax_meta" use the improved metadata normalization code.
> 
> 
> On Tue, Jun 3, 2014 at 6:26 PM, Matt Martz <[email protected]> wrote:
> That issue is fixed in another pull request which is waiting to be merged:
> 
> https://github.com/ansible/ansible/pull/7122
> 
> -- 
> Matt Martz
> [email protected]
> 
> On June 3, 2014 at 6:22:59 PM, Jürgen Coetsiers 
> ([email protected]) wrote:
> 
>> Matt,
>> 
>> tx this was of great help!
>> 
>> We saw that wen adding the metadata for the LB Pools
>> 
>> meta:
>>             RackConnectLBPool: marlintest
>> 
>> that strangely the name that is captured by the api is:
>> 
>> u'marlintest' and as such the rackconnect script fails.
>> 
>> I tried putting " around it but no luck
>> 
>> Any ideas?
>> 
>> Op dinsdag 3 juni 2014 18:52:07 UTC+2 schreef Matt Martz:
>> I have some sample plays that show how to wait for RackConnect automation 
>> and the Managed Cloud automation to complete before moving on.  I haven't 
>> gotten around to adding it to the Rackspace guide, but hope to do so soon.
>> 
>> You can see those sample playbooks:
>> 
>> https://github.com/sivel/ansible-samples/tree/master/rackconnect
>> 
>> In your specific case, the following lines are probably what you are in need 
>> of 
>> https://github.com/sivel/ansible-samples/blob/master/rackconnect/rackconnect-push-mode.yml#L49-L58
>> 
>> On another note, you cannot call a module from within another module.  So 
>> your attempts at running set_fact inside of a local_action for rax_facts 
>> just can't work.
>> 
>> 
>> On Tue, Jun 3, 2014 at 11:29 AM, Jürgen Coetsiers 
>> <[email protected]> wrote:
>> Hi All,
>> 
>> My Rackspace cloud servers are under managed services and under RackConnect 
>> services. This means than when they are built, first 2 other scripts need to 
>> run before I can actually use the server to provision it.
>> 
>> The peculiar thing is that during the RackConnect script the public ip of 
>> the server changes, so it in validates the data you "register" using the rax 
>> module when adding a server.
>> 
>> The fact is that we do not know precise when these build scripts have 
>> finished running. The only way to figure it out is either through the 
>> presence of a file in the servers /tmp directory or by querying the fact 
>> data received through the rackspace api. It should have a NVP set in the 
>> metatags field.
>> 
>> So basically what I want to do is:
>> 
>> - create cloud server
>> - poll factsdata until certain values are set
>> - provision the server
>> 
>> The documentation of the rax_facts module does not provide a lot of info, 
>> event when copying the sample is fails due to "{{ rax_accessipv4 }}" not 
>> existing...
>> 
>> So who can help me out here or me into the right direction?
>> 
>> My current playbook:
>> - name: Wait for Rackspace Managed Service provisioning completion
>>   hosts: raxtest
>>   gather_facts: False
>>   remote_user: root
>>   tasks:
>>   - name: Get meta data and check for completion of setup
>>     local_action:
>>         module: rax_facts
>>         api_key: <hidden>
>>         username: <hidden>
>>         register: result
>>         name: "{{ inventory_hostname }}"
>>         set_fact: managed_done = 
>> "{{rax_metadata.rax_service_level_automation}}"
>>         set_fact: ansible_ssh_host = "{{ rax_accessipv4 }}"
>>         until: managed_done = "Complete"
>>         retries: 20
>>         delay: 30
>> 
>> 
>> 
>> --
>> 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/f64bc273-bb58-41d0-9879-91a4d2ecf3a3%40googlegroups.com.
>> For more options, visit https://groups.google.com/d/optout.
>> 
>> 
>> 
>> --
>> Matt Martz
>> [email protected]
>> http://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/fd15d63d-ba20-4db3-b48b-ae36ce01d4e9%40googlegroups.com.
>> For more options, visit https://groups.google.com/d/optout.
> 
> 
> 
> -- 
> Matt Martz
> [email protected]
> http://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/2358464B-8C96-4930-8F80-39E340FCF6EA%40tcsdigitalworld.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to