【发布时间】:2019-05-30 12:06:27
【问题描述】:
ansible 2.7,对 curl 的相同调用工作正常>
curl -X POST " -H "accept: application/json" -H "Content-Type: application/json" -d "{ \"hostname\": \"string\", \"name\": \"string\", \"service\": \"string\", \"extra\": {}, \"args\": [ \"string\" ], \"module\": \"string\", \"filename\": \"string\", \"pathname\": \"string\", \"requestid\": \"string\", \"message\": \"string\", \"funcname\": \"string\", \"levelname\": \"INFO\", \"lineno\": 0}"
uri 模块给我以下错误:
[警告]:提供的主机列表为空,只有 localhost 可用。注意 2 隐式 localhost 不匹配 'all' 3 4 5 PLAY [update log via api] ****************************** ****************************** 20:37:30 6 7 任务 [uri] ************* ****************************************************** ****** 20:37:30 8 [弃用警告]:不推荐通过 HEADER_* 提供标头。请使用 9 个标头为请求提供标头。此功能将在 10 版本 2.9 中删除。可以通过在 ansible.cfg 中设置 11 deprecation_warnings=False 来禁用弃用警告。 12 致命:[本地主机]:失败! => {"access_control_allow_origin": "*", "changed": false, "connection": "Upgrade, close", "content": "{\"message\": \"输入有效载荷验证失败\", \"错误\": {\"\": \"u'{\n \"hostname\": \"string\",\n \"name\": \"string\",\n \"service\" : \"string\",\n \"extra\": {},\n \"args\": [\n \"string\"\n ],\n \"module\": \"string\ ",\n \"filename\": \"string\",\n \"pathname\": \"string\",\n \"requestid\": \"string\",\n \"message\ ": \"string\",\n \"funcname\": \"string\",\n \"levelname\": \"INFO\",\n \"lineno\": 0\n}' 是not of type u'object'\"}}\n", "content_length": "469", "content_type": "application/json", "date": "Thu, 30 May 2019 01:37:35 GMT" , "json": {"errors": {"": "u'{\n \"hostname\": \"string\",\n \"name\": \"string\",\n \" service\": \"string\",\n \"extra\": {},\n \"args\": [\n \"string\"\n ],\... 13 14 PLAY RECAP *** ****************************************************** ****************** 20:37:37 15 localhost : ok=0 changed=0 unreachable=0 failed=1
---
- hosts: localhost
name: update log via api
gather_facts: false
vars_files:
vars.yml
vars:
tasks:
- uri:
url: "{{ api_log_url }}"
method: POST
force_basic_auth: yes
url_username: "{{ api_log_user }}"
url_password: "{{ api_log_password }}"
body_format: json
return_content: yes
HEADER_Content-Type: "application/json"
validate_certs: false
body: "{{ lookup('file','create_body.json') | to_json }}"
create_body.json:
{
"hostname": "string",
"name": "string",
"service": "string",
"extra": {},
"args": [
"string"
],
"module": "string",
"filename": "string",
"pathname": "string",
"requestid": "string",
"message": "string",
"funcname": "string",
"levelname": "INFO",
"lineno": 0
}
【问题讨论】:
-
最重要的是:您为什么不听从它的建议并停止在标题中使用已弃用的语法?其次,作为“停止让我的眼睛流血”,您应该为您的
curl正文使用单引号,因为整个有效负载是文字:-d '{"hostname": "string", etc etc}' -
另外,如果您没有截断您的错误消息,我们也许可以为您提供进一步的帮助,但我们在这里
标签: ansible