在我的角色中,我有default.yml
喜欢这个
site_root: "/var/www/html/sites"
project_root: "/var/www/html/sites/site1"
我可以像这样使用
project_root: "{{site_root }}/site1"
我试过了,但它不起作用
答案 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(也可能是早期版本)