Ansible - 通过' X'增加日期天/分钟

时间:2017-06-30 07:41:10

标签: datetime ansible

变量ansible_date_time.date给出了当前的日期和时间戳,但我希望通过' X'来增加这个日期。分钟/天。有没有内置的方法或逻辑来做到这一点?

-运算符似乎与日期操作数一起使用,但似乎没有任何直接的方法来增加日期。

我想在yml脚本本身完成此操作,而不是使用Is it possible to manipulate the date in an Ansible Playbook

中所述的其他Python脚本

2 个答案:

答案 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”。