前回、Ansible AWX・Towerで発行しているコマンドの取得方法をご紹介しました。
今回はそこから、実行したジョブの追加変数情報格納パスを取得する方法を解説します。
プレイブックの構文
プレイブックに下記のように記述することで、追加変数情報格納パスを取得することが可能です。
取得した結果は、変数「extra_vars_path」に格納されます。
---
- hosts: all
gather_facts: False
tasks:
- name: "追加変数情報格納パス"
vars:
extra_vars_path: "{{ (lookup('file', '/proc/self/cmdline') | regex_replace('\u0000',' ')).split()|select('match','^[@]')|list|first|regex_replace('@','') }}"
debug:
msg: "追加変数情報格納パス:{{ extra_vars_path }}"
リンク
実行結果
Ansible AWXで実行した結果になります。
Using /etc/ansible/ansible.cfg as config file
SSH password:
PLAY [all] *********************************************************************
TASK [追加変数情報格納パス] **************************************************************
ok: [192.168.56.105] => {
"msg": "追加変数情報格納パス:/tmp/awx_720_3g37qgvh/env/extravars"
}
PLAY RECAP *********************************************************************
192.168.56.105 : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
Ansibleでは、追加変数を取得するためのマジック変数がありません。
本記事を参考に追加変数を取得することで、障害発生時の解析など様々な場面で役に立つかと思います。
リンク
コメント