Variables Ansible-更新vars_文件中的变量,并在playbook中再次调用它;行不通

Variables Ansible-更新vars_文件中的变量,并在playbook中再次调用它;行不通,variables,ansible,Variables,Ansible,请看下面我的剧本。我在一个剧本中调用不同主机上的2次执行 第一次执行会更改vars文件中的一些变量,这些变量将在下一次执行中使用(创建新的备份文件夹并将其名称更新为另一个vars文件) 第二次执行尝试使用2个vars文件执行备份任务(使用角色)。我在这里遇到的问题是,vars文件值是用旧值加载的,而不是更新的。似乎所有定义的vars文件都是在所有主机上执行任务之前加载的,并且在运行任务期间更新不会产生任何影响 我可以把这个剧本分为两个剧本,所有的剧本都像预期的那样好,但我正在尝试合并一个剧本。有

请看下面我的剧本。我在一个剧本中调用不同主机上的2次执行

第一次执行会更改vars文件中的一些变量,这些变量将在下一次执行中使用(创建新的备份文件夹并将其名称更新为另一个vars文件)

第二次执行尝试使用2个vars文件执行备份任务(使用角色)。我在这里遇到的问题是,vars文件值是用旧值加载的,而不是更新的。似乎所有定义的vars文件都是在所有主机上执行任务之前加载的,并且在运行任务期间更新不会产生任何影响

我可以把这个剧本分为两个剧本,所有的剧本都像预期的那样好,但我正在尝试合并一个剧本。有人能告诉我如何在正确执行任务/角色时重新加载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
预期:在主机terminal02上运行任务时使用更新的全局_vars.yml

实际结果:terminal02上的所有任务都使用旧值而不是全局变量的更新值。yml vars_文件

在第二次播放中使用和

- 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