איך בונים מאגרים מ-GitHub Enterprise ברשת פרטית

באמצעות Cloud Build אפשר ליצור טריגרים במופע של GitHub Enterprise. בדף הזה מוסבר איך להשתמש בטריגרים של GitHub Enterprise כדי להפעיל בנייה בתגובה לקומיטים או לבקשות משיכה ממופע של GitHub Enterprise, ואיך לבנות מאגרים מ-GitHub Enterprise אם המופע מתארח ברשת פרטית.

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

  • מפעילים את Cloud Build API ואת Service Directory API.

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

    כדי להפעיל ממשקי API, נדרשת ההרשאה serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק 'שימוש בשירות'' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים

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

איך בונים מאגרים מ-GitHub Enterprise ברשת פרטית

כדי לחבר את מופע GitHub Enterprise ל-Cloud Build מרשת פרטית, צריך לבצע את השלבים הבאים:

  1. נותנים לסוכן השירות של Cloud Build גישה ל-Service Directory:

    export PROJECT_NUMBER=$(gcloud projects describe PROJECT_ID --format="value(projectNumber)")
    export CLOUD_BUILD_SERVICE_AGENT="service-$PROJECT_NUMBER@gcp-sa-cloudbuild.iam.gserviceaccount.com"
    gcloud projects add-iam-policy-binding  PROJECT_ID_CONTAINING_SERVICE_DIRECTORY \
       --member="serviceAccount:$CLOUD_BUILD_SERVICE_AGENT" \
       --role="roles/servicedirectory.viewer"
    

    מחליפים את מה שכתוב בשדות הבאים:

    • PROJECT_ID הוא מזהה הפרויקט שלכם ב-Cloud Build.
    • PROJECT_ID_CONTAINING_SERVICE_DIRECTORY הוא המזהה שלGoogle Cloud הפרויקט שמכיל את Service Directory.
  2. נותנים לסוכן השירות של Cloud Build גישה למשאב של רשת VPC:

    export PROJECT_NUMBER=$(gcloud projects describe PROJECT_ID --format="value(projectNumber)")
    export CLOUD_BUILD_SERVICE_AGENT="service-$PROJECT_NUMBER@gcp-sa-cloudbuild.iam.gserviceaccount.com"
    gcloud projects add-iam-policy-binding PROJECT_ID_CONTAINING_NETWORK_RESOURCE \
       --member="serviceAccount:$CLOUD_BUILD_SERVICE_AGENT" \
       --role="roles/servicedirectory.pscAuthorizedService"
    

    מחליפים את מה שכתוב בשדות הבאים:

    • PROJECT_ID הוא מזהה הפרויקט שלכם ב-Cloud Build.
    • PROJECT_ID_CONTAINING_NETWORK_RESOURCE הוא המזהה שלGoogle Cloud הפרויקט שמכיל את משאב הרשת.
  3. כדי להגדיר שירות Service Directory, מבצעים את השלבים הבאים:

    1. מגדירים מרחב שמות לשירות:

       gcloud service-directory namespaces create NAMESPACE --location=REGION --project=PROJECT_ID_CONTAINING_SERVICE_DIRECTORY
      

      מחליפים את מה שכתוב בשדות הבאים:

      • NAMESPACE הוא השם של מרחב השמות של Service Directory.
      • LOCATION הוא האזור שבו יוצרים חיבורים ומקשרים מאגרי מידע.
      • PROJECT_ID_CONTAINING_SERVICE_DIRECTORY הוא המזהה שלGoogle Cloud הפרויקט שמכיל את Service Directory.
    2. מגדירים שירות למרחב השמות:

       gcloud service-directory services create SERVICE --namespace=NAMESPACE --location=LOCATION
      

      מחליפים את מה שכתוב בשדות הבאים:

      • SERVICE הוא השם של משאב Service Directory.
      • NAMESPACE הוא השם של מרחב השמות של Service Directory.
      • LOCATION הוא האזור שבו יוצרים חיבורים ומקשרים מאגרי מידע.
    3. מגדירים נקודת קצה לשירות:

       gcloud service-directory endpoints create ENDPOINT_NAME \
         --namespace=NAMESPACE \
         --service=SERVICE \
         --location=LOCATION \
         --address=INSTANCE_IP_ADDRESS \
         --port=PORT \
         --network=projects/PROJECT_ID_CONTAINING_NETWORK/locations/global/networks/NETWORK
      

      מחליפים את מה שכתוב בשדות הבאים:

      • ENDPOINT_NAME הוא השם של נקודת הקצה.
      • NAMESPACE הוא השם של מרחב השמות של Service Directory.
      • SERVICE הוא השם של משאב Service Directory.
      • LOCATION הוא האזור שבו יוצרים חיבורים ומקשרים מאגרי מידע.
      • INSTANCE_IP_ADDRESS היא כתובת ה-IP של מופע GitHub Enterprise ברשת שלכם. לדוגמה, 123.45.67.89. מידע נוסף זמין במאמר בנושא שימוש ב-Service Directory כדי להגיע למארחים מחוץ Google Cloud.
      • PORT הוא שם היציאה שלכם ל-HTTPS.
      • PROJECT_ID_CONTAINING_NETWORK הוא מזהה הפרויקט Google Cloud שמכיל את רשת ה-VPC.
      • NETWORK הוא השם של רשת ה-VPC.

    עכשיו אפשר להשתמש במשאב השירות (projects/{PROJECT_ID}/locations/{LOCATION}/namespaces/{NAMESPACE}/services/{SERVICE}) כדי ליצור את החיבור לפי השלבים הבאים.

  4. קישור של מארח GitHub Enterprise

  5. חיבור מאגר GitHub Enterprise

  6. יוצרים טריגר של GitHub Enterprise כדי לבנות מאגרים שמתארחים במופע של GitHub Enterprise.

