wordpress 배포에 사용할 database.yaml 파일을 열어보자
[vagrant@controller vars]$ cat database.yaml
---
database:
name: wordpress
user: wpadm
pwd: P@ssw0rd
svc_port: 33060
노출되면 안되는 민감한 DB 데이터들을 볼 수 있다.
그렇다면 플레이북을 공유할 때 이런 데이터들을 쉽게 알아낼 수 없도록 처리할 방법은 없을까?
플레이북 작성에서 이러한 역할을 하는 것이 Vault 이다.
✔️ Vault
데이터를 안전하게 저장하기 위해서 Vault를 사용해야 한다.
파일, 일부 텍스트를 암호화
- 파일 수준
- 플레이북 전체
- 변수 파일
- include/import 작업 파일
- 단일 패스워드
- --ask-vault-pass
- --vault-password-file
- 멀티 패스워드
- --vault-id
ansible에서는 passwordless sudo가 default 설정이므로 --ask-pass 옵션을 붙여야 SSH 패스워드 인증을 할 수 있다.
마찬가지로 권한 상승을 위해서도 --ask-become-pass 옵션이 필요하다.
만약 host가 많다면 10대, 100대의 호스트에 패스워드를 입력해야 한다.
H1 ~ H20 가 있고 작업이 많다고 가정했을 때
20개의 호스트가 모두 다 T1을 마쳐야 넘어가는데 H10이 그 작업이 오래걸린다면
다른 호스트들은 아무 작업하지 못하고 기다린다. 그러다가 세션이 끊어질 때가 있다.
(SSH는 아무 작업 없이 300초 지나면 SSH 세션을 끊어버리도록 되어있다.)
그럼 다시 인증을 받는 작업이 필요할 것이고 또 패스워드 입력을 해야하는 번거로움이 생긴다.
결국 ansible을 사용해 자동으로 인프라를 셋업하는 의미를 잃게된다.
그래서 우리는 키-쌍 인증을 사용한다.
암호화된 vault 파일이 있으면 암/복호화 할 때 키가 필요하다.
암호화된 플레이북을 복호화하기 위해서는 vault password가 필요하다.
✔️ ansible-vault 명령
ansible-vault <SUB-COMMAND> <FILE>
✔️ 명령의 옵션
--ask-vault-password
: 기본 옵션(Vault 패스워드 질문)--vault-password-file
: Vault 패스워드 파일 지정
- create: 암호화될 빈 파일 생성
- decrypt: 암호화된 파일 복호화
- edit: 암호화된 파일 수정(vi)
- view: 암호화된 파일 확인
- encrypt: 평문 파일 암호화
- rekey: Vault 패스워드 변경
- encrypt_string: 텍스트 암호화
✔️ Create
암호화될 빈 파일을 생성한다.
[vagrant@controller 11_vault]$ ansible-vault create encrypt.yaml
New Vault password:
Confirm New Vault password:
[vagrant@controller 11_vault]$ file encrypt.yaml
encrypt.yaml: ASCII text
✔️ View
암호화된 파일을 확인한다.
[vagrant@controller 11_vault]$ ansible-vault view encrypt.yaml
Vault password:
- hosts: 192.168.100.11
tasks:
- debug:
msg: hello world
✔️ Edit
암호화된 파일을 수정한다.
[vagrant@controller 11_vault]$ ansible-vault edit encrypt.yaml
Vault password:
[vagrant@controller 11_vault]$ ansible-vault view encrypt.yaml
Vault password:
- hosts: 192.168.100.11
tasks:
- debug:
msg: hello world korea
✔️ Decrypt
암호화된 파일을 복호화한다.
[vagrant@controller 11_vault]$ ansible-vault decrypt encrypt.yaml
Vault password:
Decryption successful
[vagrant@controller 11_vault]$ cat encrypt.yaml
- hosts: 192.168.100.11
tasks:
- debug:
msg: hello world korea
✔️ Encrypt
평문 파일을 암호화한다.
[vagrant@controller 11_vault]$ ansible-vault encrypt encrypt.yaml
New Vault password:
Confirm New Vault password:
Encryption successful
[vagrant@controller 11_vault]$ ansible-vault view encrypt.yaml
Vault password:
- hosts: 192.168.100.11
tasks:
- debug:
msg: hello world korea
✔️ Rekey
암호화에 사용했던 key를 변경한다.
[vagrant@controller 11_vault]$ ansible-vault rekey encrypt.yaml
Vault password:
New Vault password:
Confirm New Vault password:
Rekey successful
[vagrant@controller 11_vault]$ ansible-vault create --help
--ask-vault-password가 default 값이라 매번 패스워드를 쳐야하는 불편함이 있다.
--vault-password-file을 지정해 파일 인증을 하도록 한다.
[vagrant@controller 11_vault]$ echo "wwqr3466" > vaultpass
[vagrant@controller 11_vault]$ cat vaultpass
wwqr3466
[vagrant@controller 11_vault]$ ansible-vault create a.yaml --vault-password-file vaultpass
usage: ansible-vault [-h] [--version] [-v]
{create,decrypt,edit,view,encrypt,encrypt_string,rekey}
...
ansible-vault: error: unrecognized arguments: -=vault-password-file vaultpass
[vagrant@controller 11_vault]$ ansible-vault create a.yaml --vault-password-file vaultpass
[vagrant@controller 11_vault]$ ansible-vault view a.yaml --vault-password-file vaultpass
- hosts: 192.168.100.11
tasks:
- debug:
[vagrant@controller 11_vault]$ ansible-vault decrypt a.yaml --vault-password-file vaultpass
Decryption successful
[vagrant@controller 11_vault]$ cat a.yaml
- hosts: 192.168.100.11
tasks:
- debug:
[vagrant@controller 11_vault]$ ansible-vault encrypt a.yaml --vault-password-file vaultpass
Encryption successful
[vagrant@controller 11_vault]$ ansible-vault rekey a.yaml --vault-password-file vaultpass --new-vault-password-file newvaultpass
Rekey successful
[vagrant@controller 11_vault]$ ansible-vault view a.yaml --vault-password-file newvaultpass
- hosts: 192.168.100.11
tasks:
- debug:
[vagrant@controller 11_vault]$ ansible-vault rekey --help
usage: ansible-vault rekey [-h] [--vault-id VAULT_IDS]
[--ask-vault-pass | --vault-password-file VAULT_PASSWORD_FILES]
[-v] [--encrypt-vault-id ENCRYPT_VAULT_ID]
[--new-vault-password-file NEW_VAULT_PASSWORD_FILE | --new-vault-id NEW_VAULT_ID]
[file_name [file_name ...]]
positional arguments:
file_name Filename
optional arguments:
-h, --help show this help message and exit
--vault-id VAULT_IDS the vault identity to use
--ask-vault-pass ask for vault password
--vault-password-file VAULT_PASSWORD_FILES
vault password file
-v, --verbose verbose mode (-vvv for more, -vvvv to enable
connection debugging)
--encrypt-vault-id ENCRYPT_VAULT_ID
the vault id used to encrypt (required if more than
vault-id is provided)
--new-vault-password-file NEW_VAULT_PASSWORD_FILE
new vault password file for rekey
--new-vault-id NEW_VAULT_ID
the new vault identity to use for rekey
home 디렉토리는 root를 제외하고 소유자만 접근이 가능하다.
ssh로 접속하기 위해 bastion host를 두는 것 처럼 여러명이 ansible controller를 공동으로 사용할 때가 있다.
심지어 su 권한을 가질 수 있으면 root 권한으로 다른 사람의 home 디렉토리에 접근할 수 있어 위험하다.
✔️ 안전하고 편리하게 vault를 사용하는 방법
[vagrant@controller 11_vault]$ vi inven.ini
[vagrant@controller 11_vault]$ cat inven.ini
192.168.100.11
[vagrant@controller 11_vault]$ vi ansible.cfg
[vagrant@controller 11_vault]$ ls
ansible.cfg a.yaml encrypt.yaml newvaultpass plaintext.yaml vaultpass
[vagrant@controller 11_vault]$ vi .vaultpass
[vagrant@controller 11_vault]$ chmod 600 .vaultpass
[vagrant@controller 11_vault]$ ansible-vault encrypt plaintext.yaml
Encryption successful
✔️ encrypt_string
텍스트를 암호화할 때 사용하는 명령이다.
"hello world" 이 값을 암호화 하고 싶다고 하면 암호화 할 값을 prompt에 입력하고 ctrl-d 를 두번 연속 누른다.
[vagrant@controller 11_vault]$ vi test.yaml
[vagrant@controller 11_vault]$ cat test.yaml
- hosts: 192.168.100.11
vars:
message: hello world
tasks:
debug:
msg: "{{ message }}"
[vagrant@controller 11_vault]$
[vagrant@controller 11_vault]$ ansible-vault encrypt_string
Reading plaintext input from stdin. (ctrl-d to end input)
hello world!vault |
$ANSIBLE_VAULT;1.1;AES256
34303866643462633663633434306630386432393762616234393839363430353466356164663530
6338333662326135316536316464353733623831343063630a616163393864343461656536646332
65336332356435653133356163396635383836303333323764626264383335653732633466396633
3062376461643261310a343565386435666465386535666532373763313662633336303663303138
6162
Encryption successful
[vagrant@controller 11_vault]$
이후 나오는 값에서 !부터 숫자의 끝까지 복사해서 test.yaml 파일에 붙여넣는다.
test.yaml
이제 실행을 하면 되는데,
ansible.cfg 파일에 key 파일이 지정되어 있지 않으면
"msg": "Attempting to decrypt but no vault secrets found" 메세지를 출력하며 오류가 난다.
이때 ansible.cfg 파일에 key 파일을 다시 지정해주면 정상적으로 실행이 된다.
[vagrant@controller 11_vault]$ ansible-playbook test.yaml
PLAY [192.168.100.11] ***************************************************************************************************************************************************************
TASK [Gathering Facts] **************************************************************************************************************************************************************
ok: [192.168.100.11]
TASK [debug] ************************************************************************************************************************************************************************
ok: [192.168.100.11] => {
"msg": "hello world"
}
PLAY RECAP **************************************************************************************************************************************************************************
192.168.100.11 : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
[vagrant@controller 11_vault]$
다음은 vars_file 및 encrypt_vault를 사용하는 예제이다.
[vagrant@controller 11_vault]$ code var.yaml
[vagrant@controller 11_vault]$ cat test.yaml
- hosts: 192.168.100.11
vars_files:
- var.yaml
tasks:
- debug:
msg: "{{ message }}"
[vagrant@controller 11_vault]$ ansible-vault encrypt_string
Reading plaintext input from stdin. (ctrl-d to end input)
hello world!vault |
$ANSIBLE_VAULT;1.1;AES256
65613961646266656535313939333636396430633433316161643733303238303330623132336330
6238363830363335396435366262643931313833663334360a386234633234633433326339313830
38356630636439666236366334633331356432613435626330656335343461636362643937336331
6539346362646166340a346336336632303736656437353231656461653666333132393733356164
3538
Encryption successful
[vagrant@controller 11_vault]$ cat var.yaml
message: !vault |
$ANSIBLE_VAULT;1.1;AES256
65613961646266656535313939333636396430633433316161643733303238303330623132336330
6238363830363335396435366262643931313833663334360a386234633234633433326339313830
38356630636439666236366334633331356432613435626330656335343461636362643937336331
6539346362646166340a346336336632303736656437353231656461653666333132393733356164
3538
[vagrant@controller 11_vault]$ ansible-playbook test.yaml
PLAY [192.168.100.11] ***************************************************************************************************************************************************************
TASK [Gathering Facts] **************************************************************************************************************************************************************
ok: [192.168.100.11]
TASK [debug] ************************************************************************************************************************************************************************
ok: [192.168.100.11] => {
"msg": "hello world"
}
PLAY RECAP **************************************************************************************************************************************************************************
192.168.100.11 : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
[vagrant@controller 11_vault]$
ansible.cfg의 ./.vaultpass 를 주석처리하지 않으면 항상 같은 패스워드를 사용할 수 밖에 없다.
우선 key 파일에 주석처리를 하고 시작한다.
[vagrant@controller 11_vault]$ cat ansible.cfg
[defaults]
#vault_password_file = ./.vaultpass
inventory = inven.ini
서로 다른 파일이 서로 다른 key를 사용하는 예제
message1에 사용했던 vault password와 message2에 사용했던 vault password를 다르게 해보자
[vagrant@controller 11_vault]$ ansible-vault encrypt_string --name message1
New Vault password:
Confirm New Vault password:
Reading plaintext input from stdin. (ctrl-d to end input)
hello!vault |
$ANSIBLE_VAULT;1.1;AES256
62646365393563396230616662303733646438306437393934396461363235643138623661393738
6463643566373732343237353766653834616437613262370a616337663331343864333038613034
37346135373835386134376261393032623836363238613639316331346365633932396561646233
3365336162343438640a626432643734313031643039356535306664643861313235363334653834
6230
Encryption successful
[vagrant@controller 11_vault]$ ansible-vault encrypt_string
New Vault password:
Confirm New Vault password:
Reading plaintext input from stdin. (ctrl-d to end input)
world!vault |
$ANSIBLE_VAULT;1.1;AES256
64646433383132643334616132633935353063613364613838303936373836356666653636383762
3063396333386631303562306339346562343264373066300a643131646533383866303561306135
34666166623031663330363836636433303730666438363035356438656537386239613161313065
6531363434656465330a613431336432323039373331393364306363366565653666636531303462
6639
Encryption successful
Vault password 입력 시 message1에 사용했던 vault password를 입력하면
message1은 풀 수 있는 상태지만 message2는 풀 수 없는 상태이다.
결론적으로 복호화에 실패한다.
마찬가지로 message2에 사용했던 vault password를 입력해도 복호화에 실패한다.
[vagrant@controller 11_vault]$ ansible-playbook test.yaml --ask-vault-pass
Vault password:
PLAY [192.168.100.11] ****************************************************************************************************************************
TASK [Gathering Facts] ***************************************************************************************************************************
ok: [192.168.100.11]
TASK [debug] *************************************************************************************************************************************
fatal: [192.168.100.11]: FAILED! => {"msg": "Decryption failed (no vault secrets were found that could decrypt)"}
PLAY RECAP ***************************************************************************************************************************************
192.168.100.11 : ok=1 changed=0 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0
정리하자면, 서로 다른 키를 가지고 암호화한 경우 실행할 방법이 없다.
개인이 사용하는 플레이북이라면 패스워드를 동일하게 해도 상관없지만,
사용하는 플레이북이며 암호화된 데이터를 못 보게 하기 위해서
다른 패스워드를 사용하고 싶을 때 어떻게 해야할까 ?
그때 사용하는 것이 멀티 패스워드이다.
✔️ 멀티 패스워드
- --vault-id 옵션 사용
- --vault-id ID@source (ID의 정식 명칭은 label)
ID로 구별해서 다른 패스워드를 사용할 수 있게 만들어 준다.
"계정을 만든다." 라고 생각하면 이해하기 쉽다.
source
- prompt : 패스워드를 대화 형식의 프롬프트로 받는다.
- --vault-id user1@prompt
- file : 파일에서 패스워드를 참조한다.
- --vault-id user2@.vaultpass (패스워드가 들어있는 파일)
- script : 패스워드를 참조할 수 있는 스크립트 (python, bash Ruby.. 상관 없음)
- 예 : 패스워드를 MySQL 서버에 저장, python 코드로 DB에서 해당 패스워드를 가져올 수 있는 스크립트를 작성
- --vault-id user3@getpass.py 이런식으로 지정
- 가장 안전한 방식이다.
✔️ prompt
[vagrant@controller 11_vault]$ ansible-vault encrypt_string --vault-id user1@prompt
New vault password (user1):
Confirm new vault password (user1):
Reading plaintext input from stdin. (ctrl-d to end input)
hello!vault |
$ANSIBLE_VAULT;1.2;AES256;user1
66343639333561663461363766363737363438373338306262373864323432316337623661343036
3361383035613532343336333134626134636433626134660a343234626662663237646333633864
34626664643464636265316339396238343434633334656131376631333333346165343533653964
3537343138386162370a336435396634623536653264346238336131333637366235656239656162
6130
Encryption successful
[vagrant@controller 11_vault]$ ansible-vault encrypt_string --vault-id user2@prompt
New vault password (user2):
Confirm new vault password (user2):
Reading plaintext input from stdin. (ctrl-d to end input)
world!vault |
$ANSIBLE_VAULT;1.2;AES256;user2
32373962373133303064613033666637346231633334663763383137616332663666336263613961
6131653432376266306332316431386435363266356531340a383866343133386339353233643764
36663939373439306338656666386339636631653332393432653663303461343435323835326162
3166626464623638300a323535366636356261373736313639626531313237636138393531356139
3366
Encryption successful
해당 내용을 var.yaml 파일에 각각 작성하기var.yaml
message1: !vault |
$ANSIBLE_VAULT;1.2;AES256;user1
66343639333561663461363766363737363438373338306262373864323432316337623661343036
3361383035613532343336333134626134636433626134660a343234626662663237646333633864
34626664643464636265316339396238343434633334656131376631333333346165343533653964
3537343138386162370a336435396634623536653264346238336131333637366235656239656162
6130
message2: !vault |
$ANSIBLE_VAULT;1.2;AES256;user2
32373962373133303064613033666637346231633334663763383137616332663666336263613961
6131653432376266306332316431386435363266356531340a383866343133386339353233643764
36663939373439306338656666386339636631653332393432653663303461343435323835326162
3166626464623638300a323535366636356261373736313639626531313237636138393531356139
3366
[vagrant@controller 11_vault]$ ansible-playbook test.yaml --vault-id user1@prompt --vault-id user2@prompt
Vault password (user1):
Vault password (user2):
PLAY [192.168.100.11] ************************************************************************************************
TASK [Gathering Facts] ***********************************************************************************************
ok: [192.168.100.11]
TASK [debug] *********************************************************************************************************
ok: [192.168.100.11] => {
"msg": "hello hello"
}
PLAY RECAP ***********************************************************************************************************
192.168.100.11 : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
[vagrant@controller 11_vault]$ ansible-playbook test.yaml --vault-id user1@prompt --vault-id user2@prompt
Vault password (user1):
Vault password (user2):
PLAY [192.168.100.11] ***********************************************************************************************************************************************************************************************************************************************
TASK [Gathering Facts] **********************************************************************************************************************************************************************************************************************************************
ok: [192.168.100.11]
TASK [debug] ********************************************************************************************************************************************************************************************************************************************************
ok: [192.168.100.11] => {
"msg": "hello world"
}
PLAY RECAP **********************************************************************************************************************************************************************************************************************************************************
192.168.100.11 : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
예시를 하나 더 살펴보자test.yaml
- hosts: 192.168.100.11
vars_files:
- var1.yaml
- var2.yaml
tasks:
- debug:
msg: "{{ message1 }} {{ message2 }}"
[vagrant@controller 11_vault]$ echo "message1: hello" > var1.yaml
[vagrant@controller 11_vault]$ echo "message2: world" > var2.yaml
[vagrant@controller 11_vault]$ cat var1.yaml
message1: hello
[vagrant@controller 11_vault]$ cat var2.yaml
message2: world
[vagrant@controller 11_vault]$ ansible-vault encrypt var1.yaml --vault-id user1@prompt
New vault password (user1):
Confirm new vault password (user1):
Encryption successful
[vagrant@controller 11_vault]$ ansible-vault encrypt var1.yaml --vault-id user2@prompt
New vault password (user2):
Confirm new vault password (user2):
Encryption successful
[vagrant@controller 11_vault]$ ansible-playbook test.yaml --vault-id user1@prompt --vault-id user2@prompt
Vault password (user1):
Vault password (user2):
PLAY [192.168.100.11] ***********************************************************************************************************************************************************************************************************************************************
TASK [Gathering Facts] **********************************************************************************************************************************************************************************************************************************************
ok: [192.168.100.11]
TASK [debug] ********************************************************************************************************************************************************************************************************************************************************
ok: [192.168.100.11] => {
"msg": "hello world"
}
PLAY RECAP **********************************************************************************************************************************************************************************************************************************************************
192.168.100.11 : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
참고로 어떤 파일에 어떤 암호를 사용할 것인가는 ansible이 알아서 처리한다.
✔️ vault file
[vagrant@controller 11_vault]$ echo "message1: hello" > var1.yaml
[vagrant@controller 11_vault]$ echo "message2: world" > var2.yaml
[vagrant@controller 11_vault]$
[vagrant@controller 11_vault]$ echo "wwqr3466" > user1pass
[vagrant@controller 11_vault]$ echo "wwqr3455" > user2pass
[vagrant@controller 11_vault]$ chmod 600 user1pass
[vagrant@controller 11_vault]$ chmod 600 user2pass
[vagrant@controller 11_vault]$
[vagrant@controller 11_vault]$ ansible-vault encrypt var1.yaml --vault-id user1@user1pass
Encryption successful
[vagrant@controller 11_vault]$ ansible-vault encrypt var2.yaml --vault-id user2@user2pass
Encryption successful
[vagrant@controller 11_vault]$ ansible-playbook test.yaml --vault-id user1@user1pass --vault-id user2@user2pass
PLAY [192.168.100.11] ***********************************************************************************************************************************************************************************************************************************************
TASK [Gathering Facts] **********************************************************************************************************************************************************************************************************************************************
ok: [192.168.100.11]
TASK [debug] ********************************************************************************************************************************************************************************************************************************************************
ok: [192.168.100.11] => {
"msg": "hello world"
}
PLAY RECAP **********************************************************************************************************************************************************************************************************************************************************
192.168.100.11 : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
✔️ 안전하고 편리하게 vault 멀티 패스워드를 사용하는 방법
단일 패스워드의 경우 ansible.cfg
파일에 아래와 같이 키를 지정할 수 있었다.
[defaults]
vault_password_file = ./.vaultpass
그렇다면 멀티 패스워드에서는 어떻게 키를 지정할까 ?
[vagrant@controller 11_vault]$ ansible-config dump
DEFAULT_VAULT_ENCRYPT_IDENTITY(default) = None
DEFAULT_VAULT_IDENTITY(default) = default
DEFAULT_VAULT_IDENTITY_LIST(default) = []
설정 가능한 모든 설정들을 볼 수 있고 VAULT_IDENTITY_LIST가 있다.
ansible.cfg
[defualts]
vault_identity_list = user1@user1pass, user@user2pass
적용을 시켜보자
test.yaml
[defaults]
#vault_password_file = ./.vaultpass
inventory = inven.ini
vault_identity_list = user1@user1pass, user2@user2pass
따로 키를 지정하지 않아도 바로 내용을 읽을 수 있다.
[vagrant@controller 11_vault]$ ansible-vault view var1.yaml
message1: hello
[vagrant@controller 11_vault]$ ansible-vault view var2.yaml
message2: world
여기에서 중요한 사항은 암호화 시에는 실행이 안된다.
복호화할 때는 ansible engine이 알아서 어떤 파일에 어떤 암호를 사용할 것인가를 처리하지만 암호화는 그렇지 않다.
[vagrant@controller 11_vault]$ echo "message: korea" > var3.yaml
[vagrant@controller 11_vault]$ ansible-vault encrypt var3.yaml
usage: ansible-vault [-h] [--version] [-v]
{create,decrypt,edit,view,encrypt,encrypt_string,rekey}
...
encryption/decryption utility for Ansible data files
positional arguments:
{create,decrypt,edit,view,encrypt,encrypt_string,rekey}
create Create new vault encrypted file
decrypt Decrypt vault encrypted file
edit Edit vault encrypted file
view View vault encrypted file
encrypt Encrypt YAML file
encrypt_string Encrypt a string
rekey Re-key a vault encrypted file
optional arguments:
--version show program's version number, config file location,
configured module search path, module location,
executable location and exit
-h, --help show this help message and exit
-v, --verbose verbose mode (-vvv for more, -vvvv to enable
connection debugging)
See 'ansible-vault <command> --help' for more information on a specific
command.
ERROR! The vault-ids user1,user2 are available to encrypt. Specify the vault-id to encrypt with --encrypt-vault-id
암호화 할 때는 반드시 --encrypt-vault-id
로 어떤 아이디로 암호화를 할 것인지를 지정해줘야 한다.
[vagrant@controller 11_vault]$ ansible-vault encrypt var3.yaml --encrypt-vault-id user1
Encryption successful
암호화에 성공하고 user1의 패스워드는 user1pass 파일에서 참조하게 된다.
다시 정리하면 암호화를 할 때는 이렇게 사용해야 한다.
ansible-vault create var3.yaml --encrypt-vault-id user1
ansible-vault encrypt var3.yaml --encrypt-vault-id user1
'DevOps > Ansible' 카테고리의 다른 글
[Ansible] AWX를 이용해 플레이북 런칭 및 예약, 모니터링하기 (0) | 2022.04.21 |
---|---|
[Ansible] AWX 설치하기 (0) | 2022.04.21 |
[Ansible] ansible-galaxy 사용법 (0) | 2022.04.21 |
[Ansible] 플레이 레벨에서 작업 실행 순서 (0) | 2022.04.21 |
[Ansible] artifact 재사용 - 역할(roles) (0) | 2022.04.21 |
영차영차 성장 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!