ansible-vault 認証情報の暗号化

ansible-vault 認証情報の暗号化

1 つのホストを含​​むインベントリ ファイルがあります。

10.1.32.123 ansible_ssh_user=vagrant ansible_ssh_pass=vagrant

私のyamlファイル:

- hosts: all
  sudo: yes
  gather_facts: yes
  serial: 20

  roles:

yamlパスワードで保護したいのはファイルではなく、ユーザーの資格情報が含まれているインベントリ ファイルです。プレイブックを実行しても、インベントリ ファイルの内容は復号化されないため、これは不可能です。ファイルyamlを暗号化している場合は復号化されます。

ansible-playbook inventory site.yml --ask-vault-pass
  1. ansible_ssh_user=vagrant ansible_ssh_pass=vagrantファイルに資格情報を追加しyaml、IP をインベントリ ファイルに保持する方法はありますか。

ドキュメント:

金庫

答え1

ホスト ファイルを暗号化することはできないと思います。より良い方法は、認証情報などの機密情報を ansible-vault で暗号化されたセカンダリ vars ファイルに保存し、そのファイルをプレイブックに含めることです。

- hosts: all
  sudo: yes
  gather_facts: yes
  vars_files:
    - /path/to/encrypted/vars.yml

ファイルにはinventoryホストが含まれています:

10.1.1.2

資格vars/vars.yml情報を保存します:

ansible_ssh_user: vagrant
ansible_ssh_password: vagrant

複数のホストを使用するには、インベントリ ファイルにグループを追加します。特定のグループ内のホストは同じ資格情報を共有します。

[group1]
10.1.1.2
10.1.1.3

[group2]
10.1.1.4
10.1.1.5

プレイブックには、次の 2 つのホスト セクションが含まれるようになります。

- hosts: group1
  vars_files:
    - vars/group1.yml

- hosts: group2
  vars_files:
    - vars/group2.yml

およびファイルgroup1.ymlgroup2.yml同じパスワードを共有する必要があります。

関連情報