LoginSignup
1
1

More than 5 years have passed since last update.

ansible-vault で値ごとの暗号化をした場合、その内容を簡単に確認する方法

Posted at

ansibleでパスワードなどの機密情報を扱うのに便利なのはansible-vaultですよね。

ただ、ファイルまるごとを暗号化してしまうと、その他の値や差分が確認できない問題が生じるので、値ごとの暗号化を使うと便利です。

vars/users.yml
users:
  - name: user1
    password: !vault |
      $ANSIBLE_VAULT;1.1;AES256
      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      XXXX
  - name: user2
    password: !vault |
      $ANSIBLE_VAULT;1.1;AES256
      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      XXXX

ただ、これにも問題があって、ファイルまるごとの暗号化ではないため、ansible-vault viewで内容を確認することができません。

$ ansible-vault view vars/users.yml
ERROR! input is not vault encrypted data for vars/users.yml

そこで、パスワードを表示する専用のplaybookを用意しましょう。

show_password.yml
- hosts: all
  tasks:
    - name: show users
      debug:
        var: item
        verbosity: 1
      with_items: "{{ users }}"

このplaybookを実行すると、簡単に確認ができるようになります。

$ ansible-playbook show_password.yml

TASK [show users] ***********************************************************************************************************************
skipping: [host] => (item={u'password': u'XXXXXXXX', u'name': u'user1'})
skipping: [host] => (item={u'password': u'XXXXXXXX', u'name': u'user2'})

verbosity: 1 を指定しているのは debugタスクによる表示を抑制するためです。
with_items 時点で item の内容が表示されてしまうので、 debug タスクの表示がされると二重表示になってしまいます。

ansible-vault view が対応してくれるまでの代替措置としてお使いください。

1
1
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
1
1