如何在Ansible依赖角色中获取调用方角色名称
在Ansible依赖角色中获取父角色名称的解决方案
默认情况下,{{ role_name }}变量指向的是当前正在执行的角色,所以在bob角色里拿到的肯定是"bob"。要让bob获取到调用它的alice角色名称,得从alice的依赖配置里主动传参:
- 修改
roles/alice/meta/main.yml,给bob依赖添加变量传递:
dependencies: - role: bob vars: parent_role: "{{ role_name }}" # 这里的role_name属于alice角色上下文,值是"alice"
- 之后在bob角色的任务、模板里,直接用
{{ parent_role }}就能拿到"alice"这个值了。
原因很简单:当Ansible处理alice的依赖项时,role_name的作用域是alice角色,把它赋值给变量传给bob,bob就能直接用这个变量获取到父角色的名称。
内容的提问来源于stack exchange,提问作者Oceania Water
相关产品推荐
相关产品推荐

