【问题标题】:Ansible http get request does not work but manual curl get worksAnsible http get 请求不起作用,但手动 curl get 有效
【发布时间】:2019-08-18 06:18:09
【问题描述】:

我的 ansible playbook 中有以下任务:

- name: Test on localhost
  hosts: localhost
  gather_facts: false
  tasks:
    - name: Get vault vaules
      uri:
        url: "{{vault_address_personal}}/v1/{{vault_path_personal}}/pg"
        method: GET
        validate_certs: no
        headers:
          X-Vault-Token: "36f8a4d9-64fd-a2ec-b45a-fd041f7e28df"
      register: pg_value

此任务失败:

TASK [Get vault vaules] *******************************************************************************************************************************
fatal: [localhost]: FAILED! => {"cache_control": "no-store", "changed": false, "connection": "close", "content": "{\"errors\":[\"permission denied\"]}\n", "content_length": "33", "content_type": "application/json", "date": "Wed, 27 Mar 2019 15:44:29 GMT", "failed": true, "json": {"errors": ["permission denied"]}, "msg": "Status code was not [200]: HTTP Error 403: Forbidden", "redirected": false, "status": 403, "url": "https://vserv-us.sos.ibm.com:8200/v1/generic/user/xyz/pg"}

但是,当我卷曲时,我得到了正确的价值:

curl --header "X-Vault-Token: 36f8a4d9-64fd-a2ec-b45a-fd041f7e28df" https://vserv-us.sos.ibm.com:8200/v1/generic/user/xyz/pg --insecure
{"request_id":"662fb6f5-5271-0551-de6b-cdf7d873f410","lease_id":"","renewable":false,"lease_duration":2764800,"data":{"password":"p0wn-me"},"wrap_info":null,"warnings":null,"auth":null}

看起来像 ansible 不考虑标题。这里有什么遗漏吗?

我也试过了:

"X-Vault-Token": "36f8a4d9-64fd-a2ec-b45a-fd041f7e28df"

我遇到了一些问题,它说标题可能会自动大写。所以也试过了

"X-VAULT-TOKEN": "36f8a4d9-64fd-a2ec-b45a-fd041f7e28df"

适用于 curl。还尝试了邮递员,并注意到邮递员中自动添加了一个授权标头,其值为Basic Og== 因此尝试添加该附加标头。但没有任何效果。

也尝试了 hash_vault 但得到了同样的错误:

- name: Return all secrets from a path
  hosts: localhost
  gather_facts: false
  tasks:
    - name: Return all secrets from a path
      debug:
        msg: "{{ lookup('hashi_vault', 'secret=generic/user/xyz/pg token=36f8a4d9-64fd-a2ec-b45a-fd041f7e28df url=https://vserv-us.sos.ibm.com:8200 validate_certs=False')}}"

【问题讨论】:

    标签: ansible hashicorp-vault ansible-vault


    【解决方案1】:

    经过大量调试后,我发现 url 格式存在一些问题。查看错误很容易假设标题有问题。当 url 本身错误时,我希望有一些更有用的错误,例如 404400

    【讨论】:

      猜你喜欢
      • 2023-03-22
      • 2017-09-15
      • 2020-11-23
      • 1970-01-01
      • 2015-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多