Как раскрыть пароли/секреты в Ansible playbook

Как раскрыть пароли/секреты в Ansible playbook

У меня есть простой Ansible-плейбук для

  1. Извлечь конфигурацию подключения к базе данных из RestAPI,
  2. Извлечь объект конфигурации из полезной нагрузки,
  3. Использование JSON-конфигурации (в качестве тела запроса) для создания PUT-запроса к другому RestAPI.

На 3-м этапе я обнаружил, что комбинация имени пользователя и пароля базы данных неверна. Позже, когда я распечатывал результаты, я обнаружил, что пароль был заменен строкой с именем "ЗНАЧЕНИЕ_УКАЗАНО_В_ПАРАМЕТРЕ_ЖУРНАЛА".

После некоторого гугления я обнаружил, что это функция безопасности 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 не влияет на вывод отладки, поэтому будьте осторожны и не отлаживайте сценарии в производственной среде.Ansible документ

секреты должны отображаться в подробном выводе. Просто добавьте -vvvк ansible-playbookкоманде.

Связанный контент