when register playbook examples conditions condicionales global-variables ansible ansible-playbook

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 }}"