In Ansible, a list refers to an ordered collection of items, much like an array or a list in other programming languages. Lists are used to keep related elements grouped together for easier management and operation.
You can define a list in Ansible as follows:
fruits:
- Apple
- Banana
- Orange
In this example, “fruits” is a list that contains three items: “Apple”, “Banana”, and “Orange”. You can use lists in Ansible for various purposes, such as looping over a set of values in a task using the ‘loop’ keyword.
Boost Your Website Speed!
If you want your website to run as fast as ours, consider trying Cloudways. Their powerful cloud infrastructure and optimized stack deliver exceptional performance. Free migration!List iteration: Use the with_items keyword to iterate over a list in a playbook, for example:
- name: List iteration
debug:
var: item
with_items:
- item1
- item2
- item3
This will output the values of the item variable, which will be each element in the list one by one.
List concatenation: Use the + operator to concatenate two or more lists, for example:
- name: List concatenation
debug:
var: my_list1 + my_list2
vars:
my_list1:
- item1
- item2
my_list2:
- item3
- item4
This will output the combined list [item1, item2, item3, item4].
List indexing: Use the square brackets [] to access a specific element in a list by its index, for example:
- name: List indexing
debug:
var: my_list[1]
vars:
my_list:
- item1
- item2
- item3
This will output the value of the element at index 1 in the list, which is item2.
List length: Use the length filter to get the number of elements in a list, for example:
- name: List length
debug:
var: my_list | length
vars:
my_list:
- item1
- item2
- item3
This will output the length of the list, which is 3.
List appending: Use the append method to add an element to the end of a list, for example:
- name: List appending
debug:
var: my_list
vars:
my_list:
- item1
- item2
tasks:
- name: Append item3 to my_list
set_fact:
my_list: "{{ my_list + ['item3'] }}"
This will output the updated list after appending item3 to the end of it, which is [item1, item2, item3].
List merging: Use the combine filter to merge two or more lists into a single list, for example:
- name: List merging
debug:
var: my_list1 | combine(my_list2)
vars:
my_list1:
- item1
- item2
my_list2:
- item3
- item4
This will output the merged list [item1, item2, item3, item4].
List removing: Use the difference filter to remove elements from a list, for example:
- name: List removing
debug:
var: my_list1 | difference(my_list2)
vars:
my_list1:
- item1
- item2
- item3
my_list2:
- item2
- item3
This will output the list after removing elements that are also present in my_list2, which is [item1].
List checking: Use the in keyword to check if an element is present in a list, for example:
- name: List checking if item2 is in my_list
debug:
var: "'item2' in my_list"
vars:
my_list:
- item1
- item2
- item3
This will output True as item2 is present in my_list.
List filtering: Use the select filter to filter a list based on a condition, for example:
- name: List filtering
debug:
var: my_list | select("equalto", "item2")
vars:
my_list:
- item1
- item2
- item3
This will output the elements in my_list that are equal to item2, which is [item2].
List sorting: Use the sort filter to sort a list in ascending or descending order, for example:
- name: List sorting
debug:
var: my_list | sort(reverse=true)
vars:
my_list:
- item3
- item1
- item2
This will output the sorted list in descending order, which is [item3, item2, item1].
Daniel Lim
Monday 11th of December 2023
cool. I really like these examples.