ansible-vaultで暗号化変数を作成する

概要

yamlに埋め込むパスワードをansible-vaultを使用して暗号化する

encrypt_string を使用して、yaml に埋め込む暗号化変数を作成

※iniファイルに対してはできないです

環境

対応

vault実行用のパスワードファイルを作成する

本来は暗号化実行時にvault実行用のパスワードを求められるが、それを避けるために

vault実行用パスワードファイル「vault_password.txt」を作成した

パスワードは「password」

9/10 追記:ファイルは .vault_password.txt のように隠しファイルにしたほうが良い

変数にセットするパスワードを暗号化する

以下の白抜き箇所「Ansi7.2.0」を暗号化する

ansible-vault encrypt_string --vault-password-file ~/vault_password.txt 'Ansi7.2.0' --name 'ansible_become_password'

ansible-vault encrypt_string –vault-password-file vaul実行用パスワードファイル ‘変数にセットするパスワード’ –name ‘変数’

ansible_become_password変数にパスワードAnsi7.2.0をセットするため、上記のような記述にした

実行結果

実行結果は上の通り 実行すると毎回結果が変わる

ansible_become_password: !vault |
$ANSIBLE_VAULT;1.1;AES256
64646464313237666334356130343530333063623839353465666135636265336566623363633835
6330373764323063366463313462333332656636613162620a663866326138336665643332383761
66396430613262306533666234343032633566383836306135346264643164623866636165323966
6533326335663833640a653435646663326639333031303332393337346362393064346534646135
3939

実行結果のうち、最後の数字までコピーし、インベントリymlファイルに貼り付ける

9/10 追記:パスワードが履歴に残ってしまうため、以下のようにパスワードを標準入力するほうが良い

ansible-vault encrypt_string --vault-password-file ~/.vault_password.txt --stdin-name 'ansible_become_password'

標準入力時にAnsi7.2.0とパスワードを入力し、ctrl+dを2回実行する。この際、Enterは入力しない

ansible.cfgファイルでvault実行用のパスワードファイルを指定する

.vault_password_file = vault実行用パスワードファイル

パスワードファイルを指定しないとansible実行時に以下のようなエラーが出た

Attempting to decrypt but no vault secrets found

ansible playbook実行結果

9/10 追記:ansible valutはymlファイル内で記入位置が少しでも正しい位置からずれていると、エラーがでる模様。

正しい位置に貼り付けないと・・

[WARNING]: Skipping ‘ansible_become_password’ as this is not a valid group definition

実行時に警告が出てうまく動作しない

一文字分ずれていると・・

実行時に警告が出てうまく動作しない

[WARNING]: * Failed to parse /home/test_user/inventory.yml with auto plugin: no root ‘plugin’ key
found, ‘/home/test_user/inventory.yml’ is not a valid YAML inventory plugin config file
[WARNING]: * Failed to parse /home/test_user/inventory.yml with yaml plugin: Invalid data from
file, expected dictionary and got: Ansi7.2.0
[WARNING]: * Failed to parse /home/test_user/inventory.yml with ini plugin: Invalid host pattern
‘all:’ supplied, ending in ‘:’ is not allowed, this character is reserved to provide a port.
[WARNING]: Unable to parse /home/test_user/inventory.yml as an inventory source
[WARNING]: No inventory was parsed, only implicit localhost is available
[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit
localhost does not match ‘all’

コメント

タイトルとURLをコピーしました