התחברות למארח GitLab

בדף הזה מוסבר איך לחבר מארח GitLab ל-Cloud Build.

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

  • מפעילים את Cloud Build API ואת Secret Manager API.

    תפקידים שנדרשים להפעלת ממשקי API

    כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאה serviceusage.services.enable. איך מקצים תפקידים

    הפעלת ממשקי ה-API

התחברות למארח GitLab

לפני שיוצרים חיבור מארח למופע GitLab, צריך ליצור אסימוני גישה אישיים ב-GitLab. לשם כך, מבצעים את השלבים הבאים:

  1. מתחברים לחשבון ב-GitLab.

  2. בדף GitLab של המופע, לוחצים על הדמות בפינה השמאלית העליונה.

  3. לוחצים על עריכת הפרופיל.

  4. בסרגל הצד שמימין, לוחצים על Access tokens (אסימוני גישה).

    מוצג הדף Personal Access Tokens (אסימוני גישה אישיים).

  5. יוצרים אסימון גישה עם היקף api כדי להשתמש בו לחיבור מאגרי מידע וניתוק שלהם.

  6. יוצרים אסימון גישה עם היקף read_api כדי לוודא שלמאגרי Cloud Build יש גישה לקוד המקור במאגרים.

המסוף

כדי לחבר את המארח שלכם ב-GitLab ל-Cloud Build:

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

    פתיחת הדף Repositories

    יוצג הדף מאגרי מידע.

  2. בחלק העליון של הדף, לוחצים על הכרטיסייה דור שני.

  3. בבורר הפרויקטים בסרגל העליון, בוחרים את הפרויקט הרצוי. Google Cloud

  4. לוחצים על Create host connection (יצירת חיבור למארח) כדי לחבר מארח חדש ל-Cloud Build.

  5. בחלונית הימנית, בוחרים באפשרות GitLab כספק המקור.

  6. בקטע Configure Connection (הגדרת החיבור), מזינים את הפרטים הבאים:

    • אזור: בוחרים אזור לקישור.

    • שם: מזינים שם לחיבור.

  7. בקטע פרטי המארח, עוברים אל מארח GitLab ובוחרים באפשרות GitLab.com.

  8. אופציונלי: אם רוצים לנהל את מפתחות ההצפנה שמשמשים להצפנה של אסימוני הגישה למאגרי GitLab, עוברים לקטע הצפנה ובוחרים מפתח של Cloud Key Management Service. מידע נוסף זמין במאמר בנושא הפעלת מפתחות הצפנה בניהול הלקוח ב-Secret Manager.

  9. בקטע Personal access tokens (אסימוני גישה אישיים), מזינים את הפרטים הבאים:

    • טוקן גישה ל-API: מזינים את הטוקן עם גישת ההיקף api. הטוקן הזה משמש לחיבור מאגרי מידע ולניתוק שלהם.

    • קריאת טוקן גישה ל-API: מזינים את הטוקן עם גישה בהיקף read_api. טריגרים של Cloud Build משתמשים באסימון הזה כדי לגשת לקוד מקור במאגרים.

  10. לוחצים על Connect.

    אחרי שלוחצים על הלחצן Connect, טוקני הגישה האישיים מאוחסנים בצורה מאובטחת ב-Secret Manager. אחרי חיבור המארח, Cloud Build יוצר גם סוד של webhook בשמכם. אפשר לראות ולנהל את הסודות בדף Secret Manager.

יצרתם חיבור ל-GitLab בהצלחה.

gcloud

לפני שמחברים את מארח GitLab ל-Cloud Build, צריך לבצע את השלבים הבאים כדי לאחסן את פרטי הכניסה:

  1. מאחסנים את האסימון ב-Secret Manager.

  2. מריצים את הפקודה הבאה כדי ליצור סוד של webhook ב-Secret Manager:

     cat /proc/sys/kernel/random/uuid | tr -d '\n' | gcloud secrets create my-gle-webhook-secret --data-file=-
    
  3. אם אתם מאחסנים את הסודות בפרויקט אחר Google Cloud מזה שאתם מתכננים להשתמש בו כדי ליצור חיבור למארח, מזינים את הפקודה הבאה כדי להעניק לפרויקט גישה לסוכן השירות של Cloud Build:

    PN=$(gcloud projects describe PROJECT_ID --format="value(projectNumber)")
    CLOUD_BUILD_SERVICE_AGENT="service-${PN}@gcp-sa-cloudbuild.iam.gserviceaccount.com"
    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member="serviceAccount:${CLOUD_BUILD_SERVICE_AGENT}" \
      --role="roles/secretmanager.admin"
    

    כאשר:

    • PROJECT_ID הוא מזהה הפרויקט. Google Cloud

