I noticed many users are using different and wrong methods to convert a list
data to string
format. You can use existing filters and functions in Ansible to achieve the same.
Here is our list
vars:
my_list:
- "apple"
- "mango"
- "orange"
Now we need to convert this to a single string with comma separated (or separated by any other character). I found users are using loops and adding to a string value but there is a simple way to do this as shown below.
- name: Concatenate a list to string
set_fact:
my_string: "{{ my_list | join(',') }}"
Find the full playbook below.
---
- name: List to String Conversion
hosts: localhost
vars:
my_list:
- "apple"
- "mango"
- "orange"
tasks:
- name: Print the List
debug:
msg: "{{ my_list }}"
- name: Concatenate a list to string
set_fact:
my_string: "{{ my_list | join(',') }}"
- name: Print the String
debug:
msg: "{{ my_string }}"
Sample execution
$ ansible-playbook site.yml
PLAY [List to String Conversion] *********************************************************************************
TASK [Gathering Facts] *******************************************************************************************
ok: [localhost]
TASK [Print the List] ********************************************************************************************
ok: [localhost] => {
"msg": [
"apple",
"mango",
"orange"
]
}
TASK [Concatenate a list to string] ******************************************************************************
ok: [localhost]
TASK [Print the String] ******************************************************************************************
ok: [localhost] => {
"msg": "apple,mango,orange"
}
PLAY RECAP *******************************************************************************************************
localhost : ok=4 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
Check Ansible Real Life GitHub repository for all use cases.
Want to learn Ansible from scratch ? Check you YouTube Playlist.