طرق الإدارة RELIANOID واجهة برمجة التطبيقات من Windows #
إدارة وتشغيل الأتمتة عن بعد RELIANOID يمكن تنفيذ موازن التحميل بشكل فعال باستخدام نويد-كلي، وهو برنامج واجهة سطر أوامر يعتمد على Perl. نويد-كلي صُممت هذه الأداة لإجراء مكالمات واجهة برمجة التطبيقات (API) مباشرةً من سطر الأوامر، مما يُبسّط مهامًا مثل تهيئة الخوادم الافتراضية، ومراقبة حالة النظام، وضبط إعدادات موازنة الحمل. توفر هذه الأداة مجموعة من الأوامر المُعدّة مسبقًا تُلخّص تعقيدات تفاعلات واجهة برمجة التطبيقات (API)، مما يُتيح للمسؤولين تنفيذ العمليات بسرعة دون الحاجة إلى إنشاء طلبات HTTP يدويًا. سهولة استخدامها وتكاملها مع نصوص الشل تجعلها خيارًا عمليًا للصيانة الدورية والتعديلات السريعة في بيئة الطرفية.
ومن ناحية أخرى، برمجة برنامج PowerShell النصي مع استدعاء طريقة الراحة لإدارة مكالمات API إلى RELIANOID يوفر مُوازن الأحمال مرونةً أكبر وإمكانات أتمتة أكبر. تستطيع نصوص PowerShell أتمتة تسلسلات مُعقدة من تفاعلات واجهة برمجة التطبيقات (API)، ومعالجة البيانات الديناميكية، والتكامل مع خدمات وأدوات Windows الأخرى. باستخدام استدعاء طريقة الراحةيمكن لمسؤولي النظام تصميم نصوص برمجية مخصصة للأتمتة تلبي احتياجاتهم التشغيلية بدقة، مثل تنظيم إجراءات التعافي من الأعطال، وإجراء تحديثات مجمعة، أو دمج إدارة موازن الأحمال في سير عمل إدارة النظام الأوسع. تستفيد هذه الطريقة من كامل إمكانات نصوص PowerShell البرمجية، بما في ذلك معالجة الأخطاء، والتسجيل، والمعالجة المتقدمة للبيانات، مما يجعلها مثالية لمهام الأتمتة المعقدة وسيناريوهات التكامل.
ستصف هذه المقالة مكالمات API باستخدام طريقة Powershell.
استخدام Powershell لإجراء مكالمات API #
يتضمن إجراء مكالمة إلى واجهة برمجة التطبيقات باستخدام PowerShell لأتمتة الأنظمة الاستفادة من استدعاء طريقة الراحة أمر cmdlet، يُبسّط إرسال طلبات HTTP وHTTPS إلى خدمات الويب RESTful. يسمح هذا الأمر بالتفاعل مع واجهات برمجة التطبيقات (APIs) من خلال تحديد عنوان URL لنقطة النهاية، وطريقة HTTP (GET، POST، PUT، DELETE)، والرؤوس (مثل رموز التفويض)، ونص الطلب (عادةً بتنسيق JSON). بذلك، يمكنك استرداد الموارد على النظام المستهدف، أو إنشائها، أو تحديثها، أو حذفها. يمكن لنصوص PowerShell أتمتة المهام المتكررة، مثل إدارة الأجهزة الافتراضية، أو تكوين أجهزة الشبكة، أو جلب بيانات حالات النظام، مما يُحسّن كفاءة التشغيل واتساقه.
للبدء، عادةً ما تُعرّف نقطة نهاية واجهة برمجة التطبيقات (API) وأي بيانات اعتماد ضرورية. على سبيل المثال، قد تستخدم مصادقة أساسية أو مفتاح واجهة برمجة تطبيقات في الرؤوس. بعد ذلك، بناءً على عملية واجهة برمجة التطبيقات، قد تحتاج إلى إعداد حمولة JSON لطلبات POST أو PUT، والتي يمكن إنشاؤها وتحويلها بسهولة من كائنات PowerShell باستخدام تحويل إلى Json أمر cmdlet. بمجرد صياغة الطلب وإرساله، استدعاء طريقة الراحة يعالج PowerShell الاستجابة، والتي يمكنك تعديلها أو استخدامها في مهام لاحقة ضمن البرنامج النصي. هذه العملية المُبسّطة تجعل PowerShell أداة فعّالة لمسؤولي الأنظمة والمطورين الذين يسعون إلى أتمتة ودمج مختلف الأنظمة والخدمات عبر واجهات برمجة التطبيقات.
المتطلبات الأساسية لتمكين أتمتة واجهة برمجة التطبيقات عن بعد #
لإجراء مكالمات API من PowerShell لإدارة RELIANOID موازن التحميل، يجب استيفاء العديد من المتطلبات الأساسية:
تمكين أذونات API وإنشاء مفتاح API #
أولاً، عليك تفعيل أذونات واجهة برمجة التطبيقات (API) لحساب المستخدم الذي سيجري المكالمات. يتضمن ذلك الوصول إلى واجهة المستخدم الرسومية على الويب لموازن التحميل والانتقال إلى النظام > المستخدمفي هذا القسم، يمكنك تكوين حسابات المستخدمين وتعيين أذونات واجهة برمجة التطبيقات (API). أنشئ أو حدد حساب مستخدم، ثم أنشئ مفتاح واجهة برمجة التطبيقات (API Key)، والذي سيُستخدم لمصادقة طلبات واجهة برمجة التطبيقات. إذا كنت تستخدم مستخدمي التحكم في الوصول القائم على الأدوار (RBAC)، فتأكد من أن أدوارهم تتضمن الأذونات اللازمة للتفاعل مع واجهة برمجة التطبيقات. يُعد مفتاح واجهة برمجة التطبيقات هذا ضروريًا لمصادقة وتفويض طلبات واجهة برمجة التطبيقات من نصوص PowerShell.
لمزيد من المعلومات، يرجى الرجوع إلى هذه المقالة https://www.relianoid.com/resources/knowledge-base/system-enterprise-edition-v8-administration-guide/system-user/ .
تحديد نقطة نهاية واجهة برمجة التطبيقات (API) #
ثانيًا، عليك تحديد نقطة نهاية واجهة برمجة التطبيقات (API) الصحيحة للاتصال بموازن التحميل. تتضمن نقطة نهاية واجهة برمجة التطبيقات عادةً عنوان URL الأساسي لموازن التحميل، متبوعًا بمسارات محددة لوظائف مختلفة. في حالة إعداد موازن تحميل مجمع، من الضروري استخدام عنوان IP مشترك لنقطة نهاية واجهة برمجة التطبيقات. يضمن هذا العنوان المشترك توجيه استدعاء واجهة برمجة التطبيقات دائمًا إلى العقدة الرئيسية، بغض النظر عن العقدة التي تعمل حاليًا كعقدة رئيسية. يمنع استخدام عنوان IP المشترك حدوث مشاكل عند توجيه استدعاء واجهة برمجة التطبيقات إلى عقدة احتياطية، مما يضمن تطبيق جميع التكوينات والعمليات بشكل متسق على العقدة الرئيسية النشطة.
أمثلة على واجهة برمجة تطبيقات PowerShell #
الخيار تخطي التحقق من الشهادة لم يتم التعرّف عليه في الإصدارات القديمة من PowerShell. في هذه الحالة، يُرجى تحديد هذا الخيار في بداية نص PowerShell:
[System.Net.ServicePointManager]::ServerCertificateValidationCallback = { $true }
بالإضافة إلى ذلك، سيكون مطلوبًا إضافة السطر التالي في نصوص Powershell الخاصة بنا لتجنب الخطأ "Invoke-RestMethod: تم إغلاق الاتصال الأساسي: حدث خطأ غير متوقع في الاستلام".
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls -bor [Net.SecurityProtocolType]::Tls11 -bor [Net.SecurityProtocolType]::Tls12
الحصول على تفاصيل المزرعة #
يقوم هذا البرنامج النصي بإجراء طلب GET لاسترداد المعلومات حول مزرعة معينة في RELIANOID موازن التحميل.
المتطلبات الأساسية المسبقة
- استبدل باستخدام مفتاح API الفعلي الخاص بك.
- استبدل <RELIANOID_الخادم> مع عنوان الخادم الفعلي الخاص بك RELIANOID موازن التحميل.
- استبدل مع المزرعة الفعلية.
- تأكد من تمكين أذونات API اللازمة.
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls -bor [Net.SecurityProtocolType]::Tls11 -bor [Net.SecurityProtocolType]::Tls12 # تعريف المتغيرات $apiKey = " " $server = "RELIANOID_الخادم>" $farmName = " " # قم بتحديد عنوان URL لنقطة نهاية واجهة برمجة التطبيقات $apiUrl = "https://${server}:444/api/v4.0/api.cgi/farms/$farmName" # قم بإجراء استدعاء واجهة برمجة التطبيقات باستخدام Invoke-RestMethod $response = Invoke-RestMethod -Uri $apiUrl -Method Get -Headers @{ "API_KEY" = $apiKey } -SkipCertificateCheck # قم بإخراج الاستجابة $response
تفسير
1. المتغيرات:
$apiKey:مفتاح API الخاص بك.$server:عنوانك RELIANOID موازن التحميل.$farmName:اسم المزرعة التي تريد استرجاع المعلومات عنها.
2. عنوان URL لنقطة نهاية API:
$apiUrl:تم إنشاؤه باستخدام عنوان الخادم واسم المزرعة.
3. استدعاء طريقة الراحة:
- -أوري
$apiUrl: يحدد نقطة نهاية واجهة برمجة التطبيقات. - -طريقة الحصول:يحدد طريقة HTTP GET.
- -الرؤوس
@{ "API_KEY" = $apiKey }:يضيف مفتاح API إلى رؤوس الطلب. - -تخطي التحقق من الشهادة: يتخطى التحقق من صحة شهادة SSL (ما يعادل -k في curl). هذا مفيد للاختبار أو عند استخدام الخادم لشهادة ذاتية التوقيع.
4. الإخراج:
يتم تخزين الاستجابة من استدعاء API في $response متغير ثم إخراجه إلى وحدة التحكم.
يرجى الرجوع إلى Apidoc الرسمي للحصول على مزيد من المعلومات حول هذه الدعوة https://www.relianoid.com/apidoc/v4.0/#retrieve-farm-by-name
إضافة واجهة خلفية جديدة في المزرعة #
يقوم هذا البرنامج النصي بتنفيذ طلب POST لإضافة واجهة خلفية جديدة إلى خدمة محددة ضمن مزرعة على موازن التحميل Relianoid.
المتطلبات الأساسية المسبقة
- استبدل باستخدام مفتاح API الفعلي الخاص بك.
- استبدل <RELIANOID_الخادم> مع عنوان الخادم الفعلي الخاص بك RELIANOID موازن التحميل.
- استبدل مع المزرعة الفعلية.
- استبدل مع خدمة HTTP حيث سيتم إضافة الواجهة الخلفية.
- استبدل مع عنوان IP الخاص بالواجهة الخلفية الجديدة.
- استبدل مع منفذ الواجهة الخلفية الجديدة.
- تأكد من تمكين أذونات API اللازمة.
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls -bor [Net.SecurityProtocolType]::Tls11 -bor [Net.SecurityProtocolType]::Tls12 # تعريف المتغيرات $apiKey = " " $server = "RELIANOID_الخادم>" $farmName = " "$serviceName = " " # قم بتحديد عنوان URL لنقطة نهاية واجهة برمجة التطبيقات $apiUrl = "https://${server}:444/api/v4.0/api.cgi/farms/$farmName/services/$serviceName/backends" # قم بتحديد نص الطلب $requestBody = @{ ip = " " المنفذ = الوزن = 1 الأولوية = 1 } | ConvertTo-Json # قم بإجراء استدعاء API باستخدام Invoke-RestMethod $response = Invoke-RestMethod -Uri $apiUrl -Method Post -Headers @{ "Content-Type" = "application/json" "API_KEY" = $apiKey } -Body $requestBody -SkipCertificateCheck # إخراج الاستجابة $response
تفسير
1. المتغيرات:
$apiKey:مفتاح API الخاص بك.$server:عنوانك RELIANOID موازن التحميل.$farmName:اسم المزرعة التي تريد إضافة واجهة خلفية جديدة إليها.$serviceName:اسم الخدمة داخل المزرعة حيث سيتم إضافة الواجهة الخلفية.
2. عنوان URL لنقطة نهاية API:
$apiUrl:تم إنشاؤه باستخدام عنوان الخادم واسم المزرعة واسم الخدمة.
3. نص الطلب:
$requestBody: يحتوي على حمولة JSON مع تفاصيل خادم الواجهة الخلفية. يتم تحويلها إلى صيغة JSON باستخدام تحويل إلى Json.
4. استدعاء طريقة الراحة:
- -أوري
$apiUrl: يحدد نقطة نهاية واجهة برمجة التطبيقات. - -طريقة النشر:يحدد طريقة HTTP POST.
- -الرؤوس
@{ "Content-Type" = "application/json"; "API_KEY" = $apiKey }: يضيف نوع المحتوى و مفتاح API إلى رؤوس الطلب. - -جسم
$requestBody:يحدد الحمولة JSON لطلب POST. - -تخطي التحقق من الشهادة: يتخطى التحقق من صحة شهادة SSL (ما يعادل -k في curl). هذا مفيد للاختبار أو عند استخدام الخادم لشهادة ذاتية التوقيع.
5. الإخراج:
يتم تخزين الاستجابة من استدعاء API في $response متغير ثم إخراجه إلى وحدة التحكم.
يرجى الرجوع إلى Apidoc الرسمي للحصول على مزيد من المعلومات حول هذه الدعوة https://www.relianoid.com/apidoc/v4.0/#create-a-new-backend
تمكين الواجهة الخلفية في وضع الصيانة #
يقوم هذا البرنامج النصي بإجراء طلب PUT لتعيين خادم الواجهة الخلفية إلى وضع الصيانة على RELIANOID موازن التحميل.
المتطلبات الأساسية المسبقة
- استبدل باستخدام مفتاح API الفعلي الخاص بك.
- استبدل <RELIANOID_الخادم> مع عنوان الخادم الفعلي الخاص بك RELIANOID موازن التحميل.
- استبدل مع المزرعة الفعلية.
- استبدل مع خدمة HTTP حيث سيتم وضع الواجهة الخلفية في الصيانة.
- استبدل مع معرف الواجهة الخلفية لتعديل وضع الصيانة.
- تأكد من تمكين أذونات API اللازمة.
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls -bor [Net.SecurityProtocolType]::Tls11 -bor [Net.SecurityProtocolType]::Tls12 # تعريف المتغيرات $apiKey = " " $server = "RELIANOID_الخادم>" $farmName = " "$serviceName = " " $backendId = # قم بتحديد عنوان URL لنقطة نهاية واجهة برمجة التطبيقات $apiUrl = "https://${server}:444/api/v4.0/api.cgi/farms/$farmName/services/$serviceName/backends/$backendId/maintenance" # قم بتحديد نص الطلب $requestBody = @{ action = "maintenance" mode = "drain" } | ConvertTo-Json # قم بإجراء استدعاء واجهة برمجة التطبيقات باستخدام Invoke-RestMethod $response = Invoke-RestMethod -Uri $apiUrl -Method Put -Headers @{ "Content-Type" = "application/json" "API_KEY" = $apiKey } -Body $requestBody -SkipCertificateCheck # قم بإخراج الاستجابة $response
تفسير
1. المتغيرات:
$apiKey:مفتاح API الخاص بك.$server:عنوانك RELIANOID موازن التحميل.$farmName:اسم المزرعة التي تمت إضافة الواجهة الخلفية إليها لوضع الصيانة.$serviceName:اسم الخدمة داخل المزرعة حيث سيتم صيانة الواجهة الخلفية.$backendId:معرف الواجهة الخلفية التي سيتم وضعها في وضع الصيانة.
2. عنوان URL لنقطة نهاية API:
$apiUrl:تم إنشاؤه باستخدام عنوان الخادم واسم المزرعة واسم الخدمة.
3. نص الطلب:
$requestBody: يحتوي على حمولة JSON مع الإجراء والوضع لضبط الواجهة الخلفية على وضع الصيانة. يتم تحويلها إلى صيغة JSON باستخدام تحويل إلى Json.
4. استدعاء طريقة الراحة:
- -أوري
$apiUrl: يحدد نقطة نهاية واجهة برمجة التطبيقات. - -طريقة وضع:يحدد طريقة HTTP PUT.
- -الرؤوس
@{ "Content-Type" = "application/json"; "API_KEY" = $apiKey }: يضيف نوع المحتوى و مفتاح API إلى رؤوس الطلب. - -جسم
$requestBody:يحدد الحمولة JSON لطلب PUT. - -تخطي التحقق من الشهادة: يتخطى التحقق من صحة شهادة SSL (ما يعادل -k في curl). هذا مفيد للاختبار أو عند استخدام الخادم لشهادة ذاتية التوقيع.
5. الإخراج:
يتم تخزين الاستجابة من استدعاء API في $response متغير ثم إخراجه إلى وحدة التحكم.
يرجى الرجوع إلى Apidoc الرسمي للحصول على مزيد من المعلومات حول هذه الدعوة https://www.relianoid.com/apidoc/v4.0/#backend-in-maintenance
مزيد من وثائق واجهة برمجة التطبيقات #
لمزيد من المعلومات التفصيلية حول مكالمات واجهة برمجة التطبيقات المتاحة لإدارة RELIANOID موازن التحميل، يمكنك الرجوع إلى وثائق واجهة برمجة التطبيقات الرسمية على RELIANOID وثائق أبييوفر هذا المورد الشامل أوصافًا تفصيلية لكل نقطة نهاية API، بما في ذلك طرق HTTP المطلوبة ومعلمات الطلب وتنسيقات الاستجابة.
تم تصميم هذه الوثائق لمساعدتك على فهم كيفية التفاعل مع مختلف جوانب مُوازن الأحمال، مثل إدارة المزارع والخدمات والواجهات الخلفية، بالإضافة إلى مراقبة حالة النظام وأدائه. كل استدعاء لواجهة برمجة التطبيقات (API) مُرفق بأمثلة وشروحات لإرشادك خلال عملية صياغة طلباتك ومعالجة الاستجابات. يُعد هذا موردًا أساسيًا لمسؤولي الأنظمة والمطورين الذين يتطلعون إلى أتمتة وتبسيط مهام إدارة مُوازن الأحمال باستخدام واجهة برمجة التطبيقات (API).