使用 Ansible 删除 Marathon 上的应用时出现致命错误

我正在尝试使用 Ansible 在 Marathon 上发布一个应用,然后使用我的 Playbook 删除同一个应用。一切正常工作,唯一的问题是在运行删除 Playbook 时出现以下错误。

fatal: [localhost]: FAILED! =>
{
  "cache_control":"no-cache, no-store, must-revalidate",
  "changed":false,
  "connection":"close",
  "content":"{\"version\":\"2016-10-12T16:51:47.641Z\",\"deploymentId\":\"46edbf12-e837-45c5-9360-9824a4143868\"}",
  "content_length":"92",
  "content_type":"application/json; qs=2",
  "date":"Wed, 12 Oct 2016 16:51:02 GMT",
  "expires":"0",
  "failed":true,
  "json":{
    "deploymentId":"46edbf12-e837-45c5-9360-9824a4143868",
    "version":"2016-10-12T16:51:47.641Z"
  },
  "msg":"状态码不是 [201]: OK (92 字节)",
  "pragma":"no-cache",
  "redirected":false,
  "server":"openresty/1.7.10.2",
  "status":200,
  "url":"http://mywebsite.com:19092/v2/apps/demoansible",
  "x_marathon_leader":"http://10.201.160.1:31392"
}

如上所述,JSON 显示成功响应并且状态为 200,当我在 Marathon UI 上检查时,应用已被删除。但是唯一的问题是 fatal:[ localhost]: FAILED! => 错误。有没有办法我可以删除这个错误?

这是我的删除 Playbook:

---
- hosts: local
  gather_facts: false
  tasks:
    -
      uri:
        body: "{{ lookup('file','app.json') }}"
        body_format: json
        force_basic_auth: true
        method: DELETE
        password: password
        status_code: 201
        url: "url/v2/apps/demoansible"
        user: user1
点赞
用户4883694
用户4883694

从你的剧本中我看到,你使用它来删除马拉松中的一个应用,你已经在URL中给出了你的应用id,我认为你不需要在剧本中包含body。请删除body和状态码,我认为这样应该可以工作正常。

之所以不需要body是因为你要删除它。对于删除Marathon上正在运行的应用程序,应用ID就已经足够了,你不需要传递你的app.json文件以删除应用程序。这将消除你所面临的致命错误。

希望这有所帮助。

2016-10-12 20:13:17