Подтвердить что ты не робот

Как получить текущее имя роли в незадаваемой задаче

Как получить текущее имя роли в файле 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 на сервере

4b9b3361

Ответ 1

Обновление: этот ответ устарел с текущей версией Ansible, вместо этого используйте:

{{role_path|basename}}

Предыдущий ответ:

В текущей версии Ansible нет способа сделать это, вот несколько вариантов, которые могут работать вместо вас:

1) Используйте set_fact для установки имени роли var для имени роли в качестве первой задачи в ваших задачах/файле main.yml

- set_fact: role_name=some-role-name

2) Передайте параметр своей роли с именем

- roles:
  - role: some-role-name
    role_name: some-role-name

Ответ 2

Самый простой способ - просто использовать следующие

{{role_path|basename}}

Ответ 3

Смотрите этот пост:

Чтобы получить каталог ролей:

role_dir: "{{ lookup('pipe', 'pwd') | dirname }}"

Чтобы получить имя роли:

role_name: "{{ lookup('pipe', 'pwd') | dirname | basename }}"