$ echo 'password' > .ansible_vault_pass
$ ansible create secret.yml --vault-password-file=.ansible_vault_pass
$ ansible view secret.yml --vault-password-file=.ansible_vault_pass
$ ansible edit secret.yml --vault-password-file=.ansible_vault_pass
การเก็บในที่นี้จะใช้ รูปแบบ yaml ตัวอย่าง
username : admin
password : passwordsecuremakmak
- hosts: "{{ environment }}"
vars_files:
- secret.yml
task:
- name: Log into private registry and force re-authorization
docker_login:
registry: "registry.private.com"
username: "{{ username }}" ## จะเป็นการเอาตัวแปรที่เราประกาศไว้ใน secret.yml มาใช้
password: "{{ password }}" ## จะเป็นการเอาตัวแปรที่เราประกาศไว้ใน secret.yml มาใช้
reauthorize: yes
....
ก่อน อื่น โครงสร้างภายในจะเป็น
--
- ansible-playbook
|- playbook.yml ## playbook ไฟล์ที่จะสั่งว่าให้ทำอะไรบ้าง
|- inventory ## ที่เก็บ config ต่างๆ
|- secret.yml ## ข้อความที่สำคัญแล้วต้องการความปลอดภัย
|- app.key ## private key ที่จะเข้าไปยัง server ปลายทาง
|- vars.json ## ตัวแปรต่างๆ
** อื่นๆ ถ้าจะให้ง่าย ต้อง ทำการ ssh-keygen แล้ว ssh-copy-id publickey ไปยัง server ปลายทาง หรืออาจจะ ใช้ ansible-playbook -k … เพื่อ ถามหา password ก็ได้ แต่มันไม่่ค่อยลื่นเท่าไร ในกรณีที่ไปใช้ cicd tool **
$ ansible-playbook playbook.yml \
-i inventory \
--private-key app.key \
--extra-vars @vars.json \
--vault-password-file=~/.ansible_vault_pass