나는 매우 신참 한 분이며 몇 가지 사항을 테스트하고 싶습니다. 몇 가지 Amazon EC2 인스턴스가 있으며 다른 소프트웨어 구성 요소를 설치하려고합니다. 내가 쓸만한 스크립트 나 설정 파일 안에 기술 사용자의 (평문) 자격을 갖고 싶지는 않다. 나는 그 파일들을 암호화하는 것이 가능하다는 것을 알고 있지만 중앙 암호 관리 도구에 대해 keepass를 시도하고 싶다. 따라서 설치 스크립트는 실제 설치를 시작하기 전에 .kdbx (Keepass 2) 데이터베이스 파일에서 자격 증명을 읽어야합니다.Python 스크립트를 통한 Keepass 통합 가능
지금까지 .kdbx 파일을 읽는 데 필요한 기본 파이썬 스크립트를 작성했습니다. 스크립트를 통해 JSON 객체를 출력합니다
print json.dumps(inventory, sort_keys=False)
OUPUT 보이는 같은 다음
{"cdc":
{"cdc_test_server":
{"cdc_test_user":
{"username": "cdc_test_user",
"password": "password"}
}
}
}
가 지금은 파이썬 스크립트가 ansible와의 키 값 쌍에 의해 실행되는 것을 달성 할 출력은 가능한 변수로 포함/등록됩니다. 다음과 같이 지금까지 나의 작전은 같습니다
- hosts: 127.0.0.1
connection: local
tasks:
- name: "Test Playboook Functionality"
command: python /usr/local/test.py
register: pass
- debug: var=pass.stdout
- name: "Include json user output"
set_fact: passwords="{{pass.stdout | from_json}}"
- debug: " {{passwords.cdc.cdc_test_server.cdc_test_user.password}} "
첫 번째 디버그 올바른 JSON 출력을 생성,하지만 난 내가 jinja2 표기를 사용할 수 있도록, ansible의 변수를 포함 할 수 없습니다입니다. set_fact는 예외를 throw하지 않지만 마지막 디버그는 "Hello world"메시지를 반환합니다. 그래서 내 질문은 : 제대로 작업을 통해 가능한 변수로 json 키 값 쌍을 포함합니까?
마지막 디버그 문에'msg :'를 추가하십시오.'- {debug : msg} "{{pass ....}}"' –
오, 감사합니다. 내 접근법이 변수 등록을 위해 선호되는 방법인지 아니면 더 나은 해결책이 있는지 알고 계십니까? – JuHarm89