Converti curl in Ansible

curl2code converte i comandi curl in task di playbook Ansible utilizzando il modulo uri. La conversione avviene nel tuo browser tramite WebAssembly per la massima privacy. Per Python, consulta il nostro convertitore da curl a Python. Per PowerShell, vedi da curl a PowerShell. Di seguito sono riportati esempi pratici in Ansible.

Come copiare curl dal tuo browser

  1. 1

    Apri DevTools

    Premi F12 o Ctrl+Shift+I per aprire gli strumenti per sviluppatori del browser.

  2. 2

    Vai alla scheda Network

    Fai clic sulla scheda Network ed esegui l'azione che attiva la richiesta HTTP.

  3. 3

    Copia come cURL

    Fai clic con il tasto destro sulla richiesta → CopiaCopia come cURL. Quindi incollalo sopra.

Domande Frequenti

Cos'è il modulo uri di Ansible?

Il modulo uri è il modulo integrato di Ansible per effettuare richieste HTTP all'interno dei playbook. Gestisce GET, POST, PUT, DELETE con supporto per il corpo JSON, l'autenticazione e la validazione del codice di stato. Non è necessaria alcuna collection aggiuntiva: fa parte di ansible.builtin. curl2code genera task YAML di Ansible utilizzando il modulo uri.

Modulo uri vs get_url vs comando con curl: quale usare?

Il modulo uri è per le chiamate API: restituisce JSON analizzato e valida lo stato. get_url è per scaricare file su disco. command: curl è un anti-pattern: fa perdere l'idempotenza e la gestione degli errori. Preferisci sempre uri per le interazioni con le API HTTP. Per l'automazione Python, vedi da curl a Python.

Come gestire l'autenticazione in Ansible?

Per Bearer: headers: { Authorization: "Bearer {{ token }}" }. Per l'autenticazione Basic: usa i parametri url_username e url_password. Memorizza i segreti in Ansible Vault: ansible-vault encrypt_string. Il modulo uri supporta anche force_basic_auth: yes per l'autenticazione preventiva.

Come inviare dati modulo con Ansible?

Per i corpi JSON: body: {{ data | to_json }} con body_format: json. Per form-urlencoded: body_format: form-urlencoded con body: key=value&key2=value2. I caricamenti di file multipart richiedono il modulo community.general.uri o uno script personalizzato. curl2code gestisce le conversioni -F.

Come gestire gli errori nei task HTTP di Ansible?

Usa register: result con failed_when: result.status != 200 per condizioni di fallimento personalizzate. Usa ignore_errors: yes per continuare in caso di fallimento. Il modulo uri fallisce su non-2xx per impostazione predefinita: sovrascrivi con status_code: [200, 201, 404] per accettare più codici di stato.

Come analizzare le risposte JSON in Ansible?

Il modulo uri analizza automaticamente il JSON quando return_content: yes è impostato: accedi tramite result.json. Usa i filtri Jinja2: result.json.users | selectattr('active') | list. Per trasformazioni complesse, usa set_fact con i filtri. Registra i risultati per l'uso nei task successivi.

Come impostare timeout e retry in Ansible?

Imposta timeout: 30 nel task uri per il timeout della richiesta in secondi. Per i retry: usa retries: 3 con delay: 5 e until: result.status == 200. Questo è il pattern del ciclo di retry integrato di Ansible: non è necessario alcuno script personalizzato. Funziona con qualsiasi modulo, non solo uri.

Come usare un proxy con Ansible uri?

Imposta l'ambiente nel task: environment: { http_proxy: "http://proxy:8080", https_proxy: "http://proxy:8080" }. Oppure impostalo globalmente in ansible.cfg o group_vars. Il modulo uri rispetta le variabili d'ambiente proxy standard. Per le eccezioni no-proxy: no_proxy: "localhost,.internal".

Come inviare una richiesta POST con un corpo JSON in Ansible?

Converti un comando curl POST come curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL in Ansible usando curl2code. Il codice generato utilizza ansible.builtin.uri: url: '{'{ url }'}' method: POST body_format: json body: '{'{ data }'}'. curl2code rileva automaticamente i flag -d/--data con contenuto JSON e imposta l'intestazione Content-Type appropriata nel codice del modulo uri.

Come aggiungere l''autorizzazione con Bearer token in Ansible?

Passa curl -H "Authorization: Bearer YOUR_TOKEN" URL a curl2code e genererà il codice del modulo uri con l'intestazione di autenticazione: headers: Authorization: 'Bearer YOUR_TOKEN'. curl2code rileva i Bearer token sia dai flag -H "Authorization: Bearer ..." che --oauth2-bearer. Per la Basic auth, usa -u user:pass.

Come impostare l''intestazione Content-Type in Ansible?

curl2code converte curl -H "Content-Type: application/json" URL in codice del modulo uri con l'intestazione corretta: body_format: json. Per i dati -d, curl utilizza come predefinito application/x-www-form-urlencoded; per i caricamenti di moduli -F, utilizza multipart/form-data. curl2code mappa ciascuno alla corretta API del modulo uri.

Link utili

Guide curl

Converti curl in altri linguaggi