Convertir curl en Ansible
curl2code convertit les commandes curl en tâches de playbook Ansible à l'aide du module uri. La conversion s'exécute dans votre navigateur via WebAssembly pour une confidentialité totale. Pour Python, consultez notre convertisseur curl vers Python. Pour PowerShell, voir curl vers PowerShell. Vous trouverez ci-dessous des exemples Ansible pratiques.
Comment copier curl depuis votre navigateur
- 1
Ouvrir les DevTools
Appuyez sur F12 ou Ctrl+Shift+I pour ouvrir les outils de développement de votre navigateur.
- 2
Aller dans l'onglet Network
Cliquez sur l'onglet Network et effectuez l'action qui déclenche la requête HTTP.
- 3
Copier comme cURL
Faites un clic droit sur la requête → Copy → Copy as cURL. Collez-la ensuite ci-dessus.
Foire Aux Questions
Qu'est-ce que le module Ansible uri ?
Le module uri est le module intégré d'Ansible pour effectuer des requêtes HTTP dans les playbooks. Il gère GET, POST, PUT, DELETE avec support du corps JSON, authentification et validation du code d'état. Aucune collection supplémentaire n'est nécessaire — il fait partie de ansible.builtin. curl2code génère du YAML de tâche Ansible utilisant le module uri.
module uri vs get_url vs commande avec curl — lequel utiliser ?
Le module uri est destiné aux appels d'API — il renvoie du JSON analysé et valide le statut. get_url sert à télécharger des fichiers sur le disque. command: curl est un anti-pattern — il fait perdre l'idempotence et la gestion des erreurs. Préférez toujours uri pour les interactions avec les API HTTP. Pour l'automatisation Python, voir curl vers Python.
Comment gérer l'authentification dans Ansible ?
Pour Bearer : headers: { Authorization: "Bearer {{ token }}" }. Pour l'authentification Basic : utilisez les paramètres url_username et url_password. Stockez les secrets dans Ansible Vault : ansible-vault encrypt_string. Le module uri prend également en charge force_basic_auth: yes pour une authentification préemptive.
Comment envoyer des données de formulaire avec Ansible ?
Pour les corps JSON : body: {{ data | to_json }} avec body_format: json. Pour form-urlencoded : body_format: form-urlencoded avec body: key=value&key2=value2. Les téléchargements de fichiers multipart nécessitent le module community.general.uri ou un script personnalisé. curl2code gère les conversions -F.
Comment gérer les erreurs dans les tâches HTTP Ansible ?
Utilisez register: result avec failed_when: result.status != 200 pour des conditions d'échec personnalisées. Utilisez ignore_errors: yes pour continuer en cas d'échec. Le module uri échoue sur les non-2xx par défaut — surchargez avec status_code: [200, 201, 404] pour accepter plusieurs codes d'état.
Comment analyser les réponses JSON dans Ansible ?
Le module uri analyse automatiquement le JSON quand return_content: yes est défini — accès via result.json. Utilisez les filtres Jinja2 : result.json.users | selectattr('active') | list. Pour des transformations complexes, utilisez set_fact avec des filtres. Enregistrez les résultats pour une utilisation dans les tâches suivantes.
Comment définir des délais d'attente et des tentatives dans Ansible ?
Définissez timeout: 30 sur la tâche uri pour le délai de requête en secondes. Pour les tentatives : utilisez retries: 3 avec delay: 5 et until: result.status == 200. C'est le modèle de boucle de tentative intégré d'Ansible — aucun script personnalisé n'est nécessaire. Fonctionne avec n'importe quel module, pas seulement uri.
Comment utiliser un proxy avec Ansible uri ?
Définissez l'environnement sur la tâche : environment: { http_proxy: "http://proxy:8080", https_proxy: "http://proxy:8080" }. Ou définissez-le globalement dans ansible.cfg ou group_vars. Le module uri respecte les variables d'environnement de proxy standard. Pour les exceptions no-proxy : no_proxy: "localhost,.internal".
Comment envoyer une requête POST avec un corps JSON dans Ansible ?
Convertissez une commande curl POST comme curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL en Ansible en utilisant curl2code. Le code généré utilise ansible.builtin.uri: url: '{'{ url }'}' method: POST body_format: json body: '{'{ data }'}'. curl2code détecte automatiquement les drapeaux -d/--data avec du contenu JSON et définit l'en-tête Content-Type approprié dans le code du module uri.
Comment ajouter une autorisation par jeton Bearer dans Ansible ?
Passez curl -H "Authorization: Bearer YOUR_TOKEN" URL à curl2code et il générera le code du module uri avec l'en-tête d'authentification : headers: Authorization: 'Bearer YOUR_TOKEN'. curl2code détecte les jetons Bearer à partir des drapeaux -H "Authorization: Bearer ..." et --oauth2-bearer. Pour le Basic auth, utilisez -u user:pass.
Comment définir l''en-tête Content-Type dans Ansible ?
curl2code convertit curl -H "Content-Type: application/json" URL en code du module uri avec l'en-tête approprié : body_format: json. Pour les données -d, curl utilise par défaut application/x-www-form-urlencoded ; pour les téléchargements de formulaires -F, il utilise multipart/form-data. curl2code associe chacun à l'API du module uri correcte.
Liens utiles
Guides curl
Codes d'erreur curl
Recherchez n'importe quel code de sortie curl — causes, corrections et astuces de débogage.
Télécharger des fichiers avec curl
Enregistrez des fichiers avec -o, -O, suivez les redirections, reprenez les téléchargements et plus encore.
SSL, TLS et proxy
Configurez les certificats, les versions TLS, les proxys HTTP/SOCKS et le DNS personnalisé.