Převést curl do Ansible

curl2code převádí curl příkazy na úlohy v Ansible playbooku pomocí modulu uri. Převod probíhá ve vašem prohlížeči přes WebAssembly pro úplné soukromí. Pro Python se podívejte na náš převodník curl do Pythonu. Pro PowerShell viz curl do PowerShellu. Níže jsou praktické příklady pro Ansible.

Jak zkopírovat curl z prohlížeče

  1. 1

    Otevřete DevTools

    Stiskněte F12 nebo Ctrl+Shift+I pro otevření vývojářských nástrojů prohlížeče.

  2. 2

    Přejděte na kartu Network

    Klikněte na kartu Network a proveďte akci, která vyvolá HTTP požadavek.

  3. 3

    Zkopírovat jako cURL

    Klikněte pravým tlačítkem na požadavek → CopyCopy as cURL. Poté jej vložte výše.

Často kladené dotazy

Co je modul Ansible uri?

Modul uri je vestavěný modul Ansible pro provádění HTTP požadavků v rámci playbooků. Zvládá GET, POST, PUT, DELETE s podporou těla v JSON, autentizací a validací stavových kódů. Není potřeba žádná další kolekce — je součástí ansible.builtin. curl2code generuje YAML úlohy Ansible s použitím modulu uri.

Modul uri vs get_url vs command s curl — co použít?

Modul uri je určen pro volání API — vrací parsovaný JSON a validuje stav. get_url slouží ke stahování souborů na disk. command: curl je antivzor (anti-pattern) — ztrácíte tím idempotenci a ošetření chyb. Pro interakci s HTTP API vždy preferujte uri. Pro automatizaci v Pythonu viz curl do Python.

Jak řešit autentizaci v Ansible?

Pro Bearer: headers: { Authorization: "Bearer {{ token }}" }. Pro Basic auth: použijte parametry url_username a url_password. Tajné údaje ukládejte do Ansible Vault: ansible-vault encrypt_string. Modul uri také podporuje force_basic_auth: yes pro preemptivní autentizaci.

Jak poslat formulářová data v Ansible?

Pro těla v JSON: body: {{ data | to_json }} s body_format: json. Pro form-urlencoded: body_format: form-urlencoded s body: key=value&key2=value2. Nahrávání multipart souborů vyžaduje modul community.general.uri nebo vlastní skript. curl2code řeší konverze -F.

Jak řešit chyby v HTTP úlohách Ansible?

Použijte register: result s failed_when: result.status != 200 pro vlastní podmínky selhání. Použijte ignore_errors: yes pro pokračování i při selhání. Modul uri standardně selže u kódů mimo 2xx — toto přebijete pomocí status_code: [200, 201, 404] pro přijetí více stavových kódů.

Jak parsovat JSON odpovědi v Ansible?

Modul uri automaticky parsuje JSON, pokud je nastaveno return_content: yes — přístup je přes result.json. Použijte filtry Jinja2: result.json.users | selectattr('active') | list. Pro složité transformace použijte set_fact s filtry. Výsledky si zaregistrujte pro použití v následných úlohách.

Jak nastavit timeouty a opakování v Ansible?

Nastavte timeout: 30 u úlohy uri pro timeout požadavku v sekundách. Pro opakování: použijte retries: 3 s delay: 5 a until: result.status == 200. Toto je vestavěný vzor smyčky pro opakování v Ansible — není třeba vlastní skriptování. Funguje s jakýmkoli modulem, nejen s uri.

Jak používat proxy s Ansible uri?

Nastavte prostředí (environment) u úlohy: environment: { http_proxy: "http://proxy:8080", https_proxy: "http://proxy:8080" }. Nebo nastavte globálně v ansible.cfg či group_vars. Modul uri respektuje standardní proměnné prostředí pro proxy. Pro výjimky (no-proxy): no_proxy: "localhost,.internal".

Jak odeslat POST požadavek s JSON tělem v Ansible?

Převeďte curl POST příkaz jako curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL do Ansible pomocí curl2code. Vygenerovaný kód používá ansible.builtin.uri: url: '{'{ url }'}' method: POST body_format: json body: '{'{ data }'}'. curl2code automaticky detekuje -d/--data přepínače s JSON obsahem a nastaví odpovídající Content-Type hlavičku v kódu pro modul uri.

Jak přidat autorizaci pomocí Bearer tokenu v Ansible?

Vložte curl -H "Authorization: Bearer YOUR_TOKEN" URL do curl2code a nástroj vygeneruje kód pro modul uri s autorizační hlavičkou: headers: Authorization: 'Bearer YOUR_TOKEN'. curl2code detekuje Bearer tokeny z přepínačů -H "Authorization: Bearer ..." i --oauth2-bearer. Pro Basic auth použijte -u user:pass.

Jak nastavit hlavičku Content-Type v Ansible?

curl2code převede curl -H "Content-Type: application/json" URL na kód pro modul uri se správnou hlavičkou: body_format: json. Pro data u -d curl standardně používá application/x-www-form-urlencoded; pro nahrávání formulářů přes -F používá multipart/form-data. curl2code mapuje každý z nich na správné API modulu uri.

Užitečné odkazy

Průvodci curl

Převést curl do jiných jazyků