עכשיו אפשר להמשיך ולחבר את המארח שלכם ב-GitLab אל Cloud Build.

כך עושים את זה:

כדי לחבר את המארח שלכם ב-GitLab ל-Cloud Build:

  1. מזינים את הפקודה הבאה כדי ליצור חיבור ל-GitLab:

    gcloud builds connections create gitlab CONNECTION_NAME \
      --host-uri=HOST_URI \
      --project=PROJECT_ID \
      --region=REGION \
      --authorizer-token-secret-version=projects/PROJECT_ID/secrets/API_TOKEN/versions/SECRET_VERSION \
      --read-authorizer-token-secret-version=projects/PROJECT_ID/secrets/READ_TOKEN/versions/SECRET_VERSION \
      --webhook-secret-secret-version=projects/PROJECT_ID/secrets/WEBHOOK_SECRET/versions/SECRET_VERSION
    

    כאשר:

    • CONNECTION_NAME הוא שם לחיבור של מארח GitLab ב-Cloud Build.
    • HOST_URI הוא ה-URI של מופע GitLab. לדוגמה, https://my-gle-server.net.
    • PROJECT_ID הוא מזהה הפרויקט. Google Cloud
    • REGION הוא האזור של החיבור שלך.
    • API_TOKEN הוא שם האסימון עם apiההיקף.
    • READ_TOKEN הוא שם האסימון עם read_apiההיקף.
    • SECRET_VERSION היא הגרסה של הסוד.
    • WEBHOOK_SECRET הוא הסוד של ה-webhook.

יצרתם חיבור ל-GitLab בהצלחה.

החלפה של טוקנים ישנים או שפג תוקפם ב-GitLab

אם תוקף האסימון שלכם לגישה ל-GitLab יפוג, החיבור של מארח Cloud Build למאגר GitLab ינותק. כתוצאה מכך, יוצגו שגיאות במקרים הבאים:

  • כשמנסים לקשר מאגר GitLab לחיבור Cloud Build, מופיעה הודעה.Failed to fetch repositories to link. Check that Cloud Build is still authorized to access data from the selected connection

  • בדף Triggers (טריגרים), כשלוחצים על Run (הפעלה), נפתח הדף Run trigger (הפעלת טריגר) ומוצגת הודעה Failed to list branches. You can still enter one manually.

כדי לבצע רוטציה של טוקן ישן או שפג תוקפו לחיבור שלכם:

  1. מאתרים את הסודות שמשויכים לחיבור המארח:

    1. מריצים את הפקודה הבאה:

      gcloud builds connections describe CONNECTION_PATH --region=REGION
      

      כאשר:

      • CONNECTION_PATH הוא הנתיב של חיבור המארח שלכם ב-GitLab ב-Cloud Build, בפורמט projects/PROJECT_ID/locations/REGION/connections/CONNECTION_NAME.
      • REGION הוא האזור של החיבור שלך.
    2. בפלט של הפקודה, מחפשים את הערכים של השדות של אסימון המשתמש. ‫readAuthorizerCredential.userTokenSecretVersion shows the Secret Manager name of the read_api token, and authorizerCredential.userTokenSecretVersion shows the Secret Manager name of the api token. השמות האלה מאוחסנים כסודות ב-Secret Manager.

  2. מבצעים רוטציה לכל טוקן גישה ב-GitLab:

    1. עוברים למאגר GitLab שמקושר לחיבור המארח של Cloud Build.

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

    3. מעתיקים את המזהה של הטוקן שהוחלף.

  3. יוצרים גרסה חדשה של סוד לכל טוקן:

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

      פתיחת הדף Secret Manager

    2. לכל טוקן שביצעתם לו רוטציה, מחפשים את שם הסוד שזיהיתם בשלב 1, לוחצים על פעולות ואז על הוספת גרסה חדשה.

    3. בחלון Add new version (הוספת גרסה חדשה), מזינים את המזהה של האסימון שהוחלף ולוחצים על Add new version (הוספת גרסה חדשה).

מידע נוסף זמין במאמר בנושא תפוגה של אסימון גישה במסמכי התיעוד של GitLab.

המאמרים הבאים