دمج PowerShell في Jenkins للأتمتة السلسة

إذا كنت قد قمت بإدارة خوادم Windows لفترة طويلة، فمن المؤكد أن لديك الكثير من نصوص PowerShell لأداء تلك المهام المملة ولكن الضرورية التي تقوم بها بانتظام مثل إعادة تعيين كلمات المرور، وجمع بيانات السجل، أو أرشفة ملفات النسخ الاحتياطي. هل تعلم أن PowerShell في Jenkins أمر؟

قد تكون لديك نصوص تقوم بتشغيلها بانتظام، وربما قمت حتى بإعداد حدث في مجدول المهام في محاولة لأتمتة نصوص PowerShell الخاصة بك.

هناك طريقة أفضل.

في هذه المقالة، ستتعلم كيفية تثبيت Jenkins على نظام Windows وتشغيل نص PowerShell بسيط. ستتعلم كيفية تثبيت Jenkins، إعداد الأمان الأساسي، تمكين ملحق PowerShell، وتشغيل مهمة لإنشاء ملف نصي بسيط مع معلمات سنقوم بإدخالها.

تهدف هذه المقالة إلى أن تكون مقدمة أساسية لـ Jenkins. الإعداد الذي ستتعلمه ليس بالضرورة مخصصًا لبيئات الإنتاج.

المتطلبات المسبقة

سيكون معظم هذه المقالة إرشادًا تفصيليًا. إذا كنت تنوي متابعة الشرح، تأكد من توفر بعض المتطلبات المسبقة.

متطلبات تشغيل Jenkins بسيطة للغاية، يمكن لأي كمبيوتر حديث أن يتعامل معها. ستكون جميع الأمثلة في هذه المقالة مبنية على تشغيل Jenkins على:

  • Windows 10 Enterprise v.1903
  • PowerShell Core v6

على الرغم من أن جينكينز يمكن تشغيله على أي منصة تقريبًا، سأركز على Windows 10 Enterprise للحفاظ على الأمور بسيطة.

تثبيت جينكينز

مع التأكد من توفر المتطلبات الأساسية، دعنا نقوم بتثبيت جينكينز.

تثبيت جينكينز سهل وبسيط. قم بالانتقال إلى https://www.jenkins.io/download/ وقم بتنزيل الإصدار طويل الأمد (LTS). هناك نسختان متاحتان، الإصدار طويل الأمد والإصدار الأسبوعي. الإصدار الأسبوعي يتم تحديثه بشكل منتظم وقد يكون غير مستقر. في هذه المقالة نستخدم الإصدار طويل الأمد. هذا هو الإصدار الأكثر استقرارًا.

كما يمكنك رؤية من الصورة أدناه، هناك عدة خيارات للاختيار من بينها. حدد إصدار Windows لبدء التنزيل.

Installing the Windows package for Jenkins

بمجرد تنزيل المثبت، استخرج ملف الأرشيف المضغوط وقم بتشغيل المثبت مع قبول جميع الإعدادات الافتراضية. التثبيت سهل.

بمجرد اكتمال التثبيت، ستقوم جينكينز بفتح متصفح وعرض صفحة البدء. تحتوي هذه الصفحة على كلمة مرور المسؤول الأولية لفتح جينكينز ومتابعة عملية التكوين. كما يمكنك أن ترى من الصورة أدناه، تخبرني جينكينز بقراءة ملف نصي في المسار C:\Program Files (x86)\Jenkins\secrets\initialAdminPassword.

Providing the administrator password for Jenkins

انتقل إلى الملف المعروض وافتحه، ثم انسخ كلمة المرور المعروضة واستخدمها ككلمة مرور المسؤول على صفحة البدء.

تثبيت المكونات الإضافية

بمجرد تسجيل الدخول للمرة الأولى، سينهي جينكنز الإعداد النهائي ثم يطلب تثبيت الإضافات. هناك خياران كما يمكنك رؤيتهما في الصورة أدناه.

اختيار تثبيت الإضافات المقترحة سيقوم بتثبيت مجموعة الإضافات الموصى بها استنادًا إلى السيناريوهات الاستخدام الشائعة. تشمل هذه الإضافات موفرات المصادقة والتفاعل مع GitHub وتوسيعات Java. اختيار الإضافة للتثبيت يتيح لك تثبيت الإضافات المطلوبة فقط من قائمة الإضافات المتاحة بالكامل.

قم بتعليم تثبيت الإضافات المقترحة وانقر على موافق. قد يستغرق هذا العملية بضع دقائق لتثبيت الإضافات الأولية، لذلك الآن هو وقت مناسب لتحضير بعض القهوة.

Installing plugins in Jenkins

إنشاء مستخدم المسؤول

