eugene0707.merge_custom_vars

merge_custom_vars

カスタマイズ可能な優先順位で変数ファイルを読み込み、ハッシュを深くマージします。 デフォルトでは、playbookに含まれるrolesのrpi_varsフォルダから変数ファイルが読み込まれ、playbookディレクトリのrpi_varsで上書きされ、最も高い優先順位はインベントリのrpi_varsです。 マージするための独自の変数ファイル/フォルダのリストとその優先順位を設定できます。

要件

特別な要件はありません。

ロール変数

rpi_dir: マージする変数フォルダの名前。デフォルトはrpi_varsです。

rpi_files: マージする変数ファイルまたはフォルダ。配列内の要素の順序が優先順位を示します。 デフォルトでは:

  • "{{ rpi_role_dirs }}" # playbookに含まれるrolesのrpi_varsフォルダ。Rolesはplaybook内(ローカル)またはroles_path設定変数で定義された別の場所(私の場合は「shared」)に配置できます。
  • "{{ rpi_playbook_dirs }}" # playbook内のrpi_varsフォルダ
  • "{{ rpi_inventory_dirs }}" # インベントリフォルダ内のrpi_varsフォルダ。あなたのインベントリがそれぞれのフォルダに置かれている場合(私の場合)。

このロールは主に2つのことを行います:

  1. rpi_filesに含まれるすべてのハッシュ(yaml、json)を深くマージし、tmpフォルダに書き込みます。
  2. マージされた変数を含むymlをinclude_varsタスクで読み込みます。

依存関係

Ansible 2+

例プレイブック

このロールの主な概念は、ハッシュをマージすることの他に、ロールを越えて使用できる共通の変数を作成することで、プレイブックやインベントリレベルでより正確に設定することです。 このロールをplaybookの最初の位置で使用してください。

カスタムモジュールからのボールトパスワードの取得方法がわからないため、暗号化された変数は、例えば次のようにルックアッププラグインを使用してマージ「バスケット」に取り込むことができます:

---

secret:
  key: "{{ lookup('file', '{{ playbook_dir }}/files/vault.encrypted.key.txt') }}"

ライセンス

GPLv2

著者情報

Evgeniy Kondrashov https://github.com/eugene0707

プロジェクトについて

Load vars files with customizable precedence and deep merge hashes within.

インストール
ansible-galaxy install eugene0707.merge_custom_vars
ライセンス
Unknown
ダウンロード
120
所有者