1

在我的角色中,我有default.yml这样的

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

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

我可以这样使用吗

project_root: "{{site_root }}/site1"

我试过了,但它不起作用

4

1 回答 1

1

这绝对应该有效。例如,以下 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(可能也适用于早期版本)

于 2014-05-25T03:05:37.587 回答