שלב את PowerShell ב-Jenkins לאוטומציה חלקה

אם ניהנית מניהול של שרתי Windows לזמן רב, ייתכן שיש לך הרבה סקריפטים ב-PowerShell לביצוע משימות יומיומיות וחיוניות, כמו איפוס סיסמאות, איסוף נתוני לוג או ארכוב קבצי גיבוי. האם אתה יודע שיש אפשרות להשתמש ב-PowerShell ב-Jenkins?

יתכן שיש לך סקריפטים שאתה מפעיל באופן תדיר, אולי אפילו הגדרת אירוע מתזמן במניע לנסות לאוטומציה של הסקריפטים שלך ב-PowerShell.

יש דרך טובה יותר.

במאמר זה, תלמד איך להתקין Jenkins על Windows ולהפעיל סקריפט פשוט ב-PowerShell. תלמד כיצד להתקין את Jenkins, להגדיר אבטחה בסיסית, להפעיל את התוסף של PowerShell, ולהפעיל משימה ליצירת קובץ טקסט פשוט עם פרמטרים שנקלטים מאיתנו.

מאמר זה מיועד להיות הקדמה בסיסית ל-Jenkins. ההגדרה שתלמד לא נועדה בהכרח לסביבות ייצור.

דרישות קדם

רוב מאמר זה יהיה הליכוד. אם אתה מתכוון ללכת בצעדיו, הקפיד לוודא שיש לך כמה דרישות מקדימות מוכנות.

דרישות להפעלת Jenkins כהולכות כל כך, שכל מחשב מודרני כמעט יכול לעשות את זה. דוגמאות במאמר זה יתבססו על Jenkins הרץ על:

  • Windows 10 Enterprise v.1903
  • PowerShell Core v6

אף על פי ש-Jenkins יכול לרוץ על כל פלטפורמה, אני אתמקד ב-Windows 10 Enterprise כדי לשמור על הדברים פשוטים.

התקנת Jenkins

עם התנאים הדרושים נטולים, בואו נתקין את Jenkins.

התקנת Jenkins היא פשוטה וישירה. נווטו אל https://www.jenkins.io/download/ והורידו את גרסת התמיכה הארוכת טווח (LTS). ישנם שתי גרסאות זמינות, גרסת ה-LTS והגרסה השבועית. הגרסה השבועית מתעדכנת באופן תדיר ויכולה להיות בלתי יציבה. לצורך המאמר נשתמש בגרסת ה-LTS. זו הגרסה היציבה ביותר.

כפי שניתן לראות בתמונת המסך למטה, ישנן מספר אפשרויות לבחירה. בחרו בגרסת הווינדוס כדי להתחיל את ההורדה.

Installing the Windows package for Jenkins

לאחר שההורדה הושלמה, פתחו את הארכיון והריצו את המתקין, מקבלים את כל הברירות המחדל. ההתקנה היא פשוטה.

לאחר שההתקנה הושלמה, Jenkins יפתח דפדפן עם הדף התחלת העבודה. הדף מכיל את הסיסמה המנהלית הראשונית כדי לפתוח את Jenkins ולהמשיך את ההגדרות. כפי שניתן לראות למטה, 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 של שירות ה-Jenkins. כתובת זו היא הממשק לניהול התוכנית ג'נקינס ויש להגדיר אותה כמו שם מתמלא בדומיין מלא (FQDN). הגדרתה כ-FQDN תאפשר גישה מרחוק בדיוק כמו אתר אינטרנט. במאמר זה ועל מנת לשמור על דברים פשוטים, יש לקבל את ה-URL ברירת המחדל.

The Jenkins URL

הגדרת אבטחה

עם התקנת התוכנה הושלמה, בואו נגדיר אימות. נווטו ללוח הבקרה הראשי אם הוא עדיין לא פתוח. מהלוח הבקרה הראשי, לחצו על ניהול Jenkins ולאחר מכן לחצו על הגדרות אבטחה גלובליות כפי שמוצג למטה.

Setting Global Security options

בדף הגדרות אבטחה גלובליות, תראו מספר אפשרויות לבחירה. במאמר זה, אנחנו משתמשים במסד הנתונים של משתמשים של Jenkins כדי לשמור על דברים פשוטים. גם כדאי לבטל את הסימון "לאפשר למשתמש להירשם" כפי שמוצג למטה. כאשר הסימון מופעל, כל משתמש יכול ליצור חשבון ולנתק את עצמו ל-Jenkins. .

בהבחנה אל התמונה למטה, ישנם אפשרויות אחרות לאימות.

  • שליחה למתכנת ​​ה- servlet – ישמש כאשר יש לכם קונטיינרים של Docker שכבר הוגדרו עם Jenkins ומאפשר אימות דרך הקונטיינר.
  • LDAP – אפשרות זו משמשת כאשר כבר יש לכם תיקיית פעילות שברצונכם להשתמש בה לאימות

בחרו את האפשרות משתמשים שמחוברים יכולים לעשות כל דבר. במצב זה, כל משתמש שמחובר יהיה לו שליטה מלאה על Jenkins. זה לא רעיון טוב לפעילות, מכיוון שזה מאפשר לכל משתמש לבצע שינויים בהגדרות.

Configuring global security

הפעלת תוסף PowerShell ב- Jenkins

עם הגדרות האבטחה הבסיסיות, עכשיו נגיע להגדרת תוסף PowerShell ב- Jenkins. כדי להתקין את PowerShell, נווטו ללוח הבקרה הראשי, לחצו על ניהול Jenkins, ואז על ניהול תוספים כפי שמוצג למטה.

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

גלול למטה לסעיף בניה. לחץ על החץ הקטן ובחר ב- Windows PowerShell. זה מאפשר ל-Jenkins לדעת שאנו מריצים סקריפט PowerShell. זה גם המקום שבו אנחנו מכניסים את סקריפט ה-PowerShell. העבודה מוכנה עכשיו. לחץ על שמירה.

Windows PowerShell option

לדוגמה לסקריפט שלנו ב-Jenkins PowerShell, בואו ניצור קובץ בתיקיית ה-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/