나는 간단한 Ansible 플레이북을 가지고 있습니다.
- RestAPI에서 데이터베이스 연결 구성을 가져옵니다.
- 페이로드에서 구성 객체를 추출합니다.
- 구성 JSON(요청 본문)을 사용하여 다른 RestAPI에 대한 PUT 요청을 생성합니다.
3단계에서 데이터베이스 사용자 이름과 비밀번호 조합이 잘못되었음을 발견했습니다. 나중에 출력 결과를 인쇄하는 동안 비밀번호가 "라는 문자열로 대체된 것을 발견했습니다.VALUE_SPECIFIED_IN_NO_LOG_PARAMETER".
인터넷 검색을 통해 이것이 Ansible의 보안 기능이라는 것을 알았습니다. 불행히도 이 기능을 비활성화하는 구성이나 이와 유사한 것을 찾지 못했습니다.이 기능을 비활성화할 수 있나요? 아니면 다른 해결 방법이 있나요?
---
- name: my-playbook
gather_facts: no
hosts: all
vars_files:
- secret
tasks:
- name: Fetch the config payload from the API
uri:
url: "{{get_config}}"
method: GET
user: "{{username}}"
password: "{{password}}"
validate_certs: no
return_content: yes
status_code: 200
body_format: json
register: config
- name: Extract the config object
set_fact:
config_raw: "{{ config.json | json_query(jmesquery) }}"
vars:
jmesquery: '{{name}}.config'
- name: print the config
debug:
msg: "{{config_raw}}"
- name: Creating object using config
uri:
url: "{{create_ocject}}"
method: PUT
user: "{{username}}"
password: "{{password}}"
validate_certs: no
body: "{{config_raw}}"
body_format: json
return_content: yes
status_code: 200
headers:
Content-Type: "application/json"
register: test_res
- name: output value
debug:
msg: "{{test_res.json}}"
답변1
no_log: False
에서 설정할 수 있습니다 ansible.cfg
.
처럼
그러나 no_log 속성은 디버깅 출력에 영향을 미치지 않으므로 프로덕션 환경에서 플레이북을 디버깅하지 않도록 주의하세요.앤서블 문서
비밀은 자세한 출력에 표시되어야 합니다. 명령 -vvv
에 추가하면 됩니다 ansible-playbook
.