2016-10-19 4 views
0

다른 배포 환경의 경우 jinja2 템플릿에서 configfile을 만듭니다. 이를 위해 나는이처럼 보이는 모든 enviornment에 대한 YAML 파일을 가지고 :/jinja2 변수 파일에서 변수를 명령 출력으로 설정

이제
Serverip: 127.0.0.1 
Login: 
    Username: Rudolf 
    Password: rudolfssecret 

, 나는 금고에 특정 변수를 넣고 명령 줄 도구를 (같은 this one) 사용하여 추출 할 몇 가지 환경.

이 작업은 볼트에서 값을 가져 와서 변수 File과 결합하여 수행 할 수 있습니다. 그러나이 방법으로 seceret 변수는 File 변수에서 완전히 제거됩니다. 파일을보고있는 Somone은 이러한 변수가 없거나 존재하지 않는다고 생각할 수 있습니다.

나는이 같은 somethig에 선호 :

Serverip: 127.0.0.1 
Login: 
    Username: Rudolf 
    Password: {{shell: keepass-cli extract-value -f keepassfile -name Password}} 

을 ansible로드 파일에서 변수, 그것은 쉘 명령의 출력과 그 값을 채 웁니다 그래서 때.

그럴 수 있습니까?

답변

0

해당 문제는 Playbook Best Practices – Variables and Vaults을 참조하십시오.

... varsvault의 두 파일을 만듭니다. vars 파일 안에 민감한 것을 포함하여 필요한 모든 변수를 정의하십시오. 다음으로 모든 민감한 변수를 vault 파일에 복사하고이 변수 앞에 vault_을 붙입니다. 일치하는 vault_ 변수를 가리 키도록 vars 파일의 변수를 조정하고 vault 파일이 볼트 암호화되어 있는지 확인해야합니다.

볼트 대신 외부 비밀번호 관리 도구를 사용하는 경우에도이 조언을 따르십시오. 당신이 경우
다음과 같이 바르 파일을 정의 :

Serverip: 127.0.0.1 
Login: 
    Username: Rudolf 
    Password: "{{ encrypted_password }}" 

을 그리고 각본을 실행하는 동안 encrypted_password 암호 관리 도구에서 가져온 있는지 확인합니다.

관련 문제