#ansible
#ansible
Вопрос:
Я использую Ansible для создания и удаления конфигураций запуска AWS. Я добавляю временную метку в имя. Моя проблема в том, что я могу создать LC, но когда дело доходит до удаления, временная метка изменяется, и затем программа удаления не может найти LC для ее удаления. вот как я использую переменную timestamp: я помещаю ее в файл с именем timestamp_lc.yml:
- 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 }}"
Задача удаления:
- name: Delete launch configuration
sudo: yes
command: >
aws autoscaling delete-launch-configuration
--region {{ asg.region }}
--launch-configuration-name {{ asg.launch_configuration.name }}_{{ now }}
Комментарии:
1. Что именно вы хотите, чтобы делало удаление? Удалить LC с самой высокой временной меткой? Удалить LC, который был создан последним? Удалить LC, который был создан последним с этого компьютера? Удалить LC, который был создан последним, из этой копии репозитория Ansible playbook?
2. удалите LC с указанным именем, в котором есть временная метка
3. Но какая временная метка?
4. та же временная метка, которая использовалась при создании LC. если я создам LC_201903132322, я хочу удалить LC_201903132322 (с той же временной меткой)
Ответ №1:
Это будет происходить при каждом выполнении ansible, поскольку вы получаете значение из команды date и устанавливаете факт этого, и это продолжает обновляться с каждой итерацией.
Один из способов, который я могу придумать, — сохранить значение в файле с расширением на целевом сервере или локальном сервере — я чувствую, что это было бы более надежно
---
- 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