2017-04-12 6 views
0

Ich bin ein Netzwerk-Ingenieur, der die versehentliche Admin einer ansible-basierten Netzwerk-Automatisierungsplattform geworden ist und kämpfen mit meinem begrenzten Wissen, um einen API-Schlüssel zu einem Rest API Anfrage hinzuzufügen.Ansible Hinzufügen eines Rest-API-Schlüssels zu einer Get-Anfrage

ich einen Schlüssel zu verwenden, zum Beispiel gefälschte-api-Schlüssel gegeben habe: nach unten gehen rufen 1234567890 und ich habe versucht, es in den Header meiner API hinzugefügt -

- name: RETRIEVE SOMETHING 
    uri: 
    url: "https://host.name-api.com/service123/request?foo_bar={{ foobar}}" 
    method: GET 
    return_content: yes 
    body_format: json 
    headers: 
     Content-Type: "fake-api-key/1234567890" 
    register: foo 
    when: bar 

I bekomme einen "Fehler 401: Zugriff verweigert". Wenn ich es jedoch mit Postman testen, funktioniert es, so scheint es, dass das Format in der YAML-Datei nicht korrekt ist. Ich habe ein paar Variationen ausprobiert. Es ist wahrscheinlich etwas Einfaches.

Kann jemand, der ansible kennt, bitte identifizieren, was ich falsch mache?

Dank

+0

Ich schätze, Sie senden falsche Header. Ist es wirklich "Content-Type"? Vielleicht 'API-Token' oder sowas? –

+0

Oder vielleicht versuchen: 'HEADER_Authorization:" Fake-API-Taste/1234567890 ". – Zlemini

+0

Hallo, Leider hat dies auch nicht funktioniert. –

Antwort

0

Sorry für die Verzögerung bei der Beantwortung. So wie einige darauf hingewiesen haben, ist die richtige Antwort die folgende Syntax

- name: RETRIEVE THIS CHANGE DETAIL 
    uri: 
    url: "https://some-url/service123/request?variable={{var}}}" 
    method: GET 
    return_content: yes 
    body_format: json 
    headers: 
     fake-api-key: "1234567890" 
0

Wenn es in Postbote arbeitet, überprüfen Sie bitte den Header Sie in Postbote vorbei sind. Sie können auf den Code-Link im Postbotenanforderungs-Generator klicken, um alle Überschriften anzuzeigen. Einige sind auf der Registerkarte "Header" nicht sichtbar (z. B. cache-control). Fügen Sie alle Header zu Ihrer Anfrage hinzu.

+0

Hallo, habe ich gerade dies selbst realisiert (Total newby Postman). Mit dieser Methode kann ich sehe, wie der Code hinzugefügt wird, und ich kann auch von den debugs sehen, wenn ich das ansible-playbook benutze, interpretiert der Code ansible die YAML-Datei als. Also habe ich die Diskrepanz entdeckt, und ich glaube, dass dies gelöst werden könnte, aber wie es der Zufall wollte Es ist der Server, den ich anvisiere, ist unten, muss also warten, bis ich es testen kann, um die Reparatur zu bestätigen. Ich werde hier posten, wenn ich das getan habe. Danke –

+0

Mein Vergnügen :) Bitte lassen Sie mich wissen, wenn Sie weitere Hilfe benötigen. Markieren Sie dies auch als beantwortet, wenn alles gut funktioniert. –

0

Versuchen Sie, diese

headers: 
    fake-api-key: 1234567890 

Dies entspricht curl ist

curl -X GET 'https://your_url' -H "fake-api-key:1234567890" 
Verwandte Themen