Ansible Tower(AWX)のインベントリ変数にvaultを使う方法


Ansible TowerやAWXのインベントリ変数(group_vars/host_vars)にvaultで暗号化したものを使う時にハマったのでやり方を備忘録として残しておきます。

環境

項目 バージョン
RHEL 7.5
Ansible 2.6.3
Ansible Tower 3.2.5

現状、Ansible 2.6以上ではないとAnsible Tower(AWX)でインベントリ変数に格納したvaultは複合できないようです。

検証方法

ここでは debugモジュール を使って message 変数を出力してみます。
message にはvaultで暗号化された Hello World!! を指定します。

検証

vaultで暗号化

ansible-vault で暗号化します。

Playbookの作成

Ansible Towerの設定

ここではインベントリに直接埋め込んでみます。
Ansible Tower(AWX)の変数にvaultを使う時は以下のようにします。

注意点: ミソは一行ずつ改行を入れるところです。改行がないと動作しません。

テンプレート

テンプレートの 認証情報 にはvaultで作成したパスワードを指定してください。

動作確認

きちんと複合されていることが確認できました 🙂

ちなみにvaultで生成した暗号化文字列に改行を入れなかった場合は以下のようにエラーが発生します。

参考

https://github.com/ansible/awx/issues/223#issuecomment-388457636
https://github.com/ansible/awx/issues/1992#issuecomment-398424839

Leave a Reply

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください