Ansible 2.6: Is there a way to reference the playbook's name in a role task?
It was added in 2.8:
ansible_play_name
The name of the currently executed play. Added in2.8
.
No, the special variables for Ansible are documented here, and you can see that there is no variable to return the playbook name.
As mentioned in the comments, however, you can always do this:
---
- name: "{{ task_name }}"
hosts: localhost
vars:
task_name: "Tasks for service XYZ"
tasks:
- debug:
msg: "{{ task_name }}"
From your circumstances, it looks like you only want this for audit/notification purposes? In that case (and assuming unixy clients), using
lookup('file', '/proc/self/cmdline') | regex_replace('\u0000',' ')
will give you the entire command line that ansible-playbook
was called with, parameters and all, which would include the playbook name. Depending on your circumstances, that might be a useful enough tradeoff.