Ansible-Vault는 변수와 파일을 암호화해주는 역할을 한다.
Ansible을 이용하여 컨트롤하는 대상서버 계정정보 Hosts playbook 또는 inventory 파일 내용 등은
평문으로 표기되면 보안상 문제가 있다.
ansible-vault 명령으로 변수나 파일을 복호화해서 사용 한다.
암호화 알고리즘 : AES256
명령어 도움말
ansible-vault --help
암호화된 파일 생성
|
ansible-vault create [파일 경로]
|
암호화된 파일 내용 확인하기
|
ansible-vault view [encryption 파일 경로]
|
암호화된 파일 내용 편집하기
|
ansible-vault edit [encryption 파일 경로]
|
기존 파일 암호화
|
ansible-vault encrypt [origin 파일 경로]
|
암호화된 파일 복호화
|
ansible-vault decrypt [encryption 파일 경로]l
|
암호화된 파일의 password 변경
|
ansible-vault rekey [encryption 파일 경로]
|
---
- name: Playbook for testing
hosts: webservers
remote_user: root
tasks:
- name: Tasks for testing
cat test.yaml
암호화
sudo ansible-vault encrypt test.yaml
vault password를 지정해준다.
sudo cat test.yaml
암호화된 파일 수정
sudo ansible-vault edit test.yaml
복호화
sudo ansible-vault decrypt test.yaml
sudo cat test.yaml
Inventory 암호화
지금까지는 따로 inventory를 지정하지 않고 디폴트 인벤토리인 /etc/ansible/hosts를 사용했었다.
하지만 이번엔 따로 inventory 파일을 만들어 보자.
vi /etc/ansible/ansible.cfg
sudo vi inventory.ini
[dbservers]
node1
node2
hosts파일 대신 inventory.ini 파일을 인벤토리로 지정하여 ping을 보내자.
ansible dbservers -i inventory.ini -m ping
인벤토리를 암호화 해보자.
sudo ansible-vault encrypt inventory.ini
ansible dbservers -i inventory.ini -m ping
인벤토리를 암호화 하니 보통의 방법으론 핑이 가질 않는다.
vault password를 입력하여 인벤토리 실행
ansible dbservers -i inventory.ini -m ping --ask-vault-pass
암호화시 지정한 암호를 입력해준다
위와 같이 매번 암호화에 대한 비밀번호를 물어보라는 옵션(--ask-vault-pass)을 치는 것은 불편하다.
config 파일을 만져서 이 옵션을 디폴트화 해보자.
sudo vi /etc/ansible/ansible.cfg
(ansible 설정편에서 편의상 심볼릭 링크로 연결해 두었기에 sudo vi ansible.cfg라고 쳐도 된다)
설정파일에서 ask_vault_pass = True 설정 추가
ansible dbservers -i inventory.ini -m ping
--ask-vault-pass 옵션 없이도 기본 환경설정을 해줬기 때문에 vault 비밀번호를 물어보게 됐다.
'Ansible' 카테고리의 다른 글
Ansible Roles (0) | 2023.01.10 |
---|---|
Ansible-Playbook (0) | 2023.01.09 |
Ansible-Console (0) | 2023.01.09 |
Ansible 명령어 실습 (0) | 2023.01.06 |
미니프로젝트- awx 설치 (0) | 2023.01.05 |