Ansibleタスクの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
サーバー上
Ansible 2.2以降:
{{role_name}}
Ansible 2.1以降:
{{role_path|basename}}
古いバージョン:
現在のバージョンのAnsibleではこれを行う方法はありません。代わりに機能する可能性のあるいくつかのオプションを次に示します。
1)tasks_main.ymlファイルの最初のタスクとして、set_factを使用してrole_name varをロールの名前に設定します
- set_fact: role_name=some-role-name
2)名前を持つパラメータをロールに渡します
- roles:
- role: some-role-name
role_name: some-role-name
最も簡単な方法は、以下を使用することです
{{role_path|basename}}
この投稿 を参照してください:
ロールディレクトリを取得するには:
role_dir: "{{ lookup('pipe', 'pwd') | dirname }}"
ロール名を取得するには:
role_name: "{{ lookup('pipe', 'pwd') | dirname | basename }}"