המרת 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)
מהו מודול ה-uri של Ansible?
מודול ה-uri הוא מודול מובנה ב-Ansible לביצוע בקשות HTTP בתוך playbooks. הוא מטפל ב-GET, POST, PUT, DELETE עם תמיכה בגוף JSON, אימות ואימות קודי סטטוס. אין צורך באוסף נוסף — הוא חלק מ-ansible.builtin. curl2code מייצר YAML של משימת Ansible המשתמשת במודול ה-uri.
מודול uri לעומת get_url לעומת פקודה עם curl — במה להשתמש?
מודול ה-uri מיועד לקריאות API — הוא מחזיר JSON מפוענח ומאמת סטטוס. get_url מיועד להורדת קבצים לדיסק. command: curl הוא anti-pattern — הוא מאבד את ה-idempotency ואת הטיפול בשגיאות. תמיד העדף את uri לאינטראקציות עם HTTP API. לאוטומציה ב-Python, ראה curl ל-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: {{ data | to_json }} עם body_format: json. עבור form-urlencoded: body_format: form-urlencoded עם body: key=value&key2=value2. העלאות קבצי multipart דורשות את מודול community.general.uri או סקריפט מותאם אישית. curl2code מטפל בהמרות -F.
איך מטפלים בשגיאות במשימות HTTP ב-Ansible?
השתמש ב-register: result עם failed_when: result.status != 200 לתנאי כשל מותאמים אישית. השתמש ב-ignore_errors: yes כדי להמשיך במקרה של כשל. מודול ה-uri נכשל בתגובות שאינן 2xx כברירת מחדל — עקוף זאת עם status_code: [200, 201, 404] כדי לקבל מספר קודי סטטוס.
איך מפענחים תגובות JSON ב-Ansible?
מודול ה-uri מפענח JSON אוטומטית כאשר return_content: yes מוגדר — הגישה היא דרך result.json. השתמש במסנני Jinja2: result.json.users | selectattr('active') | list. לטרנספורמציות מורכבות, השתמש ב-set_fact עם מסננים. רשום (register) תוצאות לשימוש במשימות הבאות.
איך מגדירים timeouts וניסיונות חוזרים ב-Ansible?
הגדר timeout: 30 במשימת ה-uri עבור timeout של הבקשה בשניות. עבור ניסיונות חוזרים: השתמש ב-retries: 3 עם delay: 5 ו-until: result.status == 200. זהו דפוס לולאת ה-retry המובנה של Ansible — אין צורך בסקריפטים מותאמים אישית. עובד עם כל מודול, לא רק uri.
איך משתמשים ב-proxy עם Ansible uri?
הגדר את הסביבה (environment) במשימה: environment: { http_proxy: "http://proxy:8080", https_proxy: "http://proxy:8080" }. או הגדר גלובלית ב-ansible.cfg או ב-group_vars. מודול ה-uri מכבד משתני סביבה סטנדרטיים של פרוקסי. להחרגות ללא פרוקסי: 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 עם תוכן 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 ממפה כל אחד מהם ל-API הנכון של מודול ה-uri.