แปลง curl เป็น Ansible
curl2code แปลงคำสั่ง curl เป็นงานใน Ansible playbook โดยใช้โมดูล 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 จากนั้นนำมาวางด้านบน
คำถามที่พบบ่อย (FAQ)
Ansible uri module คืออะไร?
โมดูล uri เป็นโมดูลในตัวของ Ansible สำหรับการส่ง HTTP requests ภายใน playbooks จัดการได้ทั้ง GET, POST, PUT, DELETE พร้อมรองรับ JSON body, การยืนยันตัวตน และการตรวจสอบรหัสสถานะ ไม่ต้องติดตั้ง collection เพิ่มเติมเพราะเป็นส่วนหนึ่งของ ansible.builtin โดย curl2code จะสร้าง Ansible task YAML โดยใช้โมดูล uri
uri module vs get_url vs command with curl — ควรใช้ตัวไหน?
โมดูล uri ใช้สำหรับการเรียก API โดยจะคืนค่า JSON ที่ parse แล้วและตรวจสอบสถานะ get_url ใช้สำหรับดาวน์โหลดไฟล์ลงดิสก์ ส่วน command: curl เป็นรูปแบบที่ไม่แนะนำ (anti-pattern) เพราะจะสูญเสียคุณสมบัติ idempotency และการจัดการข้อผิดพลาด ควรใช้ uri สำหรับการโต้ตอบกับ HTTP API เสมอ สำหรับการทำ automation ด้วย Python ดูได้ที่ curl to Python
จะจัดการการยืนยันตัวตนใน Ansible ได้อย่างไร?
สำหรับ Bearer: headers: { Authorization: "Bearer {{ token }}" } สำหรับ Basic auth: ให้ใช้พารามิเตอร์ url_username และ url_password ควรเก็บความลับไว้ใน Ansible Vault: ansible-vault encrypt_string โมดูล uri ยังรองรับ force_basic_auth: yes สำหรับการยืนยันตัวตนแบบล่วงหน้า
จะส่งข้อมูลฟอร์มด้วย Ansible ได้อย่างไร?
สำหรับ JSON body: body: {{ data | to_json }} พร้อม body_format: json สำหรับ form-urlencoded: ใช้ body_format: form-urlencoded พร้อม body: key=value&key2=value2 การอัปโหลดไฟล์แบบ multipart ต้องใช้โมดูล community.general.uri หรือสคริปต์ที่เขียนขึ้นเอง curl2code จะจัดการการแปลง -F ให้
จะจัดการข้อผิดพลาดใน Ansible HTTP tasks ได้อย่างไร?
ใช้ register: result ร่วมกับ failed_when: result.status != 200 สำหรับเงื่อนไขการล้มเหลวที่กำหนดเอง ใช้ ignore_errors: yes เพื่อทำงานต่อแม้จะล้มเหลว โดยปกติโมดูล uri จะล้มเหลวหากไม่ใช่ 2xx คุณสามารถเขียนทับได้ด้วย status_code: [200, 201, 404] เพื่อยอมรับรหัสสถานะหลายค่า
จะ parse JSON responses ใน Ansible ได้อย่างไร?
โมดูล uri จะ parse JSON ให้โดยอัตโนมัติเมื่อตั้งค่า return_content: yes โดยเข้าถึงได้ผ่าน result.json ใช้ตัวกรอง Jinja2 เช่น: result.json.users | selectattr('active') | list สำหรับการแปลงที่ซับซ้อน ให้ใช้ set_fact ร่วมกับตัวกรอง และลงทะเบียนผลลัพธ์เพื่อใช้ใน task ถัดไป
จะตั้งค่า timeouts และ retries ใน Ansible ได้อย่างไร?
ตั้งค่า timeout: 30 ใน uri task สำหรับ timeout ของ request เป็นวินาที สำหรับการลองใหม่: ใช้ retries: 3 พร้อม delay: 5 และ until: result.status == 200 นี่คือรูปแบบ retry loop ในตัวของ Ansible ซึ่งไม่ต้องเขียนสคริปต์เอง และใช้ได้กับทุกโมดูล ไม่ใช่แค่ uri
จะใช้ proxy กับ Ansible uri ได้อย่างไร?
ตั้งค่า environment ใน task: environment: { http_proxy: "http://proxy:8080", https_proxy: "http://proxy:8080" } หรือตั้งค่าแบบ global ใน ansible.cfg หรือ group_vars โมดูล uri รองรับ environment variables มาตรฐานของ proxy สำหรับข้อยกเว้นไม่ใช้ proxy: no_proxy: "localhost,.internal"
วิธีส่งคำขอ POST พร้อม JSON body ใน 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 ที่มีเนื้อหา JSON โดยอัตโนมัติ และตั้งค่าส่วนหัว Content-Type ที่เหมาะสมในโค้ดโมดูล uri
วิธีเพิ่มการยืนยันตัวตนด้วย Bearer token ใน Ansible?
ส่ง curl -H "Authorization: Bearer YOUR_TOKEN" URL ไปยัง curl2code และเครื่องมือจะสร้างโค้ดโมดูล uri พร้อมส่วนหัวการยืนยันตัวตน: headers: Authorization: 'Bearer YOUR_TOKEN' โดย curl2code จะตรวจจับ Bearer tokens จากทั้งแฟล็ก -H "Authorization: Bearer ..." และ --oauth2-bearer สำหรับ Basic auth ให้ใช้ -u user:pass
วิธีตั้งค่าส่วนหัว Content-Type ใน Ansible?
curl2code จะแปลง curl -H "Content-Type: application/json" URL เป็นโค้ดโมดูล uri พร้อมส่วนหัวที่ถูกต้อง: body_format: json สำหรับข้อมูล -d นั้น curl จะกำหนดค่าเริ่มต้นเป็น application/x-www-form-urlencoded ส่วนการอัปโหลดฟอร์ม -F จะใช้ multipart/form-data โดย curl2code จะจับคู่แต่ละรายการเข้ากับโมดูล uri API ที่ถูกต้อง