הפעלת בנייה במאגר פרטי

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

לפני שמתחילים

  • מוודאים שיצרתם מאגר פרטי לפי השלבים שמפורטים במאמר יצירה וניהול של מאגרים פרטיים.

  • כדי להשתמש בדוגמאות של שורת הפקודה במדריך הזה, צריך להתקין ולהגדיר את 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 שבו נוצרות הבניות:

    המסוף

    1. פותחים את הדף IAM במסוף Google Cloud .

      פתיחת הדף 'הרשאות IAM'

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

    3. לוחצים על הענקת גישה.

    4. מזינים את הגדרות התפקיד והמשתמש הראשי הבאות:

      • Add principals (הוספת חשבונות משתמשים): מזינים את כתובת האימייל של חשבון השירות שבו אתם משתמשים עם הטריגר.

      • הקצאת תפקידים: בוחרים את התפקיד Cloud Build WorkerPool User.

    5. לוחצים על שמירה כדי לשמור את הרשאות ה-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:

  1. בקובץ התצורה של 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: המזהה הייחודי של המאגר הפרטי שציינתם כשנוצר המאגר הפרטי.
  2. משתמשים בקובץ ההגדרות של ה-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: האזור שבו יצרתם את המאגר הפרטי.

מה השלב הבא?