如何在ansible中的时间变量内添加变量?
How to add variable inside a time variable in ansible?
我有一个 URI 模块调用 api 开始时间和结束时间
- name: silence alert of a specific hostname
uri:
url: localhost:8080/alert-manager/api/v2/silences
method: POST
HEADER_Content-Type: "application/json"
return_content: yes
body:
matchers:
- name : "hostname"
value : "{{ remotehost_output.stdout}}"
isRegex: false
startsAt: "{{ '%Y-%m-%dT%H:%M:%S' | strftime( ( ansible_date_time.epoch | int ) ) }}"
endsAt : "{{ '%Y-%m-%dT%H:%M:%S' | strftime( ( ansible_date_time.epoch | int ) + ( 3600 * 2 ) ) }}"
createdBy : "punith bp"
comment: "via ansible"
body_format: json
status_code: 200
我需要从一个变量发送几个小时的数字,即在这一行中
endsAt : "{{ '%Y-%m-%dT%H:%M:%S' | strftime( ( ansible_date_time.epoch | int ) + ( 3600 * 2 ) ) }}"
我需要发送一个包含它的变量,而不是“2”。
提前致谢,我是ansible的新手。
试试这个
- hosts: localhost
tasks:
- debug:
msg: "{{ '%Y-%m-%dT%H:%M:%S' | strftime( ( ansible_date_time.epoch | int ) + ( 3600 * hours | int) ) }}"
vars:
hours: 2
我得到这个日志
PLAY [localhost] *******************************************************************************
TASK [Gathering Facts] *************************************************************************
ok: [localhost]
TASK [debug] ***********************************************************************************
ok: [localhost] => {
"msg": "2022-04-27T16:59:02"
}
PLAY RECAP *************************************************************************************
localhost : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
我有一个 URI 模块调用 api 开始时间和结束时间
- name: silence alert of a specific hostname
uri:
url: localhost:8080/alert-manager/api/v2/silences
method: POST
HEADER_Content-Type: "application/json"
return_content: yes
body:
matchers:
- name : "hostname"
value : "{{ remotehost_output.stdout}}"
isRegex: false
startsAt: "{{ '%Y-%m-%dT%H:%M:%S' | strftime( ( ansible_date_time.epoch | int ) ) }}"
endsAt : "{{ '%Y-%m-%dT%H:%M:%S' | strftime( ( ansible_date_time.epoch | int ) + ( 3600 * 2 ) ) }}"
createdBy : "punith bp"
comment: "via ansible"
body_format: json
status_code: 200
我需要从一个变量发送几个小时的数字,即在这一行中
endsAt : "{{ '%Y-%m-%dT%H:%M:%S' | strftime( ( ansible_date_time.epoch | int ) + ( 3600 * 2 ) ) }}"
我需要发送一个包含它的变量,而不是“2”。 提前致谢,我是ansible的新手。
试试这个
- hosts: localhost
tasks:
- debug:
msg: "{{ '%Y-%m-%dT%H:%M:%S' | strftime( ( ansible_date_time.epoch | int ) + ( 3600 * hours | int) ) }}"
vars:
hours: 2
我得到这个日志
PLAY [localhost] *******************************************************************************
TASK [Gathering Facts] *************************************************************************
ok: [localhost]
TASK [debug] ***********************************************************************************
ok: [localhost] => {
"msg": "2022-04-27T16:59:02"
}
PLAY RECAP *************************************************************************************
localhost : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0