要在Ansible中操作日期和时间,可以使用“set_fact”模块和Jinja2过滤器。
例如,要获取当前时间并将其格式化为特定的字符串,可以使用以下任务:
- set_fact:
current_time: "{{ ansible_date_time.iso8601_basic }}"
这将创建一个名为“current_time”的事实,其中包含当前时间的ISO 8601“basic”格式字符串。
要获取当前时间并将其转换为UNIX时间戳,请执行以下操作:
- set_fact:
current_time_unix: "{{ ansible_date_time.epoch }}"
同样,将创建一个名为“current_time_unix”的事实,其中包含UNIX时间戳。
还可以使用Jinja2过滤器来执行特定的日期和时间操作。例如,要在当前时间上添加1天,可以使用以下任务:
- set_fact:
tomorrow: "{{ (ansible_date_time.epoch + 86400)|timestamp_custom('%Y-%m-%d') }}"
这将创建一个名为“tomorrow”的事实,其中包含当前时间加上1天后的日期字符串,格式为“YYYY-MM-DD”。
更多的Jinja2过滤器可以在Ansible文档中找到。