Ansible - обновить переменную в vars_file и вызвать ее снова в playbook не работает - PullRequest
0 голосов
/ 15 мая 2019

Пожалуйста, смотрите мою пьесу ниже. Я называю 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

1 Ответ

0 голосов
/ 15 мая 2019

Используйте include_vars и include_role во 2-й игре

- hosts: terminal02
  become: yes
  become_method: su
  gather_facts: no
  ignore_errors: yes
  tasks:
    - include_vars:
        file: ./vars_files/lab1.yml
    - include_vars:
        file: ./vars_files/global_vars.yml
    - include_role:
        name: backup_feature01
    - include_role:
        name: backup_feature02
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...