פריסת VPC באמצעות Terraform

איך משתמשים ב-Infrastructure Manager כדי לפרוס ענן וירטואלי פרטי (VPC).

במדריך למתחילים הזה נעשה שימוש בתצורת Terraform שמאוחסנת במאגר ציבורי ב-GitHub. ההגדרה מגדירה את ה-VPC להקצאה.

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

  1. נכנסים לחשבון Google.

    אם עדיין אין חשבון, יוצרים חשבון חדש.

  2. התקינו את ה-CLI של Google Cloud.

  3. אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

  4. כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:

    gcloud init
  5. יוצרים או בוחרים Google Cloud פרויקט.

    תפקידים שנדרשים כדי לבחור או ליצור פרויקט

    • Select a project: כדי לבחור פרויקט לא צריך תפקיד IAM ספציפי – אפשר לבחור כל פרויקט שקיבלתם בו תפקיד.
    • יצירת פרויקט: כדי ליצור פרויקט, צריך את התפקיד Project Creator (יצירת פרויקטים) (roles/resourcemanager.projectCreator), שכולל את ההרשאה resourcemanager.projects.create. איך מקצים תפקידים
    • יוצרים Google Cloud פרויקט:

      gcloud projects create PROJECT_ID

      מחליפים את PROJECT_ID בשם של פרויקט Google Cloud שיוצרים.

    • בוחרים את הפרויקט שיצרתם: Google Cloud

      gcloud config set project PROJECT_ID

      מחליפים את PROJECT_ID בשם הפרויקט ב- Google Cloud .

  6. מוודאים שהחיוב מופעל בפרויקט Google Cloud .

  7. מפעילים את Infrastructure Manager API:

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

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

    gcloud services enable config.googleapis.com
  8. מגדירים את האימות:

    1. מוודאים שיש לכם את תפקיד ה-IAM ‏Create Service Accounts ‏(roles/iam.serviceAccountCreator) ואת תפקיד ה-IAM ‏Project Admin ‏(roles/resourcemanager.projectIamAdmin). איך מקצים תפקידים
    2. יוצרים את חשבון השירות:

      gcloud iam service-accounts create SERVICE_ACCOUNT_NAME

      מחליפים את הערך SERVICE_ACCOUNT_NAME בשם שרוצים לתת לחשבון השירות.

    3. מקצים לחשבון השירות את התפקיד roles/config.agent ב-IAM:

      gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" --role=roles/config.agent

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

      • SERVICE_ACCOUNT_NAME: השם של חשבון השירות
      • PROJECT_ID: מזהה הפרויקט שבו יצרתם את חשבון השירות
  9. התקינו את ה-CLI של Google Cloud.

  10. אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

  11. כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:

    gcloud init
  12. יוצרים או בוחרים Google Cloud פרויקט.

    תפקידים שנדרשים כדי לבחור או ליצור פרויקט

    • Select a project: כדי לבחור פרויקט לא צריך תפקיד IAM ספציפי – אפשר לבחור כל פרויקט שקיבלתם בו תפקיד.
    • יצירת פרויקט: כדי ליצור פרויקט, צריך את התפקיד Project Creator (יצירת פרויקטים) (roles/resourcemanager.projectCreator), שכולל את ההרשאה resourcemanager.projects.create. איך מקצים תפקידים
    • יוצרים Google Cloud פרויקט:

      gcloud projects create PROJECT_ID

      מחליפים את PROJECT_ID בשם של פרויקט Google Cloud שיוצרים.

    • בוחרים את הפרויקט שיצרתם: Google Cloud

      gcloud config set project PROJECT_ID

      מחליפים את PROJECT_ID בשם הפרויקט ב- Google Cloud .

  13. מוודאים שהחיוב מופעל בפרויקט Google Cloud .

  14. מפעילים את Infrastructure Manager API:

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

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

    gcloud services enable config.googleapis.com
  15. מגדירים את האימות:

    1. מוודאים שיש לכם את תפקיד ה-IAM ‏Create Service Accounts ‏(roles/iam.serviceAccountCreator) ואת תפקיד ה-IAM ‏Project Admin ‏(roles/resourcemanager.projectIamAdmin). איך מקצים תפקידים
    2. יוצרים את חשבון השירות:

      gcloud iam service-accounts create SERVICE_ACCOUNT_NAME

      מחליפים את הערך SERVICE_ACCOUNT_NAME בשם שרוצים לתת לחשבון השירות.

    3. מקצים לחשבון השירות את התפקיד roles/config.agent ב-IAM:

      gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" --role=roles/config.agent

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

      • SERVICE_ACCOUNT_NAME: השם של חשבון השירות
      • PROJECT_ID: מזהה הפרויקט שבו יצרתם את חשבון השירות

הענקת הרשאות למשאבים בהגדרה

