4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Ansible】 ansible-vault とは

Last updated at Posted at 2024-10-31

ansible-vault とは

ansible-vault は、 Ansible の Playbook の内容を暗号化・復号化するためのコマンドです。

利用場面

サーバー設定を行う Ansible Playbook の中身には、データベース接続時のパスワードや SSH の秘密鍵など、秘匿しておきたい情報もたいてい含まれています。
こういった公開すべきでない情報については、 ansible-vault を用いて暗号化しておきましょう。

暗号化

ファイルを暗号化するには、 ansible-vault encrypt を使います。
以下は、ローカルから対象サーバーにコピーする SSH 秘密鍵ファイルを暗号化する例です。

task の一部抜粋
- name: copy ssh key
  copy: src=home/foobar/id_rsa dest=/home/foobar/.ssh/id_rsa owner=foobar group=foobar mode=0600
ansible-vault による暗号化
$ ansible-vault encrypt roles/server01/files/home/foobar/ssh/id_rsa
New Vault password: 
Confirm New Vault password: 
Encryption successful
$

こうやって暗号化した状態で Playbook 一式を保存します。

復号化

一方、復号化する場合は、 ansible-vault decrypt を使います。

ansible-vault による復号化
$ ansible-vault decrypt roles/server01/files/home/foobar/ssh/id_rsa
Vault password: 
Decryption successful

Playbook の実行

Playbook を実行するときは、 --vault-password-file オプションか、 --ask-vault-pass オプションをつけます。つけないと、以下のように ansible-vault で暗号化したファイルが復号化できず、エラーとなります。

TASK [server01 : copy ssh key] ********************************************
fatal: [server01]: FAILED! => {"msg": "A vault password or secret must be specified to decrypt /home/foobar/ansible/roles/server01/files/home/foovar/id_rsa"}

--vault-password-file オプションの場合は、 --vault-password-file=~/.vault-password といったようにパスワードを記述したファイルのパスを指定します。

--vault-password-file の例
$ ansible-playbook -i aws_ec2.yml server01.yml --ask-vault-pass=~/.vault-password

--ask-vault-pass オプションの場合は、 Playbook 実行時に対話的にパスワードを入力します。

--ask-vault-pass の例
$ ansible-playbook -i aws_ec2.yml server01.yml --ask-vault-pass
Vault password:

グッドプラクティス

パスワードなどの暗号化したい変数を一つの変数ファイルにまとめてタスクの初めの方で (always タグを付けて) 必ず読み込むようにするとよいでしょう。

tasks/main.yml の冒頭
---
- include_vars: secret.yml  # パスワードなど暗号化したい変数をまとめた変数ファイル
  tags:
    - always
4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?