尝试在Marathon上删除应用程序时出现Ansible致命错误

时间:2016-10-12 18:13:02

标签: ansible mesos marathon

我正在尝试使用Ansible在马拉松上发布应用程序,然后我尝试使用我的Playbook删除相同的应用程序。一切正常,唯一的问题是我在运行我的Playbook for delete时遇到错误。

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":"Status code was not [201]: OK (92 bytes)",
  "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时,应用程序被删除。但唯一的问题是致命的:[localhost]:失败了! =>错误。有什么办法,我可以删除那个错误吗?

这是我的删除剧本:

---
- 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

1 个答案:

答案 0 :(得分:0)

我从您的剧本中看到的是,您正在使用它来删除马拉松上的应用程序,并且您已经在网址中提供了您的应用程序ID,我认为您不需要在您的剧本中使用正文。请删除正文和状态代码,我认为它应该可以正常工作。

原因是,你不需要身体就是你用它来删除。并且为了在马拉松上删除正在运行的应用程序,app id绰绰有余,您不需要传递app.json文件来删除应用程序。这将消除您所面临的致命错误。

希望这有帮助。