我有OS X“ El capitan” 10.11.6,并且我正在使用Ansible 2.1.1.0在远程Linux服务器Ubuntu 16.04 Xenial上运行一些维护任务。我正在尝试整理以下文件夹列表,以便在需要时可以删除旧文件夹:
/releases/0.0.0
/releases/0.0.1
/releases/0.0.10
/releases/1.0.0
/releases/1.0.5
/releases/2.0.0
我一直在尝试使用Ansible中的模块find,但是它返回的列表未排序。有没有简单的方法可以通过Ansible实现这一目标?
最佳答案
您可以使用sort
过滤器对项目进行排序:
- hosts: localhost
gather_facts: no
tasks:
- find: path="/tmp" patterns="test*"
register: files
- debug: msg="{{ files.files | sort(attribute='ctime') | map(attribute='path') | list }}"
只需更改排序属性即可。
但是请注意,字符串排序不是数字,因此
/releases/1.0.5
将排在/releases/1.0.10
之后。