首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Ansible中为当前时间戳添加时间?

如何在Ansible中为当前时间戳添加时间?
EN

Stack Overflow用户
提问于 2021-11-23 13:22:47
回答 3查看 2.1K关注 0票数 0

我试图在Ansible中自动化一些任务,虽然我已经完成了其他工作,但我需要有一个start_time和end_time变量来为当前的时间戳增加时间,因为ServiceNow系统在创建更改请求时不接受当前的时间戳。

例如,我有一个变量start_time作为"{{ lookup('pipe', date +\"%Y-%m-%d %r\"') }}",但是我需要以当前的时间+5分钟为例。在end_date上也是一样,但是大约是+15分钟。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-11-23 14:41:37

如果要使用lookup_plugins和pipe,只需使用date +"%Y-%m-%d %r" -d "5 mins"添加5分钟即可。

多亏了

尽管如此,我们还是建议使用facts中的ansible_date_time这样的变量。

代码语言:javascript
复制
date_time:
  date: '2021-11-23'
  day: '23'
  epoch: '1637678908'
  hour: '15'
  iso8601: '2021-11-23T14:48:28Z'
  iso8601_basic: 20211123T154828773386
  iso8601_basic_short: 20211123T154828
  iso8601_micro: '2021-11-23T14:48:28.773386Z'
  minute: '48'
  month: '11'
  second: '28'
  time: '15:48:28'
  tz: CET
  tz_offset: '+0100'
  weekday: Tuesday
  weekday_number: '2'
  weeknumber: '47'
  year: '2021'

您可以在那里使用epochminute或适合您的用例的内容。

票数 1
EN

Stack Overflow用户

发布于 2021-11-23 15:18:12

有点像?

代码语言:javascript
复制
{{ ansible_date_time.date }}
{{ ansible_date_time.hour|int +1|int }}
{{ ansible_date_time.minute|int +15|int }}
票数 2
EN

Stack Overflow用户

发布于 2021-11-23 18:10:13

您可以使用strftime过滤器来格式化时间,使用Ansible的构建--实际上是收集当前时间,并使用一点算法来添加偏移量。

代码语言:javascript
复制
- hosts: localhost
  tasks:
    - debug:
        msg:
          - "{{ '%Y-%m-%d %r' | strftime(ansible_facts.date_time.epoch | int + 300 ) }}"
          - "{{ '%Y-%m-%d %r' | strftime(ansible_facts.date_time.epoch | int + 900 ) }}"
代码语言:javascript
复制
TASK [debug] *******************************************************************
ok: [localhost] => {
    "msg": [
        "2021-11-23 01:10:45 PM",
        "2021-11-23 01:20:45 PM"
    ]
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70081685

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档