리눅스

[draft] Ansible ansible-vault 명령어를 사용하는 방법

SangChul Dot Kr Blog 2026. 3. 1. 13:38

Ansible ansible-vault 명령어를 사용하는 방법

ansible-vault란?

ansible-vault는 Ansible Playbook, 변수 파일, 설정 파일 등에 포함된 민감 정보를 암호화하여 안전하게 관리하기 위한 도구입니다.

  • 비밀번호
  • API Key/Token
  • 인증서/개인 키
  • DB 접속 정보

Vault 파일 생성 (create)

새 Vault 파일 생성

ansible-vault create a.yaml

Vault 파일 내용 확인 (view)

암호화된 파일을 복호화하여 보기

ansible-vault view a.yaml
$ ansible-vault view a.yaml
Vault password:
---
- hosts: node1
  tasks:
  - ping:

Vault 파일 수정 (edit)

암호화된 파일 직접 수정

ansible-vault edit a.yaml
$ ansible-vault edit a.yaml
Vault password:
 ---
 - hosts: node1
   tasks:
   - ping:

Vault 파일을 사용하는 Playbook 실행

실행 시 Vault 비밀번호 입력

ansible-playbook a.yaml -i ../inventory.ini --ask-vault-pass
$ ansible-playbook a.yaml -i ../inventory.ini --ask-vault-pass
Vault password:

PLAY [node1] ******************************************************************************************************

TASK [Gathering Facts] ********************************************************************************************
ok: [node1]

TASK [ping] *******************************************************************************************************
ok: [node1]

PLAY RECAP ********************************************************************************************************
node1                      : ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
  • --ask-vault-pass
  • 실행 시 Vault 비밀번호를 직접 입력
  • 테스트나 단일 실행에 적합

실무 팁

Vault 파일은 변수 파일로 사용하는 것이 정석

# vault.yml
db_password: MySecretPassword
- hosts: all
  vars_files:
    - vault.yml
  tasks:
    - debug:
        msg: "{{ db_password }}"

자동화 환경에서는 --vault-password-file 권장

ansible-playbook site.yml \
  --vault-password-file ~/.vault_pass.txt
  • CI/CD, Cron, Jenkins 환경에 필수
  • 파일 권한은 반드시 제한 (chmod 600)