如何在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