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