お久しぶりです! @ktoshi です。
非常に遅くなりましたが、あけましておめでとうございます
本年の抱負としては「記事をもっと書く!(月3回)」と考えていましたが、
早速1月から躓きかけているのでこれから頑張っていこうと思います。
すっかり寒くなりましたね、という前に大寒が過ぎてしまった今日この頃。
今年は久しぶりに我が家の周辺でも雪が積もり、冬らしい冬ですね。
さて、今回は前回記事にした Ansible + Hashicorp Vault の後日談をお話ししたいと思います。
※ 前回の記事: Ansible + Hashicorp Vault でセキュアな値を安全に使ってみるぜ
概要
前回記事の「Ansible で使ってみよう」の項目で分かるように、
トークンやVaultサーバのURLがめちゃくちゃべた書きな状態でした。
正直これじゃバージョン管理できないや、という状態でした。
そこで、バージョン管理ができるようにより設定をスマートにしよう!というのが今回です。
前回記事での課題
前回書いた記事から下記を課題と設定し、本記事で解消したいと思います。
* トークンがべた書き
* Vault サーバのIPアドレスがべた書き
課題解決
今回の課題についてはいずれも Ansible の設定ファイルに追加することで解決できました。
早速設定ファイルをお見せします。
[lookup_hashi_vault]
token_file = /etc/ansible/.vault-token
url = http://192.168.100.50:8200
項目名 | 説明 | デフォルト |
---|---|---|
token_file | トークンを記載したファイルパス | .vault-token |
url | Vault サーバのURL及びポート | http://127.0.0.1:8200 |
トークンファイルにはトークンだけ記載しておけばOKです。
s.bEQ3adfSwxusg2kdAMQ4Jel5n
こうすることでインベントリファイルに直接記載せずとも、
各種値を Ansible で利用することができます。
また、インベントリファイルで指定しなくて済むので記載もシンプルになります。
---
test.example.com:
hosts:
192.168.50.1:
ansible_user: worker
ansible_ssh_pass: "{{ lookup('community.general.hashi_vault', 'secret/password)['passwd'] }}"
まとめ
機密情報をセキュアに使う、という話は前回記事に記載しておりますので、
今回の記事では割愛しておりますが、これでより効率的に利用できるようになったかと思います。
ただ、元々の課題解決方法自体はいくつもあり、今回のやり方はセキュアではないと思っております。
というのも、Vault には各ロールが設定できるので今回サーバでがっつり設定すると
誰が使っても同じロールを使うことになります。
より厳格化するのであれば、Ansibleのplaybookを実行する際に環境変数で情報を渡してやる方が
良いのかなと思っております。
しかし、弊社の運用方針と効率性を考えた結果、今回の手法を採用しております。
ぜひ、皆様も Ansible の Playbook をバー所管理されている方はノウハウを授けてください!!
それでは皆様、よい Infrastructure as Code ライフを!!
本年もよろしくお願いいたします。