我使用Ansible创建和删除AWS启动配置。我在名称中添加了时间戳。 我的问题是,我可以创建LC,但是当涉及删除时,时间戳会更改,然后删除的剧本找不到要删除的LC。 这就是我使用timestamp变量的方式: 我将其放在名为timestamp_lc.yml的文件中:
ArrayList<ArrayList<Integer>>
在剧本中我称之为:
- set_fact: now="{{ lookup('pipe', 'date +%Y%m%d%H%M%S') }}"
如何使变量- include: timestamp_lc.yml
持久化,以便在我每次调用变量now
时ansible都不会执行date命令?
这是创建任务:
now
删除任务:
- name: Create launch configuration
sudo: yes
command: >
aws autoscaling create-launch-configuration
--region {{ asg.region }}
--launch-configuration-name "{{ asg.launch_configuration.name }}_{{ now }}"
答案 0 :(得分:0)
当您从date命令获取值并设置事实时,ansible的每次执行都会发生这种情况,并且每次迭代都会不断更新。
我可以想到的一种方法是将值保存在目标服务器或本地服务器上的扩展名中的文件中-我认为这样做会更可靠
---
- name: test play
hosts: localhost
tasks:
- name: checking the file stats
stat:
path: stack_delete_info
register: delete_file_stat
- name: tt
debug:
var: delete_file_stat
- name: test
shell: echo "{{ lookup('pipe', 'date +%Y%m%d%H%M%S') }}" > stack_delete_info
when: delete_file_stat.stat.exists == false