חיבור טריגרים לפיתוח גרסת Build של Cloud ל-Infrastructure Manager מאפשר לכם להפוך את פריסות התשתית לאוטומטיות ישירות ממאגרי Git. בתהליך העבודה הזה, בקשות משיכה יוצרות תצוגה מקדימה של פריסה, ואיחודים של commit יוצרים או מעדכנים את הפריסה באופן אוטומטי.
לפני שמתחילים
- מוודאים ש-Infra Manager מופעל.
- מוודאים שיש לכם את הרשאות ה-IAM שנדרשות ליצירת פריסות:
roles/config.admin
- מוודאים שיש לכם חשבון שירות עם ההרשאות הנדרשות. פרטים נוספים זמינים במאמר הגדרת חשבון השירות.
- מזהים את מאגר Git הקיים שמכיל את קובץ התצורה של Terraform. כשמגדירים את האוטומציה שמתוארת בדף הזה, זוהי הגדרת Terraform שבה Infra Manager משתמש כדי לעדכן משאבים.
- מומלץ: להגדיר הגנה על הסתעפות במאגר Git.
פריסה אוטומטית של משאבי Google Cloud
בשלבים הבאים מוסבר איך להגדיר אוטומציה של תצוגה מקדימה ופריסה של הגדרות Terraform שמאוחסנות במאגר Git. פריסה של הגדרת Terraform יכולה להיות עדכון של פריסה קיימת. גרסאות עריכה עשויות למחוק או להחליף משאבים שהוקצו ל- Google Cloud .
כשההגדרה מסתיימת, בקשת משיכה במאגר Git גורמת ל-Infra Manager ליצור תצוגה מקדימה של הפריסה. כשבקשת המשיכה מתמזגת, Infra Manager פורס באופן אוטומטי את ההגדרות של Terraform.
מודול im_cloudbuild_workspace יוצר כמה משאבים, כולל:
- חיבור למאגר של Cloud Build.
- טריגר לפיתוח גרסת Build של Cloud Build שמופעל כשנוצרת בקשת משיכה. הטריגר הזה גורם ל-Infra Manager ליצור פריסת תצוגה מקדימה באמצעות הגדרת Terraform במאגר.
- טריגר של Cloud Build שמופעל כשבקשת משיכה (pull request) מתמזגת עם מאגר Git. הטריגר הזה גורם ל-Infra Manager ליצור או לעדכן את הפריסה באמצעות ההגדרות של Terraform במאגר.
כדי להפוך את פריסת ההגדרות של Terraform לאוטומטית כשמעדכנים את המאגר:
- מתקינים את אפליקציית Cloud Build GitHub בחשבון GitHub או בארגון שבבעלותכם.
-
חשוב לוודא שלטוקן אין תאריך תפוגה ולבחור את ההרשאות הבאות כשמתבקשים לעשות זאת ב-GitHub:
repoו-read:user. אם האפליקציה מותקנת בארגון, חשוב לבחור גם את ההרשאהread:org.אחרי שיוצרים את אסימון הגישה האישי, שומרים אותו במקום מאובטח. משתמשים בטוקן שנוצר בשלבים הבאים.
מעתיקים את המודול
im_cloudbuild_workspaceלקובץmain.tfבמאגר Git:module "im-workspace" { source = "terraform-google-modules/bootstrap/google//modules/im_cloudbuild_workspace" version = "~> 7.0" project_id = "PROJECT_ID" deployment_id = "DEPLOYMENT_ID" im_deployment_repo_uri = "GIT_REPO" im_deployment_ref = "REF" github_app_installation_id = "GIT_APP_ID" github_personal_access_token = "TOKEN" }מחליפים את:
- PROJECT_ID: מזהה הפרויקט שבו פועל Infrastructure Manager.
- DEPLOYMENT_ID: מזהה הפריסה שציינתם. פרטים על אילוצים לגבי מזהה הפריסה מופיעים בקטע שם הפריסה.
- GIT_REPO: ה-URI של מאגר Git.
- REF: ההפניה ל-Git של ההגדרות. השדה הזה אופציונלי. אם לא מציינים את ההפניה, המערכת משתמשת בענף שמוגדר כברירת מחדל במאגר Git.
- GIT_APP_ID: מזהה ההתקנה של אפליקציית Cloud Build GitHub שמשמשת לטריגרים של בקשות משיכה ודחיפה.
- TOKEN: טוקן גישה אישי למאגר ב-GitHub. אם מציינים את הפרמטר, נוצר סוד ב-Secret Manager.
יוצרים פריסה (או מעדכנים את הפריסה הקיימת) באמצעות המודול
im_cloudbuild_workspace:gcloud infra-manager deployments apply projects/PROJECT_ID/locations/LOCATION/deployments/DEPLOYMENT_ID \ --service-account projects/SERVICE_ACCOUNT_PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT \ --git-source-repo=GIT_REPO \ --git-source-directory=DIRECTORY \ --git-source-ref=REFמחליפים את:
- PROJECT_ID: מזהה הפרויקט שבו פועל Infrastructure Manager.
- LOCATION: המיקום שבו Infra Manager פועל. רשימת המיקומים של Infrastructure Manager
- DEPLOYMENT_ID: מזהה הפריסה שציינתם. בקטע שם הפריסה מפורטות המגבלות על מזהה הפריסה.
- SERVICE_ACCOUNT: השם של חשבון השירות שמשמש לקריאה ל-Infra Manager.
- SERVICE_ACCOUNT_PROJECT_ID הוא מזהה הפרויקט של חשבון השירות. בדרך כלל זה אותו פרויקט שבו פועל Infrastructure Manager.
- GIT_REPO: מאגר Git ציבורי.
- DIRECTORY: הספרייה שמכילה את התצורה של Terraform.
- REF: ההפניה ל-Git של ההגדרות. ההפניה היא אופציונלית. אם לא מציינים את ההפניה, המערכת משתמשת בענף שמוגדר כברירת מחדל במאגר Git.
כדי לוודא שמאגר Git מחובר בצורה נכונה ל-Infra Manager, צרו בקשת משיכה במאגר.
כדי לראות את תוצאות האימות של הגדרות Terraform שהועתקו, צופים בבקשת משיכה ב-GitHub.
עכשיו, אחרי שהגדרנו את האוטומציה הזו, הטריגרים לפיתוח גרסת Build גורמים לפעולות הבאות:
- כששולחים בקשת משיכה למאגר, Infra Manager יוצר פריסת תצוגה מקדימה באמצעות הגדרות Terraform שהועתקו מהמאגר ב-Git.
- כשבקשת משיכה מתמזגת במאגר, Infra Manager מעדכן את הפריסה באמצעות הגדרת Terraform המפוצלת שמאוחסנת במאגר Git.
המאמרים הבאים
- אתם יכולים להשתמש ב-Cloud Build כדי לראות את תוצאות ה-build של הטריגרים ל-build.
- לצפות במשאבים שנפרסו באמצעות Infra Manager.
- מעקב אחרי המשאבים של Google Cloud באמצעות רישום ביומן הביקורת של Infrastructure Manager.