我正在构建一个 Ansible 剧本,我想在其中检索软件的最新版本。为此,我在 Ansible 中使用了“排序”过滤器。然而,当使用版本号时,这变得有点困难,版本号更复杂并且不是真正的数字,例如0.2.1, 0.10.1。
这就是我现在正在做的事情:
- name: Set version to compare
set_fact:
versions:
- "0.1.0"
- "0.1.5"
- "0.11.11"
- "0.9.11"
- "0.9.3"
- "0.10.2"
- "0.6.1"
- "0.6.0"
- "0.11.0"
- "0.6.5"
- name: Sorted list
debug:
msg: "{{ versions | sort }}"
- name: Show the latest element
debug:
msg: "{{ versions | sort | last }}"
Run Code Online (Sandbox Code Playgroud)
只要版本号保持在数字 10 以下(例如 0.9.3,但不是 0.10.2),上面的剧本就可以工作。
显示问题:
TASK [Set version to compare] ***************************************************************************************************************
ok: [localhost]
TASK [Sorted …Run Code Online (Sandbox Code Playgroud)