Ansible Vault
Ansible Vault
- Ansible Vault는 패스워드, 키와 같은 보안에 민감한 파일들을 encryption / decryption 해주는 기능이다
- Ansbile에서 사용하는 모든 구조화된 데이터 파일을 암호화 할 수 있다
- 참고로 ansible을 설치하면 ansible-vault도 같이 설치가 된다.
# 암호화된 파일을 생성하기
$ ansible-vault create vault.yml
# 암호화된 파일 수정하기 (일반텍스트로 열면 암호화되어 볼 수 없다)
$ ansible-vault edit vault.yml
# 암호화된 파일의 패스워드 변경하기
$ ansible-vault rekey vault.yml
# 암호화되지 않은 파일을 암호화
$ ansible-vault encrypt vault.yml
# 암호화된 파일의 복호화
$ ansible-vault decrypt vault.yml
# 암호화된 파일의 내용 보기
$ ansible-vault view vault.yml
# hosts 파일 암호화
$ ansible-vault encrypt hosts
New Vault password:
Confirm New Vault password:
Encryption successful
# 암호화된 hosts 파일 확인(cat)
$ ansible-vault view hosts
# Playbook 실행하기
# ansible-playbook 실행시 --ask-vault-pass 옵션을 넣어주면 된다.
$ ansible-playbook --ask-vault-pass -i hosts play.yml -t install
Vault password:
# 파일에 vault password를 저장해서 사용이 가능하다.
$ cat vault_pass.txt
test
$ ansible-playbook -i hosts play -t install --vault-password-file=vault_pass.txt
# become-pass(sudo password) & vault-pass(hosts 암호화 파일 패스워드) 같이 사용 가능
$ ansible-playbook useradd.yml --extra-vars "USER_NAME=testuser2 PASSWORD=testuser1@" -u root --ask-become-pass --ask-vault-pass
BECOME password:
Vault password:
PLAY [사용자 추가] **************************************************************************************************************************************************************************************************************
TASK [Gathering Facts] *****************************************************************************************************************************************************************************************************
ok: [test-client001]
TASK [사용자 이름 생성] ***********************************************************************************************************************************************************************************************************
changed: [test-client001]
TASK [패스워드 변경] *************************************************************************************************************************************************************************************************************
changed: [test-client001]
TASK [sudoers.d 추가] ********************************************************************************************************************************************************************************************************
ok: [test-client001]
PLAY RECAP *****************************************************************************************************************************************************************************************************************
test-client001 : ok=4 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0