cze*_*asz 26 global-variables ansible ansible-playbook
如何在ansible task 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
Run Code Online (Sandbox Code Playgroud)
此任务的结果应该是/tmp/some-role-name服务器上的目录
jar*_*arv 20
从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
Run Code Online (Sandbox Code Playgroud)
2)将参数传递给具有名称的角色
- roles:
- role: some-role-name
role_name: some-role-name
Run Code Online (Sandbox Code Playgroud)
看这篇文章:
要获取角色目录:
role_dir: "{{ lookup('pipe', 'pwd') | dirname }}"
Run Code Online (Sandbox Code Playgroud)
要获取角色名称:
role_name: "{{ lookup('pipe', 'pwd') | dirname | basename }}"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13361 次 |
| 最近记录: |