使用Ansible uri模块进行API调用

时间:2018-07-06 16:53:33

标签: curl ansible credentials

我正在尝试使用a microsoft guide模块与Ansible uri进行通信。

这是我试图从Ansible使用的DeployHQ文档示例:

- uri:
    url: https://cepr.deployhq.com/projects/cepr-live/servers
    user: me@myemail.org:secret_api_key
    body_format: json
    method: GET
    headers:
      Content-Type: application/json
      Accept: application/json
    deployment:
      parent_identifier: id
      start_revision: my_start_rev
      end_revision: my_end_rev
      mode: queue
      copy_config_files: 1
      email_notify: 1
    return_content: yes

这是我通过Ansible发送的方式:

force_basic_auth: yes

问题是我收到了403响应(访问被拒绝),因此与--user参数有关。我从cli发送cURL请求完全没有问题,所以传递给--user的用户凭据是正确的。 DeployHQ从他们的日志中可以看到json请求看起来正确,但是未通过身份验证(显然出于安全原因,他们无法查看标头)。

它必须很简单,但是我花了整个下午时间,尝试了多种用户组合:(包括和用户:和密码:用于api键)-在正文中:在正文中:(如上所述)。 DeployHQ支持人员说他们使用基本的http_auth,因此我尝试了以下参数的组合:

- uri:
    url: https://cepr.deployhq.com/projects/cepr-live/servers
    user: me@myemail.org
    password: secret_api_key
    force_basic_auth: yes
    ....

我也尝试过在URL中传递--user。根本没有运气。

还有其他人这样做吗?!

已解决...

{{1}}

全部处于同一级别。.非常感谢您提出的评论,让我回到了密码字段。

2 个答案:

答案 0 :(得分:2)

根据ansible uri documentation,还有一个password字段。看起来user应该只是用户名。您尝试过类似的事情吗?

- uri:
    url: https://cepr.deployhq.com/projects/cepr-live/servers
    user: me@myemail.org
    password: secret_api_key
    body_format: json
    method: GET
    headers:
      Content-Type: application/json
      Accept: application/json
    deployment:
      parent_identifier: id
      start_revision: my_start_rev
      end_revision: my_end_rev
      mode: queue
      copy_config_files: 1
      email_notify: 1
    return_content: yes

答案 1 :(得分:0)

设置 force_basic_auth

df['FROM_TO'] = df['FROM'] + df['TO']

df['COUNT'] = 1

df.groupby(['FROM_TO'])['COUNT'].sum()