Ansible循环项如何可能被循环任务外部的变量引用?
我有许多任务都需要引用同一个对象,其中对象名由循环项修改。Ansible循环项如何可能被循环任务外部的变量引用?,ansible,Ansible,我有许多任务都需要引用同一个对象,其中对象名由循环项修改。 对象名称很复杂,在未来的脚本版本中可能会发生更改,我不希望每次都要更改名称。 因此,我希望在顶级变量中定义对象名。 但这意味着顶级var定义需要引用循环本身之外的循环“项”。 我原以为它会抛出一个错误,说“项”没有定义,但我很高兴发现它没有定义。 我猜Ansible一定在评估每个任务中的顶级变量,此时“项”将是有效的。 有人能给我指一下解释这一可变评估过程的文档吗? 示例脚本: - hosts: all vars: Obje
对象名称很复杂,在未来的脚本版本中可能会发生更改,我不希望每次都要更改名称。
因此,我希望在顶级变量中定义对象名。
但这意味着顶级var定义需要引用循环本身之外的循环“项”。
我原以为它会抛出一个错误,说“项”没有定义,但我很高兴发现它没有定义。
我猜Ansible一定在评估每个任务中的顶级变量,此时“项”将是有效的。
有人能给我指一下解释这一可变评估过程的文档吗?
示例脚本:
- hosts: all
vars:
ObjectName: "ObjectInMode-{{item}}-WithComplexName"
tasks:
- name: Perform Function 1
Function1:
ObjectRef: "{{ObjectName}}"
with_items:
- Mode1
- Mode2
- name: Perform Function 2
Function2:
ObjectRef: "{{ObjectName}}"
with_items:
- Mode1
- Mode2
看
通常,Ansible会在最后一秒对playbook内容中的任何变量进行求值,这意味着如果您定义了一个数据结构,那么该数据结构本身就可以定义其中的变量值,并且一切都会像您所期望的那样“正常工作”。这也意味着变量字符串可以在这些字符串中包含其他变量