global variables - register - Cómo obtener el nombre del rol actual en una tarea ansible
condicionales ansible (3)
A partir de Ansible 2.2 :
{{role_name}}
A partir de Ansible 2.1 :
{{role_path|basename}}
Versiones anteriores:
No hay manera de hacer esto en la versión actual de Ansible, aquí hay un par de opciones que podrían funcionar para usted:
1) Utilice set_fact para establecer una var de nombre de rol al nombre de la función como la primera tarea en su archivo de tareas / main.yml
- set_fact: role_name=some-role-name
2) Pase un parámetro a su rol que tenga el nombre
- roles:
- role: some-role-name
role_name: some-role-name
¿Cómo puedo obtener el nombre de la función actual en un archivo yaml de tarea que se pueda realizar?
Me gustaría hacer algo como esto
---
# 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
El resultado de esta tarea debe ser un directorio /tmp/some-role-name
en el servidor
La forma más sencilla es simplemente usar lo siguiente
{{role_path|basename}}
Ver este post :
Para obtener el directorio de roles:
role_dir: "{{ lookup(''pipe'', ''pwd'') | dirname }}"
Para obtener el nombre del rol:
role_name: "{{ lookup(''pipe'', ''pwd'') | dirname | basename }}"