Velvet Star Monitor

Standout celebrity highlights with iconic style.

general

ansible: create a list from comma separated string

Writer Andrew Mclaughlin

I want to create a list from comma separated string to pass to loop in ansible, sometime variable can have only one value also

var1=test1,test2 and it can be var1=test1 also

here is my code

- name: Separate facts set_fact: groups="{{ var1.split(',') }}"
- name: delete gcp_compute_instance_group: name: "{{ item }}" zone: xxx project: xxx auth_kind: serviceaccount service_account_file: xxx state: absent loop: "{{ groups }}" 

this doesn't work, how can i achieve my requirement

1 Answer

your filter is correct, you do get a list variable. please see below PB and output:

---
- hosts: localhost gather_facts: false vars: var1: test1,test2 var2: test3 tasks: - name: Create the list set_fact: list_var1: "{{ var1.split(',') }}" list_var2: "{{ var2.split(',') }}" - debug: var: list_var1 - debug: var: list_var2

result:

[is@orangehat-29 temp]$ ansible-playbook test.yml [WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match 'all'
PLAY [localhost] ***********************************************************************************************************************************************************************************************************************
TASK [Create the list] *****************************************************************************************************************************************************************************************************************
ok: [localhost]
TASK [debug] ***************************************************************************************************************************************************************************************************************************
ok: [localhost] => { "list_var1": [ "test1", "test2" ]
}
TASK [debug] ***************************************************************************************************************************************************************************************************************************
ok: [localhost] => { "list_var2": [ "test3" ]
}
PLAY RECAP *****************************************************************************************************************************************************************************************************************************
localhost : ok=3 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
[is@orangehat-29 temp]$ 

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy