פריסת VPC באמצעות Terraform
איך משתמשים ב-Infrastructure Manager כדי לפרוס ענן וירטואלי פרטי (VPC).
במדריך למתחילים הזה נעשה שימוש בתצורת Terraform שמאוחסנת במאגר ציבורי ב-GitHub. ההגדרה מגדירה את ה-VPC להקצאה.
לפני שמתחילים
-
נכנסים לחשבון Google.
אם עדיין אין חשבון, יוצרים חשבון חדש.
-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:
gcloud init -
יוצרים או בוחרים 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 .
מפעילים את Infrastructure Manager API:
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (
roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאהserviceusage.services.enable. איך מקצים תפקידיםgcloud services enable config.googleapis.com
-
מגדירים את האימות:
-
מוודאים שיש לכם את תפקיד ה-IAM Create Service Accounts (
roles/iam.serviceAccountCreator) ואת תפקיד ה-IAM Project Admin (roles/resourcemanager.projectIamAdmin). איך מקצים תפקידים -
יוצרים את חשבון השירות:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
מחליפים את הערך
SERVICE_ACCOUNT_NAMEבשם שרוצים לתת לחשבון השירות. -
מקצים לחשבון השירות את התפקיד
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: מזהה הפרויקט שבו יצרתם את חשבון השירות
-
מוודאים שיש לכם את תפקיד ה-IAM Create Service Accounts (
-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:
gcloud init -
יוצרים או בוחרים 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 .
מפעילים את Infrastructure Manager API:
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (
roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאהserviceusage.services.enable. איך מקצים תפקידיםgcloud services enable config.googleapis.com
-
מגדירים את האימות:
-
מוודאים שיש לכם את תפקיד ה-IAM Create Service Accounts (
roles/iam.serviceAccountCreator) ואת תפקיד ה-IAM Project Admin (roles/resourcemanager.projectIamAdmin). איך מקצים תפקידים -
יוצרים את חשבון השירות:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
מחליפים את הערך
SERVICE_ACCOUNT_NAMEבשם שרוצים לתת לחשבון השירות. -
מקצים לחשבון השירות את התפקיד
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: מזהה הפרויקט שבו יצרתם את חשבון השירות
-
מוודאים שיש לכם את תפקיד ה-IAM Create Service Accounts (
הענקת הרשאות למשאבים בהגדרה
הענקתם את ההרשאות שדרושות להפעלת 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 :
הצגת הסטטוס של הפריסה
אחרי שהפריסה מסתיימת, אפשר לראות את התיאור שלה כדי לבדוק את המידע עליה, כולל הסטטוס.
כדי לראות את תיאור הפריסה:
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 בשם 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 ואתם כבר לא צריכים את הפרויקט, תוכלו למחוק אותו באמצעות השלבים הבאים:
- במסוף Google Cloud , נכנסים לדף Manage resources.
- ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete.
- בתיבת ההנחיה, מקלידים את מזהה הפרויקט ולוחצים על Shut down.
המאמרים הבאים
- מידע נוסף על Infra Manager
- מידע נוסף על Infra Manager ו-Terraform
- עדכון פריסה
- אוטומציה של פריסות.
- כדי לראות קבוצה של הגדרות ומודולים שמוכנים לשימוש עם Google Cloud, אפשר לעיין במאמר מודולים ותוכניות לניהול של Terraform ב-Google Cloud.