Convertir curl a Ansible
curl2code convierte comandos curl a tareas de playbook de Ansible utilizando el módulo uri. La conversión se ejecuta en su navegador a través de WebAssembly para una privacidad total. Para Python, consulte nuestro conversor de curl a Python. Para PowerShell, vea curl a PowerShell. A continuación se presentan ejemplos prácticos de Ansible.
Cómo copiar curl desde su navegador
- 1
Abrir DevTools
Presione F12 o Ctrl+Shift+I para abrir las herramientas de desarrollo de su navegador.
- 2
Vaya a la pestaña Network
Haga clic en la pestaña Network y realice la acción que activa la solicitud HTTP.
- 3
Copiar como cURL
Haga clic derecho en la solicitud → Copy → Copy as cURL. Luego péguelo arriba.
Preguntas frecuentes
¿Qué es el módulo uri de Ansible?
El módulo uri es el módulo integrado de Ansible para realizar peticiones HTTP dentro de playbooks. Maneja GET, POST, PUT, DELETE con soporte para cuerpo JSON, autenticación y validación de códigos de estado. No se necesita ninguna colección adicional — es parte de ansible.builtin. curl2code genera YAML de tareas de Ansible usando el módulo uri.
Módulo uri vs get_url vs command con curl — ¿cuál usar?
El módulo uri es para llamadas a API — devuelve JSON parseado y valida el estado. get_url es para descargar archivos al disco. command: curl es un antipatrón — pierde la idempotencia y el manejo de errores. Prefiere siempre uri para interacciones con APIs HTTP. Para automatización con Python, consulta curl a Python.
¿Cómo manejar la autenticación en Ansible?
Para Bearer: headers: { Authorization: "Bearer {{ token }}" }. Para Basic auth: usa los parámetros url_username y url_password. Almacena secretos en Ansible Vault: ansible-vault encrypt_string. El módulo uri también soporta force_basic_auth: yes para autenticación preventiva.
¿Cómo enviar datos de formulario con Ansible?
Para cuerpos JSON: body: {{ data | to_json }} con body_format: json. Para form-urlencoded: body_format: form-urlencoded con body: key=value&key2=value2. Las subidas de archivos multipart requieren el módulo community.general.uri o un script personalizado. curl2code maneja las conversiones de -F.
¿Cómo manejar errores en tareas HTTP de Ansible?
Usa register: result con failed_when: result.status != 200 para condiciones de fallo personalizadas. Usa ignore_errors: yes para continuar en caso de fallo. El módulo uri falla en respuestas que no sean 2xx por defecto — anúlalo con status_code: [200, 201, 404] para aceptar múltiples códigos de estado.
¿Cómo parsear respuestas JSON en Ansible?
El módulo uri parsea automáticamente JSON cuando se establece return_content: yes — accede a través de result.json. Usa filtros Jinja2: result.json.users | selectattr('active') | list. Para transformaciones complejas, usa set_fact con filtros. Registra los resultados para usarlos en tareas posteriores.
¿Cómo establecer tiempos de espera y reintentos en Ansible?
Establece timeout: 30 en la tarea uri para el tiempo de espera de la petición en segundos. Para reintentos: usa retries: 3 con delay: 5 y until: result.status == 200. Este es el patrón de bucle de reintento integrado de Ansible — no se requiere scripting personalizado. Funciona con cualquier módulo, no solo con uri.
¿Cómo usar un proxy con Ansible uri?
Establece el entorno en la tarea: environment: { http_proxy: "http://proxy:8080", https_proxy: "http://proxy:8080" }. O establécelo globalmente en ansible.cfg o group_vars. El módulo uri respeta las variables de entorno de proxy estándar. Para excepciones de no-proxy: no_proxy: "localhost,.internal".
¿Cómo enviar una solicitud POST con un cuerpo JSON en Ansible?
Convierte un comando curl POST como curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL a Ansible usando curl2code. El código generado utiliza ansible.builtin.uri: url: '{'{ url }'}' method: POST body_format: json body: '{'{ data }'}'. curl2code detecta automáticamente los flags -d/--data con contenido JSON y establece el encabezado Content-Type adecuado en el código del módulo uri.
¿Cómo añadir autorización con token Bearer en Ansible?
Pasa curl -H "Authorization: Bearer YOUR_TOKEN" URL a curl2code y este generará código del módulo uri con el encabezado de autorización: headers: Authorization: 'Bearer YOUR_TOKEN'. curl2code detecta tokens Bearer tanto en los flags -H "Authorization: Bearer ..." como en --oauth2-bearer. Para Basic auth, utiliza -u user:pass.
¿Cómo configurar el encabezado Content-Type en Ansible?
curl2code convierte curl -H "Content-Type: application/json" URL a código del módulo uri con el encabezado correcto: body_format: json. Para los datos de -d, curl utiliza por defecto application/x-www-form-urlencoded; para subidas de formularios con -F, utiliza multipart/form-data. curl2code mapea cada uno a la API del módulo uri correcta.
Enlaces útiles
Guías de curl
Códigos de error de curl
Busca cualquier código de salida de curl — causas, soluciones y consejos de depuración.
Descargar archivos con curl
Guarda archivos con -o, -O, sigue redirecciones, reanuda descargas y más.
SSL, TLS y proxy
Configura certificados, versiones de TLS, proxies HTTP/SOCKS y DNS personalizado.