2016-08-10 2 views
0

В настоящее время я использую curl послать HTTP PUT к моему API:Преобразование локон API PUT для Ansbile Playbook

curl -k -s -u icinga:icinga -H 'Accept: application/json' -X PUT 'https://localhost:5665/v1/objects/hosts/dbserver.example.com' -d '{ "templates": [ "generic-host" ], "attrs": { "zone": "vienna", "address": "xxx.xx.xx.x", "check_command": "hostalive", "vars.os" : "Linux", "vars.agent" : "ssh" } }' | python -m json.tool 

Это работает как шарм.

Я пытаюсь преобразовать этот вызов api в незанятую пьесу. Я знаю, что возможно использовать URI-модуль, поэтому я попытался использовать его, но, возможно, что-то не настроено должным образом.

--- 
- name: Add new host 
    uri: 
     url: icinga2.example.com:5665/v1/objects/hosts/client.example.com 
     method: PUT 
     user: admin 
     password: xxxxxxx 
     body: { templates: [ "generic-host" ], attrs: { "zone": "vienna", 
"address": "172.x.x.xx", "check_command": "hostalive", "vars.os" : "Linux", "vars.agent" : "ssh" } } 
     headers: "application/json" 
    register: icinga_log 
    when: inventory_hostname in groups ['vienna'] 
    with_items: "{{ groups['icinga-monitoring'] }}" 
+0

Вы должны выделить код с Ctrl + K –

+0

Что происходит, когда вы пытаетесь пример у вас есть? –

ответ

1

Обычно вы можете следить за сообщениями об ошибках, которые ansible создает и исправляет ваш синтаксис.
Попробуйте начать с этой модификацией:

- name: Add new host 
    uri: 
    url: http://icinga2.example.com:5665/v1/objects/hosts/client.example.com 
    method: PUT 
    user: admin 
    password: xxxxxxx 
    body: '{ templates: [ "generic-host" ], attrs: { "zone": "vienna", "address": "172.x.x.xx", "check_command": "hostalive", "vars.os" : "Linux", "vars.agent" : "ssh" } }' 
    body_format: json 
    headers: 
     Content-Type: application/json 
Смежные вопросы