Converter curl para Ansible

O curl2code converte comandos curl para tarefas de playbook do Ansible usando o módulo uri. A conversão é executada no seu navegador via WebAssembly para total privacidade. Para Python, confira nosso conversor de curl para Python. Para PowerShell, veja curl para PowerShell. Abaixo estão exemplos práticos de Ansible.

Como copiar o curl do seu navegador

  1. 1

    Abra o DevTools

    Pressione F12 ou Ctrl+Shift+I para abrir as ferramentas de desenvolvedor do seu navegador.

  2. 2

    Vá para a aba Network

    Clique na aba Network e realize a ação que dispara a requisição HTTP.

  3. 3

    Copiar como cURL

    Clique com o botão direito na requisição → CopyCopy as cURL. Depois cole acima.

Perguntas Frequentes

O que é o módulo uri do Ansible?

O módulo uri é o módulo integrado do Ansible para fazer requisições HTTP dentro de playbooks. Ele lida com GET, POST, PUT, DELETE com suporte a corpo JSON, autenticação e validação de código de status. Nenhuma coleção adicional é necessária — faz parte do ansible.builtin. O curl2code gera YAML de tarefa Ansible usando o módulo uri.

Módulo uri vs get_url vs comando com curl — qual usar?

O módulo uri é para chamadas de API — ele retorna JSON analisado e valida o status. get_url é para baixar arquivos para o disco. command: curl é um anti-padrão — perde a idempotência e o tratamento de erros. Sempre prefira o uri para interações com APIs HTTP. Para automação em Python, veja curl para Python.

Como lidar com autenticação no Ansible?

Para Bearer: headers: { Authorization: "Bearer {{ token }}" }. Para autenticação Basic: use os parâmetros url_username e url_password. Armazene segredos no Ansible Vault: ansible-vault encrypt_string. O módulo uri também suporta force_basic_auth: yes para autenticação preemptiva.

Como enviar dados de formulário com o Ansible?

Para corpos JSON: body: {{ data | to_json }} com body_format: json. Para form-urlencoded: body_format: form-urlencoded com body: key=value&key2=value2. Uploads de arquivos multipart requerem o módulo community.general.uri ou um script personalizado. O curl2code lida com conversões -F.

Como lidar com erros em tarefas HTTP do Ansible?

Use register: result com failed_when: result.status != 200 para condições de falha personalizadas. Use ignore_errors: yes para continuar em caso de falha. O módulo uri falha em não-2xx por padrão — substitua com status_code: [200, 201, 404] para aceitar múltiplos códigos de status.

Como analisar respostas JSON no Ansible?

O módulo uri analisa automaticamente o JSON quando return_content: yes está definido — acesse via result.json. Use filtros Jinja2: result.json.users | selectattr('active') | list. Para transformações complexas, use set_fact com filtros. Registre os resultados para uso em tarefas subsequentes.

Como definir timeouts e retries no Ansible?

Defina timeout: 30 na tarefa uri para o timeout da requisição em segundos. Para retries: use retries: 3 com delay: 5 e until: result.status == 200. Este é o padrão de loop de retry integrado do Ansible — sem necessidade de scripts personalizados. Funciona com qualquer módulo, não apenas o uri.

Como usar um proxy com o Ansible uri?

Defina o ambiente na tarefa: environment: { http_proxy: "http://proxy:8080", https_proxy: "http://proxy:8080" }. Ou defina globalmente no ansible.cfg ou group_vars. O módulo uri respeita as variáveis de ambiente de proxy padrão. Para exceções no-proxy: no_proxy: "localhost,.internal".

Como enviar uma requisição POST com corpo JSON em Ansible?

Converta um comando curl POST como curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL para Ansible usando o curl2code. O código gerado usa ansible.builtin.uri: url: '{'{ url }'}' method: POST body_format: json body: '{'{ data }'}'. O curl2code detecta automaticamente as flags -d/--data com conteúdo JSON e define o cabeçalho Content-Type apropriado no código do módulo uri.

Como adicionar autorização com token Bearer em Ansible?

Passe curl -H "Authorization: Bearer YOUR_TOKEN" URL para o curl2code e ele gerará o código do módulo uri com o cabeçalho de autenticação: headers: Authorization: 'Bearer YOUR_TOKEN'. O curl2code detecta tokens Bearer tanto de flags -H "Authorization: Bearer ..." quanto de --oauth2-bearer. Para Basic auth, use -u user:pass.

Como definir o cabeçalho Content-Type em Ansible?

O curl2code converte curl -H "Content-Type: application/json" URL para o código do módulo uri com o cabeçalho correto: body_format: json. Para dados -d, o curl define por padrão application/x-www-form-urlencoded; para uploads de formulário com -F, ele usa multipart/form-data. O curl2code mapeia cada um para a API correta do módulo uri.

Links úteis

Guias do curl

Converter curl para outras linguagens