تحويل curl إلى Ansible

يقوم curl2code بتحويل أوامر curl إلى مهام Ansible playbook باستخدام وحدة uri. تتم عملية التحويل في متصفحك عبر WebAssembly لخصوصية تامة. لـ Python، راجع محول curl إلى Python. لـ PowerShell، راجع curl إلى PowerShell. أدناه أمثلة Ansible عملية.

كيفية نسخ curl من متصفحك

  1. 1

    افتح أدوات المطور (DevTools)

    اضغط على F12 أو Ctrl+Shift+I لفتح أدوات مطور المتصفح.

  2. 2

    انتقل إلى علامة تبويب الشبكة (Network)

    انقر فوق علامة التبويب Network وقم بالإجراء الذي يؤدي إلى إرسال طلب HTTP.

  3. 3

    نسخ كـ cURL

    انقر بزر الماوس الأيمن على الطلب ← CopyCopy as cURL. ثم قم بلصقه أعلاه.

الأسئلة الشائعة

ما هي وحدة Ansible uri؟

وحدة uri هي وحدة مدمجة في Ansible لإجراء طلبات HTTP داخل playbooks. تتعامل مع GET و POST و PUT و DELETE مع دعم جسم JSON والمصادقة والتحقق من رمز الحالة. لا حاجة لمجموعة إضافية — فهي جزء من ansible.builtin. يقوم curl2code بإنشاء مهام Ansible بصيغة YAML باستخدام وحدة uri.

وحدة uri مقابل get_url مقابل أمر curl — أيهم أستخدم؟

وحدة uri مخصصة لاستدعاءات واجهة البرمجة — فهي تعيد JSON محللاً وتتحقق من الحالة. get_url مخصصة لتنزيل الملفات إلى القرص. استخدام command: curl يعتبر نمطاً سيئاً — حيث يفقد خاصية التكرار (idempotency) والتعامل مع الأخطاء. فضل دائماً uri للتفاعلات مع واجهات برمجة تطبيقات HTTP. لأتمتة Python، راجع curl إلى Python.

كيفية التعامل مع المصادقة في Ansible؟

للمصادقة بـ Bearer: headers: { Authorization: "Bearer {{ token }}" }. للمصادقة الأساسية: استخدم معلمتي 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. تتطلب عمليات رفع الملفات متعددة الأجزاء وحدة 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 مع المرشحات. قم بتسجيل النتائج لاستخدامها في المهام اللاحقة.

كيفية تعيين المهلات وإعادة المحاولة في Ansible؟

قم بتعيين timeout: 30 في مهمة uri لمهلة الطلب بالثواني. لإعادة المحاولة: استخدم retries: 3 مع delay: 5 و until: result.status == 200. هذا هو نمط حلقة إعادة المحاولة المدمج في Ansible — لا حاجة لسكريبتات مخصصة. يعمل مع أي وحدة، وليس فقط uri.

كيفية استخدام وكيل مع Ansible uri؟

قم بتعيين البيئة في المهمة: 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 من كل من وسوم -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.

روابط مفيدة

أدلة curl

تحويل curl إلى لغات أخرى