Como expor senhas/segredos no manual Ansible

Como expor senhas/segredos no manual Ansible

Eu tenho um manual simples do Ansible para

  1. Busque uma configuração de conexão de banco de dados de uma RestAPI,
  2. Extraia o objeto de configuração da carga útil,
  3. 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: Falsedefinir 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 -vvvao ansible-playbookcomando.

informação relacionada