ansible: create a list from comma separated string
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_var2result:
[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]$