在我的角色中,我有default.yml
这样的
site_root: "/var/www/html/sites"
project_root: "/var/www/html/sites/site1"
我可以这样使用吗
project_root: "{{site_root }}/site1"
我试过了,但它不起作用
在我的角色中,我有default.yml
这样的
site_root: "/var/www/html/sites"
project_root: "/var/www/html/sites/site1"
我可以这样使用吗
project_root: "{{site_root }}/site1"
我试过了,但它不起作用
这绝对应该有效。例如,以下 playbook 应该按照您的预期打印出解析的 project_root(运行 playbook 时使用-v标志查看 echo 命令的标准输出):
---
- hosts: localhost
vars:
- site_root: "/var/www/html/sites"
- project_root: "{{site_root}}/site1"
tasks:
- shell: echo {{project_root}}
这在用于角色时也有效。请注意,虽然为角色定义默认变量不是在 default.yml 中,而是在位于defaults目录下的 main.yml 文件中完成:
-
|- roles
|- <your_role_name>
|- defaults
|- main.yml
这适用于 ansible 版本 > 1.5(可能也适用于早期版本)