금고 비밀번호
우선, 볼트 암호 파일이 실행 가능한 스크립트 일 수 있다는 사실에 익숙해 져야합니다. 이 경우 Ansible이이를 실행하고 비밀번호를 출력으로받을 것으로 예상합니다.
예를 들어 실제 비밀번호를 사용 gpg-agent
하거나 keychain
저장하여 필요할 때 잠금을 해제 할 수 있습니다. 이 블로그 게시물에서 자세한 내용을 확인하십시오 : https://benincosa.com/?p=3235
약간 편집증 환자라면 다음과 같이 비밀번호 스크립트가 호출 될 때 알림을 추가 할 수 있습니다.
#!/bin/bash
PARENT_PROCESS=$(ps -p $PPID -o args | tail -n 1)
osascript -e "display notification \"Vault password used by ${PARENT_PROCESS}\" with title \"Ansible\" sound name \"default\""
gpg --batch --use-agent --no-tty --decrypt key.gpg 2>/dev/null
이 볼트 비밀번호 스크립트는 key.gpg
실제 볼트 키로 사용 되며 스크립트를 사용할 때 상위 프로세스 이름과 함께 팝업 알림 (MacOS 용)을 표시합니다. Gpg 에이전트 캐시는 일정 시간 동안 비밀번호 잠금을 해제하므로 플레이 북을 시작할 때마다 비밀번호를 입력 할 필요가 없습니다.
에 설정 vault_password_file = ./vault_pass.sh
하십시오 ansible.cfg
.
환경
azure_rm.py
동적 인벤토리 스크립트로 사용한다고 말했습니다 . 즉, 사용 가능한 플레이 북을 시작하기 전에 환경 변수에 자격 증명을 설정해야 사용할 수 있습니다.
두 개의 파일을 만들 수 있습니다.
secure_env
(볼트로 암호화) :
export AZURE_SECRET=xxx;export AZURE_SUBSCRIPTION_ID=xxx;
set_env
(일반 텍스트):
echo -n "Setting secure vars... "
eval $(ansible-vault view secure_env)
echo "done."
자동화 작업을 수행하기 위해 새 터미널을 열면 다음을 실행해야합니다.
source set_env
이 시점에서 bash는 평가 set_env
하고 secure_env
(단단한 볼트를 통해 해독). 이 명령 후에 현재 셸에 대해 Azure 자격 증명이 정의되어 있으므로 평소와 같이 플레이 북을 실행할 수 있습니다.
ansible-playbook provision-my-azure-instances.yml
따라서이 두 가지 접근 방식을 사용 하여 저장소에 저장 key.gpg
하고 저장할 수 있습니다 secure_env
. 그런 다음 새 터미널 호출 source set_env
에서 gpg 암호를 한 번 입력하십시오 (key.gpg의 향후 사용을 잠금 해제하기 위해). 그런 다음 ansible-playbook
암호없이 원하는만큼 전화 하십시오.