שימוש בספריית שירותים כדי להגיע למארחים מחוץ ל- Google Cloud

‫Service Directory משתמש בטווח כתובות ה-IP‏ 35.199.192.0/19 כדי לחבר את המארח שלכם מחוץ ל- Google Cloud. צריך להוסיף את הטווח הזה לרשימת ההיתרים בחומת האש. בנוסף, צריך להגדיר את הרשת הפרטית כך שהיא תנתב את הטווח הזה דרך חיבור Cloud VPN או Cloud Interconnect.

אם החיבור שלכם משתמש ב-Cloud Router, אתם יכולים להגדיר את החיבור כך שיעביר את הטווח לרשת הפרטית שלכם.

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

שימוש ב-Cloud Load Balancing כדי להגיע למארחים מחוץ ל- Google Cloud

אם הגדרת הרשת לא מאפשרת לכם לנתב את טווח כתובות ה-IP של Service Directory‏ 35.199.192.0/19 אל Cloud VPN או אל Cloud Interconnect, אתם יכולים ליצור מאזן עומסים באמצעות Cloud Load Balancing שמנתב את התנועה אל המארח שלכם.

כשיוצרים את נקודת הקצה של Service Directory, חשוב להשתמש בכתובת ה-IP של כלל ההעברה של מאזן העומסים במקום בכתובת ה-IP של המארח. כשיוצרים את נקודת הקצה, אפשר להשתמש במאזן עומסים פנימי מסוג HTTPS או במאזן עומסים פנימי מסוג TCP.

כשיוצרים מאזן עומסים מסוג TCP, כדאי לקחת בחשבון את הנקודות הבאות:

  • כדי להגיע למארח, נדרשת רק קבוצת נקודות קצה (NEG) של קישוריות היברידית.
  • מאזן העומסים של TCP לא דורש את המפתח הפרטי הלא מוצפן של אישור ה-SSL.
  • בהגדרת Cloud VPN צריך להשתמש ב-Cloud Router עם ניתוב דינמי גלובלי. אם Cloud VPN משתמש בניתוב סטטי, אתם יכולים להשתמש ב-proxy שמשתמש ב-Cloud Service Mesh במקום זאת. מידע נוסף זמין במאמר בנושא הגדרת שירותים של קצה הרשת לפריסות היברידיות.

מידע נוסף על יצירת מאזן עומסים ב-HTTPS זמין במאמר בנושא הגדרת מאזן עומסים פנימי לאפליקציות עם קישוריות היברידית. מידע נוסף על יצירת מאזן עומסים מסוג TCP זמין במאמר בנושא הגדרת מאזן עומסי רשת אזורי פנימי מסוג TCP Proxy עם קישוריות היברידית.

השלבים הבאים