Tukar curl ke Ansible
curl2code menukar arahan curl kepada tugasan playbook Ansible menggunakan modul uri. Penukaran ini berjalan dalam pelayar anda melalui WebAssembly untuk privasi lengkap. Untuk Python, lihat penukar curl ke Python kami. Untuk PowerShell, lihat curl ke PowerShell. Di bawah adalah contoh Ansible praktikal.
Cara menyalin curl daripada pelayar anda
- 1
Buka DevTools
Tekan F12 atau Ctrl+Shift+I untuk membuka alat pembangun pelayar anda.
- 2
Pergi ke tab Network
Klik tab Network dan lakukan tindakan yang mencetuskan permintaan HTTP.
- 3
Salin sebagai cURL
Klik kanan pada permintaan → Copy → Copy as cURL. Kemudian tampalkannya di atas.
Soalan Lazim
Apakah itu modul uri Ansible?
Modul uri ialah modul terbina dalam Ansible untuk membuat permintaan HTTP dalam playbook. Ia mengendalikan GET, POST, PUT, DELETE dengan sokongan badan JSON, pengesahan, dan pengesahan kod status. Tiada koleksi tambahan diperlukan — ia adalah sebahagian daripada ansible.builtin. curl2code menjana YAML tugas Ansible menggunakan modul uri.
Modul uri vs get_url vs command dengan curl — yang mana satu harus digunakan?
Modul uri adalah untuk panggilan API — ia mengembalikan JSON yang dihurai dan mengesahkan status. get_url adalah untuk memuat turun fail ke cakera. command: curl adalah anti-corak (anti-pattern) — ia kehilangan keidempotensian (idempotency) dan pengendalian ralat. Sentiasa utamakan uri untuk interaksi API HTTP. Untuk automasi Python, lihat curl ke Python.
Bagaimana cara mengendalikan pengesahan dalam Ansible?
Untuk Bearer: headers: { Authorization: "Bearer {{ token }}" }. Untuk pengesahan Basic: gunakan parameter url_username dan url_password. Simpan rahsia dalam Ansible Vault: ansible-vault encrypt_string. Modul uri juga menyokong force_basic_auth: yes untuk pengesahan awal.
Bagaimana cara menghantar data borang dengan Ansible?
Untuk badan JSON: body: {{ data | to_json }} dengan body_format: json. Untuk form-urlencoded: body_format: form-urlencoded dengan body: key=value&key2=value2. Muat naik fail multipart memerlukan modul community.general.uri atau skrip tersuai. curl2code mengendalikan penukaran -F.
Bagaimana cara mengendalikan ralat dalam tugas HTTP Ansible?
Gunakan register: result dengan failed_when: result.status != 200 untuk syarat kegagalan tersuai. Gunakan ignore_errors: yes untuk meneruskan tugas walaupun gagal. Modul uri gagal pada bukan 2xx secara lalai — atasi dengan status_code: [200, 201, 404] untuk menerima pelbagai kod status.
Bagaimana cara menghurai respons JSON dalam Ansible?
Modul uri menghurai JSON secara automatik apabila return_content: yes ditetapkan — akses melalui result.json. Gunakan penapis Jinja2: result.json.users | selectattr('active') | list. Untuk transformasi yang kompleks, gunakan set_fact dengan penapis. Daftar hasil untuk digunakan dalam tugas seterusnya.
Bagaimana cara menetapkan had masa dan percubaan semula dalam Ansible?
Tetapkan timeout: 30 pada tugas uri untuk had masa permintaan dalam saat. Untuk percubaan semula: gunakan retries: 3 dengan delay: 5 dan until: result.status == 200. Ini adalah corak gelung percubaan semula terbina dalam Ansible — tiada skrip tersuai diperlukan. Berfungsi dengan mana-mana modul, bukan hanya uri.
Bagaimana cara menggunakan proksi dengan Ansible uri?
Tetapkan persekitaran pada tugas: environment: { http_proxy: "http://proxy:8080", https_proxy: "http://proxy:8080" }. Atau tetapkan secara global dalam ansible.cfg atau group_vars. Modul uri menghormati pemboleh ubah persekitaran proksi standard. Untuk pengecualian tanpa proksi: no_proxy: "localhost,.internal".
Bagaimana cara menghantar permintaan POST dengan badan JSON dalam Ansible?
Tukar perintah curl POST seperti curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL ke Ansible menggunakan curl2code. Kod yang dihasilkan menggunakan ansible.builtin.uri: url: '{'{ url }'}' method: POST body_format: json body: '{'{ data }'}'. curl2code mengesan bendera -d/--data secara automatik dengan kandungan JSON dan menetapkan pengepala Content-Type yang sesuai dalam kod modul uri.
Bagaimana cara menambah kebenaran token Bearer dalam Ansible?
Masukkan curl -H "Authorization: Bearer YOUR_TOKEN" URL ke curl2code dan ia akan menghasilkan kod modul uri dengan pengepala auth: headers: Authorization: 'Bearer YOUR_TOKEN'. curl2code mengesan token Bearer daripada kedua-dua bendera -H "Authorization: Bearer ..." dan --oauth2-bearer. Untuk Basic auth, gunakan -u user:pass.
Bagaimana cara menetapkan pengepala Content-Type dalam Ansible?
curl2code menukar curl -H "Content-Type: application/json" URL kepada kod modul uri dengan pengepala yang betul: body_format: json. Untuk data -d, curl secara lalai menggunakan application/x-www-form-urlencoded; untuk muat naik borang -F, ia menggunakan multipart/form-data. curl2code memetakan setiap satu ke API modul uri yang betul.