בדף הזה מוסבר איך משתמשים במנהל התשתיות כדי להקצות קבוצה של משאביGoogle Cloud שמוגדרים בתצורה של Terraform.
כדי לראות תצוגה מקדימה של פריסה בלי להקצות משאבים, קראו את המאמר תצוגה מקדימה של פריסה.
אפשר לפרוס בכמה פרויקטים ובכמה מיקומים. לחשבון השירות נדרשות הרשאות למשאבים ולפרויקטים שבהם המשאבים פרוסים. רשימת ההרשאות מפורטת במאמר בקרת גישה באמצעות IAM.
ההנחה היא שאתם מכירים את Terraform. למידע נוסף, קראו את המאמר Terraform ו-Infra Manager.
לפני שמתחילים
- מפעילים את Infra Manager.
- מוודאים שיש לכם את הרשאות ה-IAM שנדרשות כדי ליצור פריסות:
roles/config.admin. - מוודאים שיש לכם חשבון שירות עם ההרשאות הנדרשות. לפרטים, ראו הגדרת חשבון השירות.
- מזהים את תצורת Terraform שרוצים לפרוס. חשוב לוודא שההגדרות של Terraform עומדות באילוצים. חשוב לוודא שההגדרות לא מכילות מידע אישי רגיש.
- אם רוצים לראות תצוגה מקדימה של הפריסה לפני הגדרת המשאבים, אפשר לעיין במאמר תצוגה מקדימה של פריסה.
מוודאים שהמכסה של הארגון למוצרים שמשויכים לתשתית המיועדת מספיקה. יכול להיות שתיתקלו בשגיאות פריסה אם התשתית המיועדת חורגת מהמכסה של הארגון למוצרים שבהם הפריסה משתמשת. מידע נוסף זמין במאמר מכסות ומגבלות.
Infra Manager משתמש ב-Cloud Build כדי ליצור, לעדכן או להציג בתצוגה מקדימה פריסה. זמן הקצוב לתפוגה של יצירה ועדכון של פריסות הוא שעתיים, והזמן הקצוב לתפוגה של תצוגה מקדימה של פריסה הוא שעה.
אם אתם מנהלים כמה משאבים בהגדרות אישיות אחת שחורגות מהמגבלה הזו, כדאי לפצל את ההגדרות האישיות לכמה פריסות.
מתן הרשאות ספציפיות להגדרה
כדי לפרוס משאבי Google Cloud שצוינו בהגדרות של Terraform, חשבון השירות שמשמש לקריאה ל-Infra Manager צריך את ההרשאות הנדרשות שספציפיות למשאבים שאתם פורסים.
ההרשאות האלה הן בנוסף להרשאות שנדרשות כדי להשתמש בשירות Infra Manager.
במאמר הגדרת חשבון השירות מוסבר איך נותנים הרשאות למשאבי Google Cloud ואיך מוודאים שיש לכם גישה לפרויקטים הנדרשים.
חיבור מאגר Git פרטי ומארח ל-Cloud Build
אם אתם פורסים הגדרות אישיות של Terraform ממאגר Git פרטי, אתם צריכים לחבר את המארח והמאגר של Git ל-Cloud Build.
GitHub
GitHub Enterprise
GitLab
GitLab Enterprise
Developer Connect
יצירת פריסה באמצעות הגדרות אישיות של Terraform
אתם יכולים להשתמש ב-Infra Manager כדי לפרוס הגדרות של Terraform בכמה דרכים:
- מומלץ: להשתמש ב-Infra Manager במסוף Google Cloud כדי לבחור מקור, לראות את פרטי הפריסה, להציג תצוגה מקדימה ולפרוס הגדרות של Terraform. אתם יכולים להשתמש ב-Infra Manager ממסוף Google Cloud כדי לפרוס מקטגוריות של Cloud Storage וממאגרי Git.
- אתם יכולים להשתמש ב-Infra Manager ב-Google Cloud CLI כדי לפרוס הגדרות Terraform מ:
- קטגוריות של Cloud Storage
- מאגרים של Git
- ספריות מקומיות
במאמר מודולים ותוכניות לניהול של Terraform ב- Google Cloud מפורטות דוגמאות ותבניות של הגדרות Terraform שאפשר להשתמש בהן עם Infra Manager.
כדי לקבל מידע נוסף על יצירת פריסה, בחרו את הכרטיסייה עם תהליך העבודה שבחרתם.
המסוף
בקטע הזה מוסבר איך לפרוס הגדרות של Terraform באמצעות Infra Manager במסוף Google Cloud .
- נכנסים לדף Infra Manager במסוף Google Cloud .
- לוחצים על Create כדי ליצור פריסה חדשה.
בדף Deployment details, מגדירים את הפרמטרים הראשוניים של הפריסה.
מחליפים את:
- מזהה פריסה: בשדה מזהה פריסה, מזינים שם תיאורי לפריסה. למידע נוסף על מגבלות במתן שמות, עיינו במסמכי התיעוד בנושא שם הפריסה.
- אזור: בוחרים אזור נתמך מהתפריט הנפתח.
- Terraform version: בוחרים גרסה נתמכת של Terraform מהתפריט הנפתח. רשימת הגרסאות הזמינות של Terraform מאוכלסת באופן אוטומטי על סמך האזור שבחרתם. כברירת מחדל, נבחרת הגרסה העדכנית ביותר שנתמכת בתוכנית בחינם (
1.5.7). אם בוחרים בגרסה בתשלום (כמו1.16.5), חלים חיובים על פריסה וניהול. מידע נוסף מופיע במאמר גרסאות נתמכות של Terraform. - חשבון שירות: בוחרים חשבון שירות קיים או יוצרים חשבון חדש. Infra Manager מאמת באופן אוטומטי את ההרשאות על סמך התשתית שמתוארת בהגדרות של Terraform. למידע נוסף על עבודה עם חשבונות שירות ו-Infra Manager, קראו את המאמר הגדרת חשבון השירות.
- מקור קובץ התצורה של Terraform: לוחצים על המתג כדי לבחור ב-Git או ב-Cloud Storage כמקור לקובץ התצורה של Terraform שרוצים לפרוס.
- ב-Git, מחליפים את:
- מאגר Git: מציינים כתובת URL, הסתעפות או תג של מאגר Git ציבורי או פרטי.
אם מציינים מאגר Git פרטי, צריך לוודא שהמארח והמאגר מחוברים ל-Cloud Build. - אופציונלי: ספריית Git: הספרייה במאגר Git שמכילה את הגדרות Terraform.
- אופציונלי: הפניה ל-Git: ההפניה ל-Git של ההגדרה. אם לא תציינו הפניה, המערכת תשתמש בהסתעפות שמוגדרת כברירת מחדל במאגר Git.
- מאגר Git: מציינים כתובת URL, הסתעפות או תג של מאגר Git ציבורי או פרטי.
- בשדה קטגוריה של Cloud Storage, מחליפים את:
- Source: השם של קטגוריית האחסון שבה נשמרת ההגדרה.
- ב-Git, מחליפים את:
בדף Terraform details, משתמשים בשדות Key ו-Value כדי לאכלס את רשימת ערכי הקלט בהגדרות של Terraform.
הערכים יכולים להיות כל ערכי קלט בתצורת Terraform, כולל ערכים שלא מוגדרים כברירת מחדל. אם כל ערכי הקלט מוגדרים כברירת מחדל בתצורה של Terraform, הערכים האלה הם אופציונליים. לוחצים על המשך.
בדף Advanced details, מגדירים פרמטרים אופציונליים לפריסה.
מחליפים את:
- תוויות: תוויות והערות הן צמדי מפתח/ערך של טקסט חופשי. אפשר להשתמש בהן כדי לצרף מידע שרירותי שמשויך למשאב. מידע נוסף זמין במאמרי העזרה בנושא הערות.
- מאגר Worker: המשאב של מאגר ה-Worker שבו תתבצע המשימה של Cloud Build.
הפורמט של מאגר ה-workers הוא
projects/{project}/locations/{location}/workerPools/{workerPoolId}. - קטגוריה של Cloud Storage לפריטי מידע שנוצרו בתהליך הפיתוח: המיקום של היומנים ופריטי המידע שנוצרו בתהליך הפיתוח של Cloud Build ב-Cloud Storage. הפורמט של הנתיב הוא
gs://{bucket}/{folder}.
- לוחצים על Create deployment כדי להתחיל את הפריסה של הגדרות Terraform. בדף Deployments, הפריסה תתווסף לרשימה יחד עם ה-Status שלה. כדי לקבל פרטים נוספים על הפריסה, בוחרים את הפריסה כדי לעבור לדף Deployment details.
- הצלחת, פרסתם את ההגדרות של Terraform באמצעות Infra Manager.
לוחצים על Continue.
CLI של gcloud
בקטע הזה מוסבר איך לפרוס הגדרת Terraform שמאוחסנת בקטגוריה של Cloud Storage. קטגוריית אחסון מאפשרת לכם לשלוט בגישה להגדרות האישיות.
- מוודאים שההגדרות של Terraform נמצאות בקטגוריה של Cloud Storage. פרטים נוספים זמינים במאמר העלאת הגדרה לקטגוריית אחסון.
אם קטגוריית האחסון נמצאת בפרויקט אחר מהפרויקט שבו אתם מריצים את Infra Manager, אתם צריכים לוודא שלחשבון השירות של Infra Manager יש הרשאת קריאה לקטגוריה. פרטים נוספים זמינים במאמר הגדרת חשבון השירות.
אם קטגוריית האחסון נמצאת באותו פרויקט כמו Infra Manager, הרשאת הקריאה לקטגוריה כבר מופעלת.
פורסים את קובץ התצורה של Terraform:
gcloud infra-manager deployments apply projects/PROJECT_ID/locations/LOCATION/deployments/DEPLOYMENT_ID \ --service-account projects/SERVICE_ACCOUNT_PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT \ --gcs-source gs://BUCKET_NAME/OBJECT_NAME \ --quota-validation=QUOTA_VALIDATION \ --input-values=INPUT_1_NAME=VALUE,INPUT_2_NAME=VALUE \ --tf-version-constraint=TERRAFORM_VERSION \ --annotations="ANNOTATION_KEY=ANNOTATION_VALUE" --provider-source=SERVICE_MAINTAINED
- PROJECT_ID: מזהה הפרויקט שבו פועל Infra Manager.
- LOCATION: המיקום שבו פועל Infra Manager. רשימת המיקומים התקינים מופיעה במאמר מיקומים של Infra Manager.
- DEPLOYMENT_ID: מזהה הפריסה שציינתם. בקטע שם הפריסה מפורטות המגבלות על מזהה הפריסה.
- SERVICE_ACCOUNT_PROJECT_ID הוא מזהה הפרויקט של חשבון השירות. בדרך כלל זה אותו פרויקט שבו פועל Infra Manager.
- SERVICE_ACCOUNT: השם של חשבון השירות שמשמש לקריאה ל-Infra Manager.
- BUCKET_NAME: השם של קטגוריית האחסון שבה מאוחסנת התצורה.
- OBJECT_NAME: שם האובייקט של קובץ התצורה. האובייקט הזה יכול להיות ספרייה או קובץ ZIP, אבל לא קובץ Terraform. אם אתם משתמשים בניהול גרסאות של אובייקטים, אתם יכולים גם לציין את מספר הדור של האובייקט. פרטים נוספים זמינים במאמר שימוש באובייקטים עם גרסאות.
אם קטגוריית האחסון היא נתיב הבסיס של הגדרת Terraform, אז OBJECT_NAME הוא אופציונלי.
- אופציונלי: QUOTA_VALIDATION: הערך שקובע אם אימות המכסות של המשאבים בקובצי התצורה של Terraform מופעל או נאכף כשיוצרים פריסה. הערכים האפשריים כוללים:
-
ENABLED: הפעלת אימות של מכסת המחשוב למשאבים בקובצי תצורה של Terraform. מאפשר לראות משאבים עם מכסות לא מספיקות. -
ENFORCED: אכיפת אימות המכסות, כדי שהפריסה תיכשל אם אין מספיק מכסות זמינות לתשתית שמוגדרת בקובץ התצורה של Terraform.
אם לא מגדירים את QUOTA_VALIDATION, אימות המכסות בקובצי התצורה של Terraform מושבת. זה ערך ברירת המחדל. אימות המכסות חל על משאבים מוגבלים של Google Cloud . מידע נוסף זמין במאמר מכסות ומגבלות.
-
INPUT_1_NAME ו-INPUT_2_NAME: כל ערכי הקלט בתצורה של Terraform, כולל ערכים שלא מוגדרים כברירת מחדל. לדוגמה, אפשר לציין את הפרויקט שבו פורסים את המשאבים בתור
project_id=my-project.אם כל ערכי הקלט מוגדרים כברירת מחדל, הדגל הזה הוא אופציונלי.
- TERRAFORM_VERSION: אופציונלי. גרסת Terraform שבה Infra Manager ישתמש כדי ליצור את הפריסה. כאן מופיעה רשימת הגרסאות הנתמכות של Terraform. אם מסירים את הדגל האופציונלי הזה, כברירת מחדל המערכת משתמשת בגרסה העדכנית ביותר של Terraform שנתמכת בתוכנית בחינם (
1.5.7). כדי להשתמש בגרסה בתשלום (כמו1.16.5), צריך לציין את הגרסה באופן מפורש. - אופציונלי: ANNOTATION_KEY ו-ANNOTATION_VALUE מייצגים צמד של מפתח/ערך של טקסט חופשי שאפשר לצרף לפריסות של Infra Manager. למידע נוסף על השימוש בהערות ובתוויות ועל המגבלות שלהן, ראו הערות ותוויות.
- אופציונלי: PROVIDER_SOURCE: קובע באיזה ספק Terraform משתמשים בפריסה של Google Cloud . מגדירים את הערך
SERVICE_MAINTAINEDכדי להשתמש בספק Terraform שמנוהל על ידי Infra Manager. אם לא משתמשים בשדה הזה, משתמשים בספק Terraform שמנוהל על ידי HashiCorp. מידע נוסף זמין במאמר שימוש בספק Terraform ל- Google Cloud.
CLI של gcloud
בקטע הזה מוסבר איך לעבוד עם קובץ תצורה של Terraform שמאוחסן במאגר Git.
- מוודאים ש-Git מותקן.
- אם הגדרת Terraform מאוחסנת ב
מאגר Git פרטי , ודאו שהמארח והמאגר של Git מחוברים ל-Cloud Build. פורסים את קובץ התצורה של Terraform:
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" \ --quota-validation=QUOTA_VALIDATION \ --input-values=INPUT_1_NAME=VALUE,INPUT_2_NAME=VALUE \ --tf-version-constraint=TERRAFORM_VERSION \ --annotations="ANNOTATION_KEY=ANNOTATION_VALUE" --provider-source=SERVICE_MAINTAINED
- PROJECT_ID: מזהה הפרויקט שבו פועל Infra Manager.
- LOCATION: המיקום שבו פועל Infra Manager. רשימת המיקומים התקינים מופיעה במאמר מיקומים של Infra Manager.
- DEPLOYMENT_ID: מזהה הפריסה שציינתם. בקטע שם הפריסה מפורטות המגבלות על מזהה הפריסה.
- SERVICE_ACCOUNT_PROJECT_ID הוא מזהה הפרויקט של חשבון השירות. בדרך כלל זה אותו פרויקט שבו פועל Infra Manager.
- SERVICE_ACCOUNT: השם של חשבון השירות שמשמש לקריאה ל-Infra Manager.
- GIT_REPO: מאגר Git.
- DIRECTORY: הספרייה שבה נמצאת התצורה של Terraform.
- אופציונלי: REF: ההפניה ל-Git של ההגדרה. ההפניה היא אופציונלית. אם לא תציינו את ההפניה, המערכת תשתמש בהסתעפות שמוגדרת כברירת מחדל במאגר Git.
- אופציונלי: QUOTA_VALIDATION: הערך שקובע אם אימות המכסות של המשאבים בקובצי התצורה של Terraform מופעל או נאכף כשיוצרים פריסה. הערכים האפשריים כוללים:
-
ENABLED: הפעלת אימות של מכסת המחשוב למשאבים בקובצי תצורה של Terraform. מאפשר לראות משאבים עם מכסות לא מספיקות. -
ENFORCED: אכיפת אימות המכסות, כדי שהפריסה תיכשל אם אין מספיק מכסות זמינות לתשתית שמוגדרת בקובץ התצורה של Terraform.
אם לא מגדירים את QUOTA_VALIDATION, אימות המכסות בקובצי התצורה של Terraform מושבת. זה ערך ברירת המחדל. אימות המכסות חל על משאבים מוגבלים של Google Cloud . מידע נוסף זמין במאמר מכסות ומגבלות.
-
INPUT_1_NAME ו-INPUT_2_NAME: כל ערכי הקלט בתצורה של Terraform, כולל ערכים שלא מוגדרים כברירת מחדל. לדוגמה, אפשר לציין את הפרויקט שבו פורסים את המשאבים בתור
project_id=my-project.אם כל ערכי הקלט מוגדרים כברירת מחדל, הדגל הזה הוא אופציונלי.
- TERRAFORM_VERSION: אופציונלי. גרסת Terraform שבה Infra Manager ישתמש כדי ליצור את הפריסה. כאן מופיעה רשימת הגרסאות הנתמכות של Terraform. אם מסירים את הדגל האופציונלי הזה, כברירת מחדל המערכת משתמשת בגרסה העדכנית ביותר של Terraform שנתמכת בתוכנית בחינם (
1.5.7). כדי להשתמש בגרסה בתשלום (כמו1.16.5), צריך לציין את הגרסה באופן מפורש. - אופציונלי: ANNOTATION_KEY ו-ANNOTATION_VALUE מייצגים צמד של מפתח/ערך של טקסט חופשי שאפשר לצרף לפריסות של Infra Manager. למידע נוסף על השימוש בהערות ובתוויות ועל המגבלות שלהן, ראו הערות ותוויות.
- אופציונלי: PROVIDER_SOURCE: קובע באיזה ספק Terraform משתמשים בפריסה של Google Cloud . מגדירים את הערך
SERVICE_MAINTAINEDכדי להשתמש בספק Terraform שמנוהל על ידי Infra Manager. אם לא משתמשים בשדה הזה, משתמשים בספק Terraform שמנוהל על ידי HashiCorp. מידע נוסף זמין במאמר שימוש בספק Terraform ל- Google Cloud.
CLI של gcloud
בקטע הזה מוסבר איך לעבוד עם קובץ תצורה של Terraform שמאוחסן במחשב המקומי.
- אם אתם משתמשים ב-Cloud Shell, אתם צריכים להעלות את קובץ התצורה ל-Cloud Shell. פרטים נוספים זמינים במאמר ניהול קבצים באמצעות Cloud Shell.
פורסים את קובץ התצורה של Terraform:
gcloud infra-manager deployments apply projects/PROJECT_ID/locations/LOCATION/deployments/DEPLOYMENT_ID \ --service-account projects/SERVICE_ACCOUNT_PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT \ --local-source="LOCAL_DIRECTORY" \ --quota-validation=QUOTA_VALIDATION \ --input-values=INPUT_1_NAME=VALUE,INPUT_2_NAME=VALUE \ --tf-version-constraint=TERRAFORM_VERSION \ --annotations="ANNOTATION_KEY=ANNOTATION_VALUE" --provider-source=SERVICE_MAINTAINED
- PROJECT_ID: מזהה הפרויקט שבו פועל Infra Manager.
- LOCATION: המיקום שבו פועל Infra Manager. רשימת המיקומים התקינים מופיעה במאמר מיקומים של Infra Manager.
- DEPLOYMENT_ID: מזהה הפריסה שציינתם. בקטע שם הפריסה מפורטות המגבלות על מזהה הפריסה.
- SERVICE_ACCOUNT_PROJECT_ID הוא מזהה הפרויקט של חשבון השירות. בדרך כלל זה אותו פרויקט שבו פועל Infra Manager.
- SERVICE_ACCOUNT: השם של חשבון השירות שמשמש לקריאה ל-Infra Manager.
- LOCAL_DIRECTORY: הספרייה המקומית שבה מאוחסנת התצורה של Terraform. אם אתם משתמשים ב-Cloud Shell, זו הספרייה ב-Cloud Shell שבה מאוחסנת ההגדרה.
- אופציונלי: QUOTA_VALIDATION: הערך שקובע אם אימות המכסות של המשאבים בקובצי התצורה של Terraform מופעל או נאכף כשיוצרים פריסה. הערכים האפשריים כוללים:
-
ENABLED: הפעלת אימות של מכסת המחשוב למשאבים בקובצי תצורה של Terraform. מאפשר לראות משאבים עם מכסות לא מספיקות. -
ENFORCED: אכיפת אימות המכסות, כדי שהפריסה תיכשל אם אין מספיק מכסות זמינות לתשתית שמוגדרת בקובץ התצורה של Terraform.
אם לא מגדירים את QUOTA_VALIDATION, אימות המכסות בקובצי התצורה של Terraform מושבת. זה ערך ברירת המחדל. אימות המכסות חל על משאבים מוגבלים של Google Cloud . מידע נוסף זמין במאמר מכסות ומגבלות.
-
INPUT_1_NAME ו-INPUT_2_NAME: כל ערכי הקלט בתצורה של Terraform, כולל ערכים שלא מוגדרים כברירת מחדל. לדוגמה, אפשר לציין את הפרויקט שבו פורסים את המשאבים בתור
project_id=my-project.אם כל ערכי הקלט מוגדרים כברירת מחדל, הדגל הזה הוא אופציונלי.
- TERRAFORM_VERSION: אופציונלי. גרסת Terraform שבה Infra Manager ישתמש כדי ליצור את הפריסה. כאן מופיעה רשימת הגרסאות הנתמכות של Terraform. אם מסירים את הדגל האופציונלי הזה, כברירת מחדל המערכת משתמשת בגרסה העדכנית ביותר של Terraform שנתמכת בתוכנית בחינם (
1.5.7). כדי להשתמש בגרסה בתשלום (כמו1.16.5), צריך לציין את הגרסה באופן מפורש. - אופציונלי: ANNOTATION_KEY ו-ANNOTATION_VALUE מייצגים צמד של מפתח/ערך של טקסט חופשי שאפשר לצרף לפריסות של Infra Manager. למידע נוסף על השימוש בהערות ובתוויות ועל המגבלות שלהן, ראו הערות ותוויות.
- אופציונלי: PROVIDER_SOURCE: קובע באיזה ספק Terraform משתמשים בפריסה של Google Cloud . מגדירים את הערך
SERVICE_MAINTAINEDכדי להשתמש בספק Terraform שמנוהל על ידי Infra Manager. אם לא משתמשים בשדה הזה, משתמשים בספק Terraform שמנוהל על ידי HashiCorp. מידע נוסף זמין במאמר שימוש בספק Terraform ל- Google Cloud.