ansible: create a list from comma separated string

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

You Might Also Like