Μετατροπή curl σε Ansible
Το curl2code μετατρέπει εντολές curl σε εργασίες Ansible playbook χρησιμοποιώντας το module uri. Η μετατροπή εκτελείται στο πρόγραμμα περιήγησής σας μέσω WebAssembly για πλήρη ιδιωτικότητα. Για Python, δείτε τον μετατροπέα curl σε Python. Για PowerShell, δείτε το curl σε PowerShell. Παρακάτω υπάρχουν πρακτικά παραδείγματα Ansible.
Πώς να αντιγράψετε το curl από το πρόγραμμα περιήγησής σας
- 1
Ανοίξτε τα DevTools
Πατήστε F12 ή Ctrl+Shift+I για να ανοίξετε τα εργαλεία προγραμματιστή του προγράμματος περιήγησης.
- 2
Μεταβείτε στην καρτέλα Network
Κάντε κλικ στην καρτέλα Network και εκτελέστε την ενέργεια που ενεργοποιεί το αίτημα HTTP.
- 3
Αντιγραφή ως cURL
Κάντε δεξί κλικ στο αίτημα → Copy → Copy as cURL. Στη συνέχεια, επικολλήστε το παραπάνω.
Συχνές Ερωτήσεις
Τι είναι το Ansible uri module;
Το uri module είναι το ενσωματωμένο module του Ansible για την πραγματοποίηση αιτημάτων HTTP μέσα σε playbooks. Χειρίζεται GET, POST, PUT, DELETE με υποστήριξη σώματος JSON, πιστοποίηση και επικύρωση κωδικού κατάστασης. Δεν απαιτείται πρόσθετη συλλογή — αποτελεί μέρος του ansible.builtin. Το curl2code παράγει Ansible task YAML χρησιμοποιώντας το uri module.
uri module vs get_url vs command με curl — ποιο να χρησιμοποιήσω;
Το uri module είναι για κλήσεις API — επιστρέφει αναλυμένο JSON και επικυρώνει την κατάσταση. Το get_url είναι για τη λήψη αρχείων στο δίσκο. Το command: curl είναι αντι-πρότυπο (anti-pattern) — χάνει την ιδιότητα του idempotency και το χειρισμό σφαλμάτων. Προτιμάτε πάντα το uri για αλληλεπιδράσεις με HTTP APIs. Για αυτοματισμό Python, δείτε curl σε Python.
Πώς γίνεται ο χειρισμός της πιστοποίησης στο Ansible;
Για Bearer: headers: { Authorization: "Bearer {{ token }}" }. Για Basic auth: χρησιμοποιήστε τις παραμέτρους url_username και url_password. Αποθηκεύστε μυστικά στο Ansible Vault: ansible-vault encrypt_string. Το uri module υποστηρίζει επίσης το force_basic_auth: yes για προληπτική πιστοποίηση.
Πώς στέλνω δεδομένα φόρμας με το Ansible;
Για σώματα JSON: body: {{ data | to_json }} με body_format: json. Για form-urlencoded: body_format: form-urlencoded με body: key=value&key2=value2. Οι multipart μεταφορτώσεις αρχείων απαιτούν το module community.general.uri ή ένα προσαρμοσμένο script. Το curl2code χειρίζεται τις μετατροπές -F.
Πώς γίνεται ο χειρισμός σφαλμάτων σε εργασίες HTTP του Ansible;
Χρησιμοποιήστε το register: result με το failed_when: result.status != 200 για προσαρμοσμένες συνθήκες αποτυχίας. Χρησιμοποιήστε το ignore_errors: yes για να συνεχίσετε σε περίπτωση αποτυχίας. Το uri module αποτυγχάνει σε αποκρίσεις που δεν είναι 2xx από προεπιλογή — παρακάμψτε το με το status_code: [200, 201, 404] για να αποδεχτείτε πολλαπλούς κωδικούς κατάστασης.
Πώς γίνεται η ανάλυση αποκρίσεων JSON στο Ansible;
Το uri module αναλύει αυτόματα το JSON όταν έχει οριστεί το return_content: yes — πρόσβαση μέσω του result.json. Χρησιμοποιήστε φίλτρα Jinja2: result.json.users | selectattr('active') | list. Για σύνθετους μετασχηματισμούς, χρησιμοποιήστε το set_fact με φίλτρα. Καταχωρίστε τα αποτελέσματα για χρήση σε επόμενες εργασίες.
Πώς ορίζονται τα χρονικά όρια και οι επαναλήψεις στο Ansible;
Ορίστε το timeout: 30 στην εργασία uri για το χρονικό όριο του αιτήματος σε δευτερόλεπτα. Για επαναλήψεις: χρησιμοποιήστε το retries: 3 με delay: 5 και until: result.status == 200. Αυτό είναι το ενσωματωμένο πρότυπο βρόχου επανάληψης του Ansible — δεν απαιτείται προσαρμοσμένο scripting. Λειτουργεί με οποιοδήποτε module, όχι μόνο με το uri.
Πώς χρησιμοποιείται ένας proxy με το Ansible uri;
Ορίστε το περιβάλλον στην εργασία: environment: { http_proxy: "http://proxy:8080", https_proxy: "http://proxy:8080" }. Ή ορίστε το καθολικά στο ansible.cfg ή στο group_vars. Το uri module σέβεται τις τυπικές μεταβλητές περιβάλλοντος proxy. Για εξαιρέσεις no-proxy: no_proxy: "localhost,.internal".
Πώς να στείλετε ένα POST αίτημα με JSON σώμα στο Ansible;
Μετατρέψτε μια curl POST εντολή όπως curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL σε Ansible χρησιμοποιώντας το curl2code. Ο παραγόμενος κώδικας χρησιμοποιεί ansible.builtin.uri: url: '{'{ url }'}' method: POST body_format: json body: '{'{ data }'}'. Το curl2code εντοπίζει αυτόματα τα -d/--data flags με JSON περιεχόμενο και ορίζει την κατάλληλη Content-Type κεφαλίδα στον κώδικα του uri module.
Πώς να προσθέσετε εξουσιοδότηση Bearer token στο Ansible;
Περάστε το curl -H "Authorization: Bearer YOUR_TOKEN" URL στο curl2code και αυτό θα δημιουργήσει κώδικα uri module με την κεφαλίδα εξουσιοδότησης: headers: Authorization: 'Bearer YOUR_TOKEN'. Το curl2code εντοπίζει τα Bearer tokens τόσο από τα -H "Authorization: Bearer ..." όσο και από τα --oauth2-bearer flags. Για Basic auth, χρησιμοποιήστε το -u user:pass.
Πώς να ορίσετε την κεφαλίδα Content-Type στο Ansible;
Το curl2code μετατρέπει το curl -H "Content-Type: application/json" URL σε κώδικα uri module με τη σωστή κεφαλίδα: body_format: json. Για δεδομένα -d, το curl χρησιμοποιεί από προεπιλογή το application/x-www-form-urlencoded· για μεταφορτώσεις φορμών -F, χρησιμοποιεί το multipart/form-data. Το curl2code αντιστοιχίζει το καθένα στο σωστό uri module API.
Χρήσιμοι σύνδεσμοι
Οδηγοί curl
Κωδικοί σφαλμάτων curl
Αναζητήστε οποιονδήποτε κωδικό εξόδου curl — αιτίες, λύσεις και συμβουλές αποσφαλμάτωσης.
Λήψη αρχείων με curl
Αποθηκεύστε αρχεία με -o, -O, ακολουθήστε ανακατευθύνσεις, συνεχίστε λήψεις και άλλα.
SSL, TLS & Proxy
Ρυθμίστε πιστοποιητικά, εκδόσεις TLS, HTTP/SOCKS proxy και προσαρμοσμένο DNS.