サーチ…


備考

Anipalは機密データ暗号化を処理するためにVaultHashCorp Vaultと誤解されることはありません!)を提供します。 Vaultは主に、変数、タスク、ハンドラなどの構造化データを暗号化することを目標としています。

機密構造化データの暗号化

最初に、 vault_pass_fileなどのキーファイルを作成します。このファイルには、長い文字列が含まれていることが理想的です。 Linuxシステムでは、 pwgenを使用してランダムなパスワードファイルを作成することができます:

pwgen 256 1 > vault_pass_file

次に、このファイルを使用して機密データを暗号化します( groups_vars/group.yml

ANSIBLE_VAULT_PASSWORD_FILE=vault_pass_file ansible-vault encrypt group_vars/group.yml

プレイブックを実行するには、今からvault_pass_fileが必要vault_pass_file

ANSIBLE_VAULT_PASSWORD_FILE=vault_pass_file ansible-playbook -i inventories/nodes my-playbook.yml 

ANSIBLE_VAULT_PASSWORD_FILE環境変数を設定する代わりに、 --vault-password-file vault_pass_fileフラグを使用することもできます。

ディスク上のシークレットを編集または解読するには、それぞれansible-vault decrypt ansible-vault editansible-vault decrypt使用できます。

ルックアップパイプを使用して構造化されていないボールトで暗号化されたデータを復号化する

Vaultを使用すると、秘密鍵ファイルなどの非構造化データを暗号化することもできます。また、 lookupモジュールを使用して秘密鍵ファイルを解読することもできます。

---

- name: Copy private key to destination
  copy:
    dest=/home/user/.ssh/id_rsa
    mode=0600
    content=lookup('pipe', 'ANSIBLE_VAULT_PASSWORD_FILE=vault_pass_file ansible-vault view keys/private_key.enc')

local_actionを使用してボールトで暗号化されたテンプレートを復号化する

local_actionモジュールを使用すると、ボールトで暗号化されたテンプレートに依存するプレイを実行できます。

---

- name: Decrypt template
  local_action: "shell {{ view_encrypted_file_cmd }} {{ role_path }}/templates/template.enc > {{ role_path }}/templates/template"
  changed_when: False

- name: Deploy template
  template:
    src=templates/template
    dest=/home/user/file

- name: Remove decrypted template
  local_action: "file path={{ role_path }}/templates/template state=absent"
  changed_when: False

changed_when: False注意してください。これは重要なことですが、あなたの不可欠な役割を持つ冪等性テストを実行します。そうでなければ、プレイブックを実行するたびに変更が通知されます。 group_vars/all.ymlでは、例えばview_encrypted_file_cmd 、再利用のためにグローバル解読コマンドを設定することができます。

group_vars / all.yml

---

view_encrypted_file_cmd: "ansible-vault --vault-password-file {{ lookup('env', 'ANSIBLE_VAULT_PASSWORD_FILE') }} view"

プレイを実行するときは、ボールト・パスワード・ファイル(理想的には絶対パス)を指すようにANSIBLE_VAULT_PASSWORD_FILE環境変数を設定する必要があります。



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow