【问题标题】:How to pass parameters to ansible uri module?如何将参数传递给ansible uri模块?
【发布时间】:2020-08-31 02:50:31
【问题描述】:

我正在尝试在 ansible 中执行此操作

curl 'http://localhost:8080/user/admin/descriptorByName/jenkins.security.ApiTokenProperty/generateNewToken' --data 'newTokenName=adminToken' --user '{{ jenkins_admin_username }}:{{ jenkins_admin_password }}' -c cookies.txt

我不确定如何使用 ansible 2.9.6 将这些值传递给 uri 模块

newTokenName=adminToken' --user {{ jenkins_admin_username }}:{{ jenkins_admin_password }}

- name: get token
  uri:
    url: "http://localhost:8080/user/admin/descriptorByName/jenkins.security.ApiTokenProperty/generateNewToken"
    method: POST
    return_content: yes
    body: "newTokenName=adminToken=user={{ jenkins_admin_username }}:{{ jenkins_admin_password }}"
    headers:
      Cookie: "{{ jenkins_crumb.set_cookie }}"

【问题讨论】:

    标签: curl ansible uri ansible-2.x


    【解决方案1】:

    请参考https://docs.ansible.com/ansible/latest/modules/uri_module.html 我的答案。

    首先newTokenName=adminToken,您正在寻找body 参数:

    body:
      newTokenName: adminToken
    

    您似乎正在为凭据传递基本身份验证,因此您可能正在寻找 uri 模块的 url_usernameurl_password 参数:

    url_username: "{{ jenkins_admin_username }}"
    url_password: "{{ jenkins_admin_password }}"
    

    将所有这些放在一起,这样的事情应该可以工作:

    - name: get token
      uri:
        url: "http://localhost:8080/user/admin/descriptorByName/jenkins.security.ApiTokenProperty/generateNewToken"
        method: POST
        return_content: yes
        body:
          newTokenName: adminToken
        url_username: "{{ jenkins_admin_username }}"
        url_password: "{{ jenkins_admin_password }}"
        headers:
          Cookie: "{{ jenkins_crumb.set_cookie }}"
    

    【讨论】:

    • 请考虑 editing your answer 为您的 yaml 块使用语法高亮
    • 我以前不知道代码块中的语法高亮;好电话,谢谢@mdaniel
    猜你喜欢
    • 2017-12-01
    • 2013-12-20
    • 1970-01-01
    • 2011-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-30
    相关资源
    最近更新 更多