Eu tenho um manual simples do Ansible para
- Busque uma configuração de conexão de banco de dados de uma RestAPI,
- Extraia o objeto de configuração da carga útil,
- Usando o JSON de configuração (como corpo da solicitação) para criar uma solicitação PUT para outro RestAPI.
Na terceira etapa descobri que a combinação de nome de usuário e senha do banco de dados está errada. Mais tarde, enquanto imprimo as saídas, descobri que a senha foi substituída por uma string chamada "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER".
Depois de pesquisar no Google, descobri que este é um recurso de segurança do Ansible. Infelizmente, não encontrei nenhuma configuração ou algo parecido para desabilitar esse recurso.É possível desativar esse recurso? Ou qualquer outra solução alternativa?
---
- 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}}"
Responder1
Você pode no_log: False
definir ansible.cfg
.
Como
No entanto, o atributo no_log não afeta a saída de depuração, portanto, tome cuidado para não depurar playbooks em um ambiente de produção.Documento Ansible
os segredos devem ser exibidos na saída detalhada. Basta adicionar -vvv
ao ansible-playbook
comando.