Ansible 2.3.0:无法使用to_datetime()评估日期

时间:2018-06-07 19:34:39

标签: ansible jinja2

我正在尝试以字符串格式捕获日期,并将其解析为Ansible 2.3.0 中的实际日期。

以下是我的剧本片段:

vars:
  date_of_birth: "{{ bdate_YYYYMMDD }}|to_datetime('%Y%d%m')"

tasks:
- name: 2) Print date
  debug: msg="Birth date as discovered is {{ date_of_birth }}"

命令:

ansible-playbook ansible_playbook.yml -i inventory -k -v --extra-vars "bdate_YYYYMMDD=20181203"

这是输出:

TASK [2) Print date] *************************************************************************************************************************************************************************************************
ok: [****hostname****] => {
    "changed": false,
    "msg": "Birth date as discovered is 20181203|to_datetime('%Y%d%m')"
}

想要确定为什么日期不会被评估并存储在变量date_of_birth中。

1 个答案:

答案 0 :(得分:0)

您应该在Jinja2表达式中使用过滤器(即,使用{{打开并使用}}关闭的部分):

date_of_birth: "{{ bdate_YYYYMMDD | to_datetime('%Y%d%m') }}"

否则,它们将被解释为与示例中的字符串一样。