变量ansible_date_time.date
给出了当前的日期和时间戳,但我希望通过' X'来增加这个日期。分钟/天。有没有内置的方法或逻辑来做到这一点?
-
运算符似乎与日期操作数一起使用,但似乎没有任何直接的方法来增加日期。
我想在yml脚本本身完成此操作,而不是使用Is it possible to manipulate the date in an Ansible Playbook
中所述的其他Python脚本答案 0 :(得分:5)
在Ansible 2.4中,您可以使用strftime
来完成此操作,方法是使用纪元时间,然后使用strftime
过滤器转换回字符串。
例如,将一天视为86400秒,添加3天将是:
- debug:
msg: "{{ '%Y-%m-%d' | strftime( ( ansible_date_time.epoch | int ) + ( 86400 * 3 ) ) }}"
对于分钟,乘数将为60秒,并且开头的日期时间格式字符串应包括适当的时间粒度(例如%H,%M,%S,......)。
此过滤器here上有一些文档。
答案 1 :(得分:0)
可以使用命令模块,如以下代码段所示,以增加当前日期。这对我来说符合预期。
- command: "date +'%d-%m-%Y' -d '+3 days'"
register: result
- debug: msg="{{result.stdout}}"
这将以dd-mm-yyyy格式返回日期。例如,如果今天的日期是“03-07-2017”,它会将日期增加3天(如上面示例代码段中显示的命令中所述)并返回“06-07-2017”。