3

秘密にしておきたい一連の変数を含む Vault ファイルが 1 つだけあるとします。ファイルを Ansible に一度だけロードしてから、すべてのロールとすべてのタスクにグローバルにアクセスする方法はありますか?

基本的に、次のように var_files をどこにでも複製するのは好きではありません。

- hosts: webserver
  var_files: encrypted.yml
  roles: ....

- hosts: dbserver
  var_files: encrypted.yml
  roles: ....  
4

2 に答える 2

9

ホストがメンバーであるグループに応じて自動的にロードされる可変ファイルであるgroup_varsを使用できます。すべてのホストがallグループのメンバーであるため、共通の変数を に入れることができますgroup_vars/all

group_vars dir は、(優先度が下がるにつれて) 相対的なものにすることができます: Playbook、インベントリーファイル、または /etc/ansible 内。

暗号化された共通変数と暗号化されていない共通変数を分離したい場合は、それをディレクトリとしても使用できます。

  • group_vars/all/settings.yml通常の変数の場合
  • group_vars/all/encrypted.ymlアーチ型のもののために。

私の選択したファイル名が気に入らない場合は、独自のファイル名を選択してください。それがallグループの下にある限り、問題ありません。

于 2014-05-26T15:24:05.567 に答える
0

いいえ。あなたの例には、ファイル内の 2 つの Ansible プレイブックがあり、Ansible にはより高いレベルの抽象化 (プレイブックよりも高い) はありません。

これが実際に機能することを私は本当に知りませんでした!しかし、ファイルごとに 1 つの Playbook を持つことは、一般的な良い習慣だと思います。結局のところ、あなたがそれを実行するとき、あなたはそれを実行し、実行しansible-playbookませんansible-playbooks

これは、ファイルに 2 つの Playbook があることとは関係ありませんが、セキュリティが心配な場合は、Ansible Vault (1.5 の新機能) の使用を検討する必要があります。

于 2014-03-29T06:08:11.003 に答える