您如何将此curl
请求转换为ansible uri模块?
curl -G http://localhost:8086/query?u=admin&p=password \
--data-urlencode "q=SHOW databases"
我不知道如何放置--data-urlencode
部分
这是我到目前为止(不工作):
- name: Create influx users with POST
uri:
url: "http://localhost:8086/query/?u=admin&p=password"
method: GET
body: "q=SHOW databases"
我得到的错误是:
“错误”:“缺少必需参数\”q \“”
然而,以下工作:
- name: Create influx users with POST
uri:
url: "http://localhost:8086/ping"
method: GET
status_code: 204
编辑:最终工作解决方案
此工作示例将向您显示您的Influxdb的当前用户
- name: Create influx users with POST
uri:
url: "http://localhost:8086/query?q={{'SHOW USERS '|urlencode}}"
method: GET
user: admin
password: password
答案 0 :(得分:4)
Jinja中有一个urlencode过滤器......但还有另一个问题。 GET
请求没有正文;当你跑:
curl -G 'http://localhost:8086/query?u=admin&p=password' --data-urlencode "q=SHOW databases"
实际发生的是:
GET /query?u=admin&p=password&q=SHOW%20databases
所以你需要像这样重写你的任务:
- name: Create influx users with POST
uri:
url: "http://localhost:8086/query/?u=admin&p=password?{{ 'q=SHOW databases'|urlencode }}"
method: GET
答案 1 :(得分:0)
您可以使用POST方法将uri
的{{1}}设置为body_format
。
form-urlencoded