הענקתם את ההרשאות שדרושות להפעלת Infra Manager, אבל אתם צריכים להעניק גם הרשאות שספציפיות למשאבים שמתוארים בהגדרה שאתם פורסים.

נותנים הרשאות ל-VPC, שהוא המשאב שמוגדר בתצורת Terraform.

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member=serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \
    --role=roles/compute.networkAdmin

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

  • SERVICE_ACCOUNT_NAME: השם של חשבון השירות.
  • PROJECT_ID: מזהה הפרויקט.

תצוגה מקדימה של הפריסה

לפני שיוצרים פריסה, אפשר ליצור תצוגה מקדימה של הפריסה. אתם יכולים להשתמש בתצוגה המקדימה הזו כדי לוודא שהמשאבים שמתכננים להקצות הם אלה שרציתם.

בפקודה הבאה יש 4 ערכים מאוכלסים ללא ערך ברירת מחדל. הערכים האלה הם: מזהה הפרויקט, שם חשבון השירות, המיקום us-central1 והשם quickstart-vpc של הרשת שאתם יוצרים.

כדי ליצור תצוגה מקדימה, משתמשים בפקודה הבאה:

    gcloud infra-manager previews create projects/PROJECT_ID/locations/us-central1/previews/quickstart-preview \
        --service-account projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \
        --git-source-repo=https://github.com/terraform-google-modules/terraform-google-network \
        --git-source-directory=modules/vpc \
        --git-source-ref=main \
        --input-values=project_id=PROJECT_ID,network_name=quickstart-vpc

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

יצירת פריסה

משתמשים ב-Infra Manager כדי ליצור פריסה. המשמעות היא ש-Infra Manager מקצה את המשאבים שמוגדרים בתצורת Terraform.

בהגדרה של המדריך הזה יש ארבעה ערכים ללא ערך ברירת מחדל. הפקודה הבאה מוסיפה את הערכים האלה: מזהה הפרויקט, שם חשבון השירות, המיקום us-central1 והשם quickstart-vpc של הרשת שאתם יוצרים.

gcloud infra-manager deployments apply projects/PROJECT_ID/locations/us-central1/deployments/quickstart-deployment \
    --service-account=projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \
    --git-source-repo=https://github.com/terraform-google-modules/terraform-google-network \
    --git-source-directory=modules/vpc \
    --git-source-ref=main \
    --input-values=project_id=PROJECT_ID,network_name=quickstart-vpc

בסיום הפריסה, יוצג:

Creating the deployment...done

ה-VPC נוצר והוגדר כמו שמתואר בהגדרה.

הצגת תוצאות הבנייה ב-Cloud Build

כדי לראות את עבודת ה-Cloud Build ש-Infra Manager השתמש בה כדי ליצור את הפריסה, פותחים את הדף Build History במסוף Google Cloud :

פתיחת הדף Build History

הצגת הסטטוס של הפריסה

אחרי שהפריסה מסתיימת, אפשר לראות את התיאור שלה כדי לבדוק את המידע עליה, כולל הסטטוס.

כדי לראות את תיאור הפריסה:

gcloud infra-manager deployments describe projects/PROJECT_ID/locations/us-central1/deployments/quickstart-deployment

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

במדינה, מוצג ACTIVE.

הצגת פרטים על ה-VPC שהוקצה

צפייה בפרטים על ה-VPC שהוקצה:

gcloud infra-manager resources list --revision=projects/PROJECT_ID/locations/us-central1/deployments/quickstart-deployment/revisions/REVISION_ID

מחליפים את REVISION_ID במזהה של הגרסה האחרונה. המספר הזה הוא r-0, אלא אם ביצעתם פריסה כמה פעמים. אפשר לראות את המזהה של הגרסה האחרונה בתיאור הפריסה בקטע הקודם.

צפייה ב-VPC במסוף

צופים ב-VPC במסוף:

מעבר לרשתות VPC

רואים את ה-VPC בשם quickstart-vpc. זהו ה-VPC שהוקצה על ידי Infra Manager.

הסרת המשאבים

כדי לא לצבור חיובים בחשבון Google Cloud על המשאבים שבהם השתמשתם בדף הזה, אתם צריכים למחוק את המשאבים שאין לכם יותר צורך בהם.

מחיקת ה-VPC

מוחקים את ה-VPC ואת המטא-נתונים של הפריסה:

gcloud infra-manager deployments delete projects/PROJECT_ID/locations/us-central1/deployments/quickstart-deployment

אופציונלי: מחיקת הפרויקט

אם פרסתם את הפתרון בפרויקט חדש Google Cloud ואתם כבר לא צריכים את הפרויקט, תוכלו למחוק אותו באמצעות השלבים הבאים:

  1. במסוף Google Cloud , נכנסים לדף Manage resources.

    כניסה לדף Manage resources

  2. ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete.
  3. בתיבת ההנחיה, מקלידים את מזהה הפרויקט ולוחצים על Shut down.

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