sorting - Jinja2中的版本号排序列表
问题描述
我正在尝试使用 Ansible 从其网站获取软件产品的最高版本号。我可以毫无问题地获得包含版本号的列表,如下所示:
set_fact:
app_version: "{{ lookup('url', 'https://example.com/product/versions.json')
| regex_findall('"version":"(.+?)"', '\\1')
| unique }}"
问题是要获得最高版本号,因为sort()
过滤器比较纯字符串,而不是像人类那样。
例子:
---
- hosts: localhost
gather_facts: no
vars:
list: [ '6.13.15', '6.5.8', '6.14.5' ]
tasks:
- name: "sort version numbers"
set_fact:
app_version: "{{ list | sort }}"
- name: debug
debug:
var: app_version
这导致输出:
ok: [localhost] => {
"app_version": [
"6.13.15",
"6.14.5",
"6.5.8"
]
}
这显然是错误的,6.5
应该在之前6.13
,而不是之后。有什么方法可以像人类一样使用 Jinja2 过滤器对列表进行排序,或者至少可以正确地对版本号进行排序?
解决方案
推荐阅读
- mongodb - 创建包含 find 子句的 MongoDb 视图
- kubernetes - 如何在 kubernetes go client pod 规范中提供资源限制?
- sql - 每月 Oracle Sql 组平均值
- web-applications - 试用完成后如何创建支付页面 - 开发者模式
- python - 如何使用 python 2.7 从 url 下载所有图像 - 问题
- python - 如何在 python 中下载登录表单后面网页的大媒体链接?
- spring-mvc - restTemplate.postforEntity(url, request,ResponseObj.class) 的测试请求正文
- python - map() 输出将字符串添加到字符串数组 Python
- c# - .net core 2.1中单例注入方法的区别
- vue.js - 默认情况下未选中 Vue.js 单选按钮