1. ホーム
  2. encryption

Ansibleです。インベントリファイルの一部の変数を別のVaultファイルで暗号化する方法は?

2023-12-31 08:28:57

質問

設定

を考えてみましょう。 Ansible インベントリファイル を考えてみましょう。

[san_diego]
host1
host2

[san_francisco]
host3
host4

[west_coast]
san_diego
san_francisco

[west_coast:vars]
db_server=foo.example.com
db_host=5432
db_password=top secret password

問題点

私は、いくつかのバーを保存したいと思います ( db_password のように) Ansible ボールト に保存されますが、ファイル全体ではありません。

ヴォールトで暗号化された Ansible ファイルを暗号化されていないインベントリ ファイルにインポートするにはどうすればよいですか。

私が試したこと

暗号化されたvarsファイルを作成し、それをインポートしてみました。

include: secrets

どのような ansible-playbook と応答した。

ERROR: variables assigned to group must be in key=value form

を解析しようとしたためでしょう。 include ステートメントを変数として解析しようとしたからでしょう。

どのように解決するのですか?

group_hostsごとに暗号化されていないvarsファイルと暗号化されたvarsファイルの両方があることが問題である場合。

この ansible の機能を使用することができます。 http://docs.ansible.com/ansible/playbooks_best_practices.html#best-practices-for-variables-and-vaults

group_vars/ 
  san_diego/
    vars.yml  # unencrypted yaml file
    vault.yml # encrypted yaml file

Ansibleは暗号化されたyamlファイルとしてvault.ymlを自動的に読み込みます。

更新: 解決方法 以下 も良い解決策です (Ansible 2.3 以降)。