如何在 Ansible playbook 中公開密碼/秘密

如何在 Ansible playbook 中公開密碼/秘密

我有一個簡單的 Ansible 劇本

  1. 從 RestAPI 取得資料庫連線配置,
  2. 從有效負載中提取配置對象,
  3. 使用設定 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: Falseansible.cfg.

作為

但是,no_log 屬性不會影響偵錯輸出,因此請注意不要在生產環境中偵錯 playbook。Ansible 文檔

秘密應該顯示在詳細輸出中。只需添加-vvv到命令中即可ansible-playbook

相關內容