Ansible 固定日期和时间
我利用此功能获取日期/时间,而不在我的剧本中运行事实,以节省运行时间: 亚马尔Ansible 固定日期和时间,ansible,Ansible,我利用此功能获取日期/时间,而不在我的剧本中运行事实,以节省运行时间: 亚马尔 date: "{{ lookup('pipe','date \"+%Y-%m-%d-%H%M\"') }}" environment: execution_date: "{{ lookup('pipe','date \"+%Y%m%d-%H%M\"') }}" 我注意到,如果我在剧本开头引用这一点,它只引用一次,例如2019-04-10-1300。如果我在剧本末尾(5分钟后)引用它,则时间不同,例如2019-
date: "{{ lookup('pipe','date \"+%Y-%m-%d-%H%M\"') }}"
environment:
execution_date: "{{ lookup('pipe','date \"+%Y%m%d-%H%M\"') }}"
我注意到,如果我在剧本开头引用这一点,它只引用一次,例如2019-04-10-1300。如果我在剧本末尾(5分钟后)引用它,则时间不同,例如2019-04-10-1305
我想使用这个变量来引用一个目录名,因此我希望它在脚本生命周期的任何时候都是常量
./outputs/"{{ date }}"/errors.txt
阿卡
如何使该值为常数
编辑
这个任务给了我一个错误
- name: TESTS
environment:
execution_date: "{{ lookup('pipe','date \"+%Y%m%d-%H%M\"') }}"
tags:
- test
下面的组变量不能通过“environment.execution\u date”或“execution\u date”调用
亚马尔
date: "{{ lookup('pipe','date \"+%Y-%m-%d-%H%M\"') }}"
environment:
execution_date: "{{ lookup('pipe','date \"+%Y%m%d-%H%M\"') }}"
听起来你想保存/回忆一个特定的日期,就像使用变量一样 可能有几种方法可以做到这一点,我的第一个想法是可以将其导出为环境变量,然后调用该值:
environment:
execution_date: "{{ lookup('pipe','date \"+%Y-%m-%d-%H%M\"') }}"
然后,您可以像这样使用它:
./outputs/"{{ execution_date }}"/errors.txt
请在此处查看相关文档:易变变量不存储值,每次引用时都会重新计算它们。因此,
date
变量总是对当前时间进行新的查找
要存储一个值,并在以后调用它,您可以设置一个事实,例如
- hosts: localhost
connection: local
tasks:
- set_fact:
execution_time: "{{ lookup('pipe','date \"+%Y-%m-%d-%H%M\"') }}"
- debug:
msg: "{{ execution_time }}"
- pause:
minutes: 2
- hosts: localhost
connection: local
tasks:
- debug:
msg: "{{ execution_time }}"
请参见编辑注释。我不能让它正常工作。凯尔,谢谢你的回复。如果主机相同,此解决方案可用于在一个播放中设置日期,并在另一个播放中引用该日期。我如何在一个播放中设置日期(比如说“localhost”),在播放两个具有不同主机的播放中设置和引用?如果我在第一场比赛中设置了日期/时间,在第二场比赛中也设置了日期/时间,那么日期/时间可能不同。这将破坏一致性。