gpt4 book ai didi

post - 如何使用 Ansible uri 模块将文件作为表单数据发布?

转载 作者:行者123 更新时间:2023-12-05 08:56:01 27 4
gpt4 key购买 nike

SonarQube 允许通过表单数据 POST 请求上传 profile.xml 文件,如下所示:

curl -u admin:admin -X POST http://sonar:9000/qualityprofiles/restore -F backup=@profile.xml

我正在尝试使用 uri 模块将此 curl 命令转换为 Ansible。不幸的是,我没有看到任何机会将 -F 表单数据选项和参数 backup 映射到 Ansible。这是我的尝试:

- name: create quality profile
uri:
url: "{{ sonar_api_url }}/qualityprofiles/restore"
method: POST
body: "{{ lookup('file', 'profile.xml') }}"
user: "{{ sonar_admin_user }}"
password: "{{ sonar_admin_pass }}"
force_basic_auth: "yes"
status_code: 200

我也试过这样的:

    body: "backup={{ lookup('file', 'profile.xml') }}"

或者像这样:

    body: "backup=profile.xml"

但都没有成功。我不断收到错误消息“必须提供备份文件”。有什么想法可以实现吗?

最佳答案

我还尝试了 Ansible uri 命令的许多选项,但没有成功,尽管我可以通过 uri 使用 API 来设置身份验证等。

我确实成功了,但是使用参数化的 shell: curl 命令:

设置变量:

vars:
sonar_api_url: "https://yoursonarqubeserver.com/api"
sonar_token: "YourSonarQubeApiTokenThatRequiresAdminRights"
sonar_profile: "YourSonarQubeProfileToLoad.xml"

任务:

- name: POST a SonarQube Profile xml via curl
shell: 'curl -X "POST" "{{ sonar_api_url }}/qualityprofiles/restore" \
-H "Content-Type: multipart/form-data; charset=utf-8; boundary=__X_PAW_BOUNDARY__" \
-u {{ sonar_token }}: \
-k \
--form backup=@{{ sonar_profile }}'

请注意,API token 通过 curl -u 作为用户名和 plank 密码传入。

我还有一个 sample GitHub repo有一个你可以引用的工作示例。

关于post - 如何使用 Ansible uri 模块将文件作为表单数据发布?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43042647/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com