بمجرد تثبيت الإضافات، يأتي الخطوة التالية في إنشاء أول مستخدم لدينا. يعتبر هذا المستخدم الأول مسؤول جينكنز وسيحصل على أذونات عالمية، تمامًا مثل المسؤول المؤسسي لخادم Windows. يمكنك رؤية كيف ستبدو صفحة إنشاء أول مستخدم مسؤول أدناه.

Creating a Jenkins admin user

من هذه النقطة فصاعدًا، يمكن الوصول إلى واجهة جينكنز فقط عن طريق إدخال اسم مستخدم وكلمة مرور صحيحة.

ضبط عنوان URL للمسؤول في جينكنز

الخطوة الأخيرة هي إعداد عنوان URL لخدمة جينكنز للتشغيل عليها. يعد هذا العنوان URL واجهة لإدارة برنامج جينكنز ويفضل أن يتم ضبطه على اسم نطاق مؤهل بالكامل (FQDN). يتيح ضبطه على FQDN الوصول عن بُعد تمامًا كموقع ويب. لهذه المقالة ولتبسيط الأمور، قبل العنوان URL الافتراضي.

The Jenkins URL

إعداد الأمان

بعد الانتهاء من التثبيت ، لنقم بتكوين المصادقة. انتقل إلى لوحة التحكم الرئيسية إذا لم تكن مفتوحة بالفعل. من اللوحة الرئيسية ، انقر على إدارة جنكينز ثم انقر على تكوين الأمان العالمي لفتح إعدادات الأمان كما هو مبين أدناه.

Setting Global Security options

في صفحة تكوين الأمان العالمي ، سترى بعض الخيارات للاختيار من بينها. في هذه المقالة ، سنستخدم قاعدة بيانات المستخدم الخاصة بـ جنكينز لإبقاء الأمور بسيطة. كما أنه من الجيد أن نلغي تحديد خانة السماح للمستخدم بالتسجيل كما هو مبين أدناه. إذا تم التحقق منها ، سيسمح لأي مستخدم بإنشاء حساب ومنح نفسه الوصول إلى جنكينز. .

نظرًا للصورة الملتقطة أدناه ، هناك خيارات أخرى للمصادقة.

  • تفويض إلى حاوية خدمة الويب – يتم استخدام هذا إذا كانت لديك حاويات دوكر مع جنكينز معدة بالفعل ويسمح بالمصادقة من خلال الحاوية.
  • LDAP – يتم استخدام هذا الخيار عندما يكون لديك Active Directory بالفعل ترغب في استخدامه للمصادقة

بعد ذلك ، اختر خيار يمكن للمستخدمين المسجلين القيام بأي شيء. في هذا الوضع ، سيحصل كل مستخدم مسجل على التحكم الكامل في جنكينز. قد لا يكون هذا فكرة جيدة للإنتاج حيث يسمح ذلك لأي مستخدم بإجراء تغييرات على الإعدادات.

Configuring global security

تمكين برنامج إضافة PowerShell في جنكينز

بعد إعداد الأمان الأساسي ، حان الوقت لتكوين برنامج إضافة PowerShell في جنكينز. لتثبيت برنامج PowerShell ، انتقل إلى اللوحة الرئيسية ، وانقر على إدارة جنكينز ، ثم إدارة البرامج الإضافية كما هو مبين أدناه.

Installing the PowerShell plugin

هناك المئات من الإضافات لذا أفضل طريقة للعثور على إضافة PowerShell هي البحث عنها. في شريط التصفية ، أدخِل “PowerShell” واختره من القائمة. تحقق من الخانة كما هو موضح أدناه لتمكينها. سيتيح ذلك لـ Jenkins كتابة أوامر PowerShell وسكربتاتها مباشرة في مربعات النص داخل Jenkins ويسمح لـ Jenkins باستدعاء PowerShell بدون الحاجة إلى بدء سطر أوامر PowerShell منفصل.

يمكنك أن ترى أدناه كيف يمكن أن يبدو هذا.

Finding the PowerShell plugin

مع تمكين الإضافة ، يكون Jenkins جاهزًا لتشغيل مهام PowerShell.

إنشاء مهمة PowerShell في Jenkins

تم استكمال تثبيت إضافة PowerShell في Jenkins. وها هي الأشياء الممتعة. دعونا ننشئ مهمة.

في Jenkins ، يتم تعريف المهمة كسلسلة من المهام لإكمالها. سينشئ سيناريو شائع مهمة ستبدأ فيه تجميع برنامج عندما يقوم المطور بتسجيل الشيفرة. تشبه إلى حد كبير مدير المهام في خادم Windows.

سيتم إعداد المهمة التي سننشئها للتحقق من وجود دليل c: \ temp وإدراج ملف نصي في هذا الدليل مع رسالة مخصصة.

لدى Jenkins أنواع مشاريع مختلفة ، يُطلق عليها أحيانًا أنابيب ، والتي تركز على أهداف محددة. ستحتوي أنواع المشاريع المختلفة على إعدادات وخيارات ومعلمات مختلفة اعتمادًا على نوع المشروع الذي تختاره. يمكنك العثور على مزيد من المعلومات حول أنواع المشاريع ومتى يتعين استخدامها على موقع Jenkins.

من لوحة التحكم الرئيسية، انقر فوق عنصر جديد. لاسم الوظيفة، أدخل إنشاء ملف نصي. هذا اختياري ولكن من الجيد تسميته بشيء يعطي معنى.

في هذه المقالة، سنستخدم مشروع Freestyle. هذا يوفر أكبر قدر من المرونة في إنشاء الوظيفة. قم بتحديد مشروع Freestyle وانتقل إلى الأسفل ثم انقر فوق موافق.

Creating a Jenkins project

سيكون هذا المشروع مشروعًا ذي معلمة. وهذا يعني أننا يمكننا أن نطلب من المستخدمين إدخال بيانات وسيتم تمرير تلك البيانات إلى الوظيفة. على سبيل المثال، دعونا نقول لدينا مشروع PowerShell في وظيفة Jenkins يقوم بنسخ ملفات السجل إلى دليل محدد. يمكننا إضافة نموذج إلى الوظيفة سيسأل عن اسم الملف لتضمينه في البناء عند تشغيل الوظيفة.

حدد هذا المشروع يحتوي على معلمات من القائمة المنسدلة. انقر فوق إضافة معلمة واختر معلمة السلسلة. معلمة السلسلة هو المكان الذي تدخل فيه الرسالة التي ترغب في تضمينها في ملف النص.

Creating a parameterized Jenkins job

ثم أضف معلمة اختيار. يجب أن يبدو مثل صورة الشاشة أدناه. هذا الخيار سيمنح المستخدم خيارات لتحديد عنصر من القائمة المنسدلة.

Adding parameters to the project

يجب أن تكون إعدادات الوظيفة تبدو مشابهة للصورة الملتقطة أدناه.

Final job

انتقل إلى القسم Build. انقر على السهم الصغير واختر Windows PowerShell. يتيح هذا لـ Jenkins معرفة أننا نقوم بتشغيل نص برمجة PowerShell. هنا أيضًا ندخل النص البرمجي بـ PowerShell. العملية جاهزة الآن. انقر على حفظ.

Windows PowerShell option

للحصول على نص برمجة عينة لوظيفة PowerShell في Jenkins، دعنا نقوم بإنشاء ملف في دليل temp ونضيف رسالة بسيطة.

هذا هو نص برمجي بسيط سيقوم بإنشاء دليل temp تحت الجذر، إذا لم يكن موجودًا بالفعل، وإنشاء ملف نصي في ذلك الدليل.

# إنشاء دليل Temp
if (-not(Test-Path -Path 'C:\temp'))
{
    New-Item -Path 'C:\temp' -ItemType directory
}

# باستخدام المتغيرات البيئية التي يتعرض لها وظيفة Jenkins 
Set-Content -Path "C:\temp\$($env:Filename).txt" -Value $env:Message

نصيحة: قم بكتابة النص البرمجي في VSCode أو محرر آخر ثم قم بلصقه في المربع.

تشغيل وظيفة PowerShell في Jenkins

أخيرًا، أنت الآن جاهز لتشغيل أول وظيفة. دعنا نعود إلى لوحة المعلومات الرئيسية وسترى وظيفة Create Text File مدرجة في لوحة المعلومات الرئيسية. راجع الصورة أدناه.

Our new Jenkins job

انقر على أيقونة الساعة في الزاوية اليمنى البعيدة واعرض نموذج الوظيفة.

Setting parameters on Jenkins job

في مربع الرسالة، أدخل النص الذي ترغب في إدراجه في الملف النصي وانقر على بناء. بمجرد اكتمال البناء، انقر على إخراج الوحدة. إخراج الوحدة يعرض حالة الوظيفة وما إذا كان تشغيل الوظيفة ناجحًا.

Console output from job

الآن كل ما تبقى للقيام به هو فتح مدير الملفات وفحص الملف. انتقل إلى دليل temp وافتح الملف النصي. سيحتوي على نفس النص الذي أدخلته في مربع رسالة البناء.

Final outcome of Jenkins job

ملخص

لديك الآن فهم أساسي لـ PowerShell في Jenkins. إنه أداة قوية يمكن استخدامها لإدارة نصوص PowerShell الخاصة بك وتحقيق التشغيل التلقائي لجميع العمليات!

Source:
https://adamtheautomator.com/jenkins-powershell/