ansible:在模板字符串中检测到递归循环

Mic*_*ael 4 ansible ansible-playbook

在剧本中,我以这种方式使用角色:

- { role: project, project_name: "{{project_name}}" }
Run Code Online (Sandbox Code Playgroud)

在"项目"角色中,我实际上有一个依赖项,想要使用"project"角色的project_name变量:

---
dependencies:
  - { 
      role: users, 
      users: [
        { 
            name: "{{project_name}}", 
            home: "/home/{{project_name}}",
            shell: "/bin/bash",
            group: "{{project_name}}",
        }
     ]
   }
Run Code Online (Sandbox Code Playgroud)

但是我收到一个错误:

recursive loop detected in template string: {{project_name}}
Run Code Online (Sandbox Code Playgroud)

更改"project_name"变量的名称是唯一的解决方案吗?

谢谢

Ash*_*son 9

外部变量会自动继承到角色中,因此project_name: "{{ project_name }}"不是必需的.将您的角色声明更改为:

- project
Run Code Online (Sandbox Code Playgroud)

...并且{{ project_name }}变量将在您的角色中可用.