我可以在ansible中的另一个变量中使用变量吗?

时间:2014-05-24 04:54:38

标签: ubuntu ansible ansible-playbook

在我的角色中,我有default.yml喜欢这个

site_root: "/var/www/html/sites"

project_root: "/var/www/html/sites/site1"

我可以像这样使用

project_root: "{{site_root }}/site1"

我试过了,但它不起作用

1 个答案:

答案 0 :(得分:1)

这绝对有效。例如,以下playbook应该按照您的预期打印出已解析的project_root(运行playbook时使用 -v 标志来查看echo命令的stdout):

---
- hosts: localhost
  vars:
    - site_root: "/var/www/html/sites"
    - project_root: "{{site_root}}/site1"
  tasks:
    - shell: echo {{project_root}}

在角色中使用时也适用。请注意,虽然为角色定义了默认变量,但不是在default.yml中,而是在位于默认值目录下的main.yml文件中:

- 
|- roles
   |- <your_role_name>
      |- defaults
         |- main.yml

这适用于ansible版本&gt; 1.5(也可能是早期版本)