On 06. sep. 2017 18:14, Dayton Jones wrote:
ansible-playbook 2.3.0.0
python version = 2.7.12

I'm trying to set some facts based on the user-data given for an EC2
instance:

- name: Initialization
   hosts: localhost
   connection: local
   tasks:
     - name: Get userdata
       uri:
         url: http://169.254.169.254/latest/user-data
         return_content: yes
       register: metadata
     - name: Set userdata fact
       set_fact:
         userdata: "{{ metadata.content | from_yaml }}"
     - debug:
         var: userdata

which returns:

TASK [debug]
***************************************************************************************************************************************************************
ok: [localhost] => {
     "changed": false,
     "userdata": "nx-app=web nx-name=my.hostname.net nx-state=standby
nx-system=prod nx-version=01"
}

This show that userdata is a string.


But I'm having trouble pulling the userdata.<value> out:

     - name: Set facts needed from userdata
       set_fact:
         system: "{{ userdata.nx-system }}"
         version: "{{ userdata.nx-version }}"
         app: "{{ userdata.nx-app }}"
         state: "{{ userdata.nx-state }}"
         name: "{{ userdata.nx-name }}"

Since userdata is a string it's not possible to use array syntax.


What am I missing?  I've tried several things but haven't hit on the
solution so I'm open to any suggestions.

What is the output of
- debug: var=metadata.content


--
Kai Stian Olstad

--
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/916d2442-cdb4-174b-053b-b56c92546df7%40olstad.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to