变量ansible_date_time.date给出了当前的日期和时间戳,但我希望将此日期增加'X'分钟/天.有没有内置的方法或逻辑来做到这一点?
该-操作似乎带有日期的操作数的工作,但似乎没有要递增日期的任何直接的方式.
我想在yml脚本本身完成此操作,而不是使用其他Python脚本,如可以在Ansible Playbook中操作日期
在Ansible 2.4中,您可以strftime通过使用纪元时间然后使用strftime过滤器转换回字符串来实现此目的.
例如,将一天视为86400秒,添加3天将是:
- debug:
msg: "{{ '%Y-%m-%d' | strftime( ( ansible_date_time.epoch | int ) + ( 86400 * 3 ) ) }}"
Run Code Online (Sandbox Code Playgroud)
对于分钟,乘数将为60秒,并且开始时的日期时间格式字符串应包括适当的时间粒度(例如%H,%M,%S,......).
有此滤镜的一些文件在这里.
可以使用命令模块(如以下代码片段所示)来增加当前日期。正如预期的那样,这对我有用。
- command: "date +'%d-%m-%Y' -d '+3 days'"
register: result
- debug: msg="{{result.stdout}}"
Run Code Online (Sandbox Code Playgroud)
这将以 dd-mm-yyyy 格式返回日期。例如,如果今天的日期是“03-07-2017”,它将将该日期增加 3 天(如上面示例片段中所示的命令中所述)并返回“06-07-2017”。
| 归档时间: |
|
| 查看次数: |
4311 次 |
| 最近记录: |