This is my Ansible playbook ...

roles/myrole ├── defaults │   └── main.yml ├── tasks │   ├── 
add_user_to_group.yml │   ├── create_user.yml │   └── main.yml ├── 
templates │   ├── add_user_to_group_data.j2 │   └── create_user_data.j2 └── 
vars     └── main.yml


*role/myrole/tasks/create_user.yml*

--- - name: Creating User ...   uri:   
  url: https://www.example.com/api/users     method: POST     body: "{{ 
create_user_data }}"     body_format: json     status_code: 200   
  return_content: yes     headers:       Accept: application/json     
  Content-Type: application/json       x-api-key: my-api-key-here   register: 
result 
- name: Saving User ID to a Variable   set_fact:     user_create_id:     
  result: "{{ result.json | community.general.json_query('id') }}" - name: 
Printing 
User ID of the User Created   ansible.builtin.debug:     msg: "{{ 
user_create_id }}"


tasks/add_user_to_group.yml

--- - name: Adding User to Group ...   uri:   
    url: https://www.example.com/api/usergroups/123456/members   
  method: POST     body: "{{ add_user_to_group_data }}"   
  body_format: json     status_code: 200     return_content: yes   
  headers:       Accept: application/json     
  Content-Type: application/json       x-api-key: my-api-key-here 
  register: result


*templates/create_user_data.j2*

{     "username":"john",     "email":"[email protected]",     
"firstname":"John",     "lastname":"Smith" }


*templates/add_user_to_group_data.j2*

{     "op": "add",     "type": "user",     "id": "{{ user_create_id }}" }


*vars/main.yml*

create_user_data: "{{ lookup('template', 'create_user_data.j2') }}" 
add_user_to_group_data: "{{ 
lookup('template', 'add_user_to_group_data.j2') }}"


Output of task create_user.yml printing the ID

ok: [localhost] => {     "msg": {         "result": 
"71b248b35ea374433153bbe4"     } }


I run the playbook basefile.yml which has the role myrole.

I'm trying to pass the ID from the result of the task create_user.yml as an 
input variable to the another task add_user_to_group.yml, especially in the 
template add_user_to_group_data.j2.

I unable to pass the variable {{ create_user_id }} to 
add_user_to_group_data.j2. If possible, we can create another task and call 
both the tasks passing some variables or to template file, but don't know 
how. 

How do I pass the json output field value from a task as an input to 
another task in the role?, any help is appreciated!.


Thanks in advance!

-- 
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 view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/7b0d8e2e-997b-48d9-a87f-aaa214671216n%40googlegroups.com.

Reply via email to