是否有一种紧凑的方法来定义因变量?
问题描述:
我有一些变数我想设置(出于干燥的原因)在一个完整的剧本中。这些变量中的每一个都依赖于较早的变量。下面是一个简单的例子,有两个变量,但在我的真实情况有更多:是否有一种紧凑的方法来定义因变量?
- set_fact:
current_user: "{{ lookup('env', 'USER') }}"
- set_fact:
repository_root: /home/{{ current_user }}/code/devops
有了更多的变数,这是一个有点冗长,重复set_fact:
线每个变量。不幸的是,如果我把它们合并成以下:
- set_fact:
current_user: "{{ lookup('env', 'USER') }}"
repository_root: /home/{{ current_user }}/code/devops
current_user
不当时repository_root
的表达式求值定义,它失败。
是否有表达许多变量更简洁的方式依赖于剧本中以前的变量?
答
你确定你在这种情况下,需要set_fact
?
可以在清单或播放定义这个变量瓦尔:
current_user: "{{ lookup('env', 'USER') }}"
repository_root: /home/{{ current_user }}/code/devops
他们将进行评估(和链接,如果需要的话)时才使用。
我没有想过把他们打的变量,这可能是一个好主意。 – BlackVegetable
这的确适用于我的使用模式。我想知道它们是否按照与定义不同的顺序使用,如果它会根据需要进行评估或者只是窒息。好吧。这属于另一个问题。谢谢。 – BlackVegetable