Cómo exponer contraseñas/secretos en el libro de jugadas de Ansible

Cómo exponer contraseñas/secretos en el libro de jugadas de Ansible

Tengo un sencillo manual de estrategias de Ansible para

  1. Obtenga una configuración de conexión de base de datos desde una RestAPI,
  2. Extraiga el objeto de configuración de la carga útil,
  3. Usar el JSON de configuración (como cuerpo de la solicitud) para crear una solicitud PUT a otra RestAPI.

En la tercera etapa descubrí que la combinación de nombre de usuario y contraseña de la base de datos es incorrecta. Más tarde, mientras imprimía los resultados, descubrí que la contraseña se reemplazó con una cadena llamada "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER".

Después de buscar en Google, descubrí que se trata de una característica de seguridad de Ansible. Desafortunadamente, no he encontrado ninguna configuración o algo así para desactivar esta función.¿Es posible desactivar esta función? ¿O alguna otra solución?

---
    - 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}}"

Respuesta1

Puedes no_log: Falseconfigurar ansible.cfg.

Como

Sin embargo, el atributo no_log no afecta el resultado de la depuración, así que tenga cuidado de no depurar guías en un entorno de producción.documento ansible

los secretos deben mostrarse en la salida detallada. Simplemente agregue -vvval ansible-playbookcomando.

información relacionada