Пожалуйста, смотрите мою пьесу ниже. Я называю 2 казни на разных хостах в 1 playbook.
При первом выполнении изменяются некоторые переменные в файле vars, которые будут использоваться при следующем выполнении (создайте новую резервную копию папки и обновите ее имя до другого файла vars)
При втором выполнении попытайтесь использовать файл 2 vars для выполнения задач резервного копирования (с использованием ролей). Проблема, с которой я столкнулся, заключается в том, что значение файла vars было загружено со старым значением, а не с обновленным. Похоже, что все определенные файлы vars были загружены до выполнения задач на всех хостах, и обновление во время выполнения задачи не влияет.
Я могу разделить этот сборник на 2 сборника, и все они работают хорошо, как и ожидалось, но я пытаюсь объединить 1 сборник. Кто-нибудь может показать мне, как перезагрузить файл Vars в правильно выполняющихся задач / ролей? Я точно хочу, чтобы второе выполнение загрузило обновленный файл vars перед запуском ролей.
## backup playbook
---
- hosts: ftpserver01
gather_facts: no
ignore_errors: yes
vars_files:
- ./vars_files/lab1.yml
- ./vars_files/global_vars.yml
roles:
- create_define_backup_folder
# this role will create new backup folder and update its name in ./vars_files/global_vars.yml
- hosts: terminal02
become: yes
become_method: su
gather_facts: no
ignore_errors: yes
vars_files:
- ./vars_files/lab1.yml
- ./vars_files/global_vars.yml
roles:
- backup_feature01
- backup_feature02
Ожидается: использование обновленного global_vars.yml при выполнении задач на хостах. Terminal02
Фактический результат: все задачи на Terminal02 используют старое значение, а не обновленное значение global_vars.yml vars_files