date - 从 Jinja 表达式中减去日期
问题描述
我想从current_date_operation
Ansible 任务中删除 1 个月。这是我尝试过的:
vars:
# for example current
current_date_operation: "{{ ansible_date_time.date }}"
previous_date_operation : "{{ '%Y-%m-%d'|strftime(current_date_operation.epoch|int - 2592000) }}"
不幸的是,上面的代码给出了以下错误:
"msg": "任务包含一个带有未定义变量的选项。错误是:'ansible.utils.unsafe_proxy.AnsibleUnsafeText 对象'没有属性'epoch'
任何想法?
谢谢
解决方案
在您的vars
声明中,您首先date
从 object 获取密钥ansible_date_time
。
在下一行,您正在使用该 set 变量(它是一个字符串)并调用它epoch
不存在的键,因为它是父对象的属性(即ansible_date_time
)。由于您的 var 声明无法正确解析,因此 var 本身是未定义的。
以下剧本演示了您可以通过修复 vars 定义来获得预期的结果:
---
- hosts: localhost
vars:
current_date_operation: "{{ ansible_date_time.date }}"
previous_date_operation : "{{ '%Y-%m-%d' | strftime(ansible_date_time.epoch | int - 2592000) }}"
tasks:
- debug:
var: current_date_operation
- debug:
var: previous_date_operation
测试运行:
$ ansible-playbook playbook.yml
PLAY [localhost] **************************************************************************************************************************************************************************************************
TASK [Gathering Facts] ********************************************************************************************************************************************************************************************
ok: [localhost]
TASK [debug] ******************************************************************************************************************************************************************************************************
ok: [localhost] => {
"current_date_operation": "2020-01-14"
}
TASK [debug] ******************************************************************************************************************************************************************************************************
ok: [localhost] => {
"previous_date_operation": "2019-12-15"
}
PLAY RECAP ********************************************************************************************************************************************************************************************************
localhost : ok=3 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
推荐阅读
- javascript - 添加/删除字段 - 文件上传 javascript
- javascript - 我应该以多大的概率显示下雨?(黑暗天空API)
- compiler-errors - 即使我确实初始化了视频系统,它也没有初始化
- php - (size_t)(uint32_t)-(int32_t)(nTableMask)是什么意思
- sql-server - 在 SQL Server 中使用 EncryptByPassword 时保护密码
- c - 从C中的整数中提取一个字节
- android - 我的设备语言处于 ltr 更改中,我想将我的应用程序的语言更改为 rtl 以用于 android 中的阿拉伯语
- java - 即时从 .tgz 文件夹中读取文件
- jenkins - 如何从 JobDSL 调用 Jenkinsfile 管道步骤?
- angular - 角http响应中的大整数(长)被四舍五入