我有一個簡單的 Ansible 劇本
- 從 RestAPI 取得資料庫連線配置,
- 從有效負載中提取配置對象,
- 使用設定 JSON(作為請求正文)建立對另一個 RestAPI 的 PUT 請求。
在第三階段我發現資料庫使用者名稱和密碼組合錯誤。後來,當我列印輸出時,我發現密碼已被替換為名為“的字串”VALUE_SPECIFIED_IN_NO_LOG_PARAMETER」。
經過一番谷歌搜尋後,我發現這是 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 屬性不會影響偵錯輸出,因此請注意不要在生產環境中偵錯 playbook。Ansible 文檔
秘密應該顯示在詳細輸出中。只需添加-vvv
到命令中即可ansible-playbook
。