如何动态更改Ansible变量?

Kar*_*arl 6 ansible

我在vars中有这个:

var1: "test1"
var2: "test2"
var3: "{{var1}}"
Run Code Online (Sandbox Code Playgroud)

现在我想动态改变var3: "{{var2}}".

我可以分配var3: "test2".但我怎么分配var3: "{{var2}}"

tec*_*raf 8

我试图根据您的问题解释"动态更改Ansible变量"这一短语:

---
- hosts: localhost
  connection: local
  vars:
    var1: "test1"
    var2: "test2"
    var3: "{{var1}}"
  tasks:
    - debug: var=var3
    - set_fact:
        var3: "{{var2}}"
    - debug: var=var3
Run Code Online (Sandbox Code Playgroud)

关于评论:

我当时正在考虑set_fact将vars作为hostvars,而不是优先于playbook vars

通过set_fact模块分配的变量属于它们自己的变量类,其优先级较低,仅阻止变量,任务变量和额外变量.请参见变量优先级.