Is there a way to properly sort this list of virtual machine names? Azure and Ansible reports them as follows:
dev-xxx-myvm-1
dev-xxx-myvm-10
dev-xxx-myvm-2
dev-xxx-myvm-3
dev-xxx-myvm-4
dev-xxx-myvm-5
dev-xxx-myvm-6
dev-xxx-myvm-7
dev-xxx-myvm-8
dev-xxx-myvm-9
RESULT:
dev-xxx-myvm-1
dev-xxx-myvm-2
dev-xxx-myvm-3
dev-xxx-myvm-4
dev-xxx-myvm-5
dev-xxx-myvm-6
dev-xxx-myvm-7
dev-xxx-myvm-8
dev-xxx-myvm-9
dev-xxx-myvm-10
[...]
the easiest solution is to use community.general.version_sort
.
- name: "Getting deployment state"
block:
- name: "Getting deployment state"
azure.azcollection.azure_rm_virtualmachine_info:
resource_group: myRG
register: existing_vms
- name: Saving all VM names in vm_names
ansible.builtin.set_fact:
vm_names: "{{ vm_names | default([]) + [item.name] }}"
loop: "{{ existing_vms.vms }}"
- name: Sorting the VM names in vm_names_sorted
ansible.builtin.set_fact:
vm_names_sorted: "{{ vm_names | community.general.version_sort }}"