[英]How to get current role name in an ansible task
如何在 ansible 任务 yaml 文件中获取当前角色名称?
我想做这样的事情
---
# role/some-role-name/tasks/main.yml
- name: Create a directory which is called like the current role name
action: file
path=/tmp/"{{ role_name }}"
mode=0755
state=directory
此任务的结果应该是服务器上的目录/tmp/some-role-name
最简单的方法是使用以下
{{role_path|basename}}
从Ansible 2.2 开始:
{{role_name}}
从Ansible 2.1 开始:
{{role_path|basename}}
旧版本:
在当前版本的 Ansible 中没有办法做到这一点,这里有几个可能适合你的选项:
1) 使用 set_fact 将 role_name var 设置为您的 tasks/main.yml 文件中的第一个任务的角色名称
- set_fact: role_name=some-role-name
2)将参数传递给您的角色,该角色具有名称
- roles:
- role: some-role-name
role_name: some-role-name
看到这个帖子:
获取角色目录:
role_dir: "{{ lookup('pipe', 'pwd') | dirname }}"
获取角色名称:
role_name: "{{ lookup('pipe', 'pwd') | dirname | basename }}"
从 Ansible 2.8 开始, ansible_play_name
包含当前执行的播放名称。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.