במאמר הזה מוסבר איך להריץ בנייה במאגרים פרטיים. אם אתם חדשים בנושא בריכות פרטיות, כדאי לקרוא את הסקירה הכללית על בריכות פרטיות.
לפני שמתחילים
מוודאים שיצרתם מאגר פרטי לפי השלבים שמפורטים במאמר יצירה וניהול של מאגרים פרטיים.
כדי להשתמש בדוגמאות של שורת הפקודה במדריך הזה, צריך להתקין ולהגדיר את Google Cloud CLI.
אתם יכולים להשתמש באותו פרויקט Google Cloud כדי ליצור את המאגר הפרטי ואת ה-builds של Cloud Build, או להשתמש בפרויקטים שונים. אם ה-builds נמצאים בפרויקט אחר ממאגר המשאבים הפרטי, צריך להגדיר את פרויקט ברירת המחדל ב-CLI של gcloud לפרויקט שממנו מגיעים ה-builds:
gcloud config set project BUILD_ORIGIN_PROJECT_ID
הרשאות IAM
כדי להריץ גרסאות build באמצעות ה-CLI של gcloud או Cloud Build API, צריך להעניק את התפקיד WorkerPool User בפרויקט של המאגר הפרטי למשתמש או לחשבון השירות שמבקש את גרסת ה-build.
כדי להריץ גרסאות build אוטומטיות באמצעות טריגרים:
- אם הפרויקט שבו מתחילים את הבנייה זהה לפרויקט שבו קיים המאגר הפרטי, לא צריך להעניק הרשאות.
אם הפרויקט שבו מתחילים את הבנייה שונה מהפרויקט שבו נמצא מאגר העובדים הפרטי, צריך להעניק את התפקיד WorkerPool User לחשבון השירות שבו משתמשים עם הטריגר בפרויקט workerpool שבו נוצרות הבניות:
המסוף
פותחים את הדף IAM במסוף Google Cloud .
בתפריט הנפתח של בחירת הפרויקט בחלק העליון של הדף, בוחרים את הפרויקט שמכיל את המאגר הפרטי.
לוחצים על הענקת גישה.
מזינים את הגדרות התפקיד והמשתמש הראשי הבאות:
Add principals (הוספת חשבונות משתמשים): מזינים את כתובת האימייל של חשבון השירות שבו אתם משתמשים עם הטריגר.
הקצאת תפקידים: בוחרים את התפקיד Cloud Build WorkerPool User.
לוחצים על שמירה כדי לשמור את הרשאות ה-IAM החדשות.
gcloud
כדי להוסיף את חשבון השירות של ה-build מפרויקט הטריגר לפרויקט של מאגר העובדים עם התפקיד cloudbuild.workerPoolUser:
gcloud projects add-iam-policy-binding PRIVATEPOOL_PROJECT_ID \ --member=serviceAccount:SERVICE_ACCOUNT \ --role=roles/cloudbuild.workerPoolUserמחליפים את ערכי ה-placeholder בפקודה שלמעלה בערכים הבאים:
-
PRIVATEPOOL_PROJECT_IDהוא מזהה הפרויקט שבו פועל המאגר הפרטי של ה-build. -
SERVICE_ACCOUNTהיא כתובת האימייל של חשבון השירות שבו אתם משתמשים עם הטריגר שמפעיל את ה-build.
הרצת בנייה
אפשר לשלוח גרסאות build מאותו Google Cloud פרויקט שבו יצרתם את המאגר הפרטי, או מפרויקט Google Cloud אחר. אפשר לציין את המאגר הפרטי בקובץ התצורה של ה-build או ישירות בפקודה gcloud:
ציון המאגר הפרטי בקובץ התצורה של ה-build:
בקובץ התצורה של Cloud Build, מוסיפים את האפשרות
poolומציינים את שם המשאב המלא של המאגר הפרטי להרצת ה-build:YAML
steps: - name: 'bash' args: ['echo', 'I am running in a private pool!'] options: pool: name: 'projects/PRIVATEPOOL_PROJECT_ID/locations/REGION/workerPools/PRIVATEPOOL_ID'JSON
{ "steps": [ { "name": "bash", "args": [ "echo", "I am running in a private pool!" ] } ], "options": { "pool" : { "name" : "projects/PRIVATEPOOL_PROJECT_ID/locations/REGION/workerPools/PRIVATEPOOL_ID" } } }מחליפים את ערכי ה-placeholder בקובץ התצורה שלמעלה בערכים הבאים:
-
PRIVATEPOOL_PROJECT_ID: Google Cloud הפרויקט שבו נמצא המאגר הפרטי. -
REGION: האזור שבו יצרתם את המאגר הפרטי. -
PRIVATEPOOL_ID: המזהה הייחודי של המאגר הפרטי שציינתם כשנוצר המאגר הפרטי.
-
משתמשים בקובץ ההגדרות של ה-build שנוצר למעלה כדי להריץ את ה-build באמצעות
gcloudאו API או באמצעות טריגרים. אם המופע שלכם מתארח בשרת מקומי, Cloud Build מספק גם תמיכה בפונקציונליות של טריגרים למספר מערכות חיצוניות לניהול קוד מקור, כמו GitHub Enterprise או Bitbucket Server.
ציון המאגר הפרטי בפקודת gcloud:
אפשר לציין את המאגר הפרטי בפקודה gcloud במקום בקובץ התצורה של ה-build. לדוגמה, נניח שיש לכם את קובץ הגדרות ה-build הבא:
YAML
steps:
- name: 'bash'
args: ['echo', 'I am running in a private pool!']
JSON
{
"steps": [
{
"name": "bash",
"args": [
"echo",
"I am running in a private pool!"
]
}
],
}
הפקודה הבאה מבצעת build באמצעות קובץ הגדרות ה-build ומציינת את מאגר העובדים בפקודה:
gcloud builds submit --config=CONFIG_FILE
--worker-pool=projects/PRIVATEPOOL_PROJECT_ID/locations/REGION/workerPools/PRIVATEPOOL_ID
מחליפים את ערכי ה-placeholder בפקודות שלמעלה בערכים הבאים:
-
CONFIG_FILE: הנתיב לקובץ הגדרות ה-build. -
PRIVATEPOOL_ID: המזהה הייחודי של המאגר הפרטי שציינתם כשנוצר המאגר הפרטי. -
PRIVATEPOOL_PROJECT_ID: Google Cloud הפרויקט שבו נמצא המאגר הפרטי. -
REGION: האזור שבו יצרתם את המאגר הפרטי.
מה השלב הבא?
- איך יוצרים ומנהלים מאגרי כתובות פרטיים
- איך משתמשים ב-VPC Service Controls עם מאגרי כתובות פרטיים
- איך יוצרים ומנהלים טריגרים לבנייה
- איך יוצרים מאגרים מ-GitHub Enterprise
- איך יוצרים מאגרי מידע מ-Bitbucket Server