בדף הזה מוסבר איך להשתמש ב-Infrastructure Manager כדי לראות תצוגה מקדימה של פריסת משאבים שמוגדרים בהגדרת Terraform.
תצוגה מקדימה מתארת את הפעולות להפעלת הגדרת Terraform ספציפית. לפני שיוצרים פריסה חדשה או מעדכנים פריסה, אפשר לראות תצוגה מקדימה של הפריסה כדי לוודא שהמשאבים מוקצים כמו שצריך.
בתצוגה מקדימה מריצים את הפקודה Terraform plan. בדף הזה מניחים שיש לכם ידע ב-Terraform. פרטים נוספים זמינים במאמר בנושא Terraform ו-Infrastructure Manager.
כדי ליצור תצוגה מקדימה, ההגדרות של Terraform צריכות להיות תואמות לאחת מגרסאות Terraform הנתמכות.
לפני שמתחילים
- מפעילים את Infra Manager.
- מוודאים שיש לכם את הרשאות ה-IAM שנדרשות ליצירת תצוגות מקדימות:
roles/config.admin. - מוודאים שיש לכם חשבון שירות עם ההרשאות הנדרשות. פרטים נוספים זמינים במאמר הגדרת חשבון השירות.
- מזהים את התצורה של Terraform שרוצים לראות בתצוגה מקדימה. חשוב לוודא שהתצורה של Terraform עומדת במגבלות, כולל העובדה שהתצורה לא מכילה מידע אישי רגיש.
תצוגה מקדימה של עדכון לפריסה
הגדרת Terraform שבה משתמשים כדי לעדכן פריסה יכולה להיות בקטגוריית אחסון או במאגר Git.
משתמשים בהגדרות האלה של Terraform גם כדי לראות תצוגה מקדימה של העדכון.
תצוגה מקדימה באמצעות הגדרת Terraform שמאוחסנת בקטגוריה של Cloud Storage
כשמעדכנים פריסה, יכול להיות שחלק מהמשאבים הקיימים לא ישתנו. בתצוגה מקדימה של עדכון אפשר לראות אילו משאבים מתוכננים לאספקה או למחיקה, ואילו משאבים לא מתוכננים לשינוי.
מזהים את הפריסה שרוצים לעדכן.
מוודאים שהתצורה של Terraform הועלתה לקטגוריה של Cloud Storage. פרטים נוספים זמינים במאמר בנושא העלאת הגדרה לקטגוריית אחסון.
קטגוריית אחסון מאפשרת לכם לשלוט בגישה להגדרה. אפשר גם לפרוס הגדרת Terraform שמאוחסנת במאגר Git או במחשב המקומי.
כדי לראות תצוגה מקדימה של העדכון:
gcloud infra-manager previews create projects/PROJECT_ID/locations/LOCATION/previews/PREVIEW_ID \ --service-account projects/SERVICE_ACCOUNT_PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT \ --deployment=projects/PROJECT_ID/locations/LOCATION/deployments/DEPLOYMENT_ID \ --gcs-source gs://BUCKET_NAME/OBJECT_NAME \ --input-values=INPUT_1_NAME=VALUE,INPUT_2_NAME=VALUE \ --tf-version-constraint=TERRAFORM_VERSION --provider-source=SERVICE_MAINTAINEDמחליפים את:
- PROJECT_ID הוא מזהה הפרויקט שבו פועל Infrastructure Manager.
- LOCATION הוא המיקום שבו Infra Manager פועל. ראו מיקומי Infrastructure Manager לקבלת רשימת המיקומים התקפים.
- PREVIEW_ID הוא מזהה התצוגה המקדימה שציינתם. פרטים על אילוצים לגבי מזהה התצוגה המקדימה מופיעים בקטע שם התצוגה המקדימה.
- SERVICE_ACCOUNT הוא השם של חשבון השירות שמשמש לקריאה ל-Infra Manager.
- SERVICE_ACCOUNT_PROJECT_ID הוא מזהה הפרויקט של חשבון השירות. בדרך כלל זה יהיה אותו פרויקט שבו פועל Infra Manager.
- DEPLOYMENT_ID הוא מזהה הפריסה שרוצים לעדכן.
- BUCKET_NAME הוא השם של קטגוריית האחסון שבה מאוחסנת ההגדרה.
OBJECT_NAME הוא שם האובייקט של קובץ ההגדרות. האובייקט הזה יכול להיות ספרייה או קובץ ZIP, אבל לא קובץ Terraform. אם אתם משתמשים בניהול גרסאות של אובייקטים, אתם יכולים לציין גם את מספר הדור של האובייקט. פרטים נוספים מופיעים במאמר בנושא שימוש באובייקטים עם גרסאות.
אם מאגר האחסון הוא נתיב הבסיס של הגדרת Terraform, אז OBJECT_NAME הוא אופציונלי.
INPUT_1_NAME=VALUE ו-INPUT_2_NAME=VALUE: כל ערכי הקלט בתצורת Terraform, כולל אלה שלא מוגדרים כברירת מחדל. לדוגמה, אפשר לציין את הפרויקט שבו פורסים את המשאבים בתור
project_id=my-project.אם כל ערכי הקלט מוגדרים כברירת מחדל בתצורה, הדגל הזה הוא אופציונלי.
אופציונלי: TERRAFORM_VERSION: הגרסה של Terraform שבה Infra Manager ישתמש כדי ליצור את הפריסה. במאמר גרסאות נתמכות של Terraform מופיעה רשימה של הגרסאות הנתמכות. אם מסירים את האפשרות הזו, המערכת משתמשת בגרסה העדכנית ביותר של Terraform שנתמכת.
- אופציונלי: PROVIDER_SOURCE: קובע באיזה ספק Terraform
הפריסה משתמשת. Google Cloud הערך שצריך להגדיר הוא
SERVICE_MAINTAINEDכדי להשתמש בפלאגין שמתממשק עם שירותים חיצוניים של Terraform שתחזוקתו מתבצעת על ידי Infra Manager. כדי להשתמש בספק Terraform שמתוחזק על ידי HashiCorp, צריך להשמיט את השדה הזה. מידע נוסף זמין במאמר שימוש בספק Terraform עבור Google Cloud.
שדות מהפריסה, כמו התצורה של Terraform, משתנים וחשבון שירות, משולבים אוטומטית בתצוגה המקדימה, אלא אם מציינים ערכים חדשים בפקודה של התצוגה המקדימה.
אחרי שיוצרים תצוגה מקדימה, אפשר לייצא את התוצאות ולצפות בהן כדי לבדוק את התוכנית לפני הפריסה.
תצוגה מקדימה באמצעות הגדרת Terraform שמאוחסנת במאגר Git
כשמעדכנים פריסה, יכול להיות שחלק מהמשאבים הקיימים לא ישתנו. בתצוגה מקדימה של עדכון אפשר לראות אילו משאבים מתוכננים לאספקה או למחיקה, ואילו משאבים לא מתוכננים לשינוי.
- אם הגדרת Terraform מאוחסנת במאגר Git פרטי, ועדיין לא עשיתם זאת, ודאו שחיברתם את המארח שלכם ב-GitHub ואת מאגר GitHub באמצעות Cloud Build כדי לספק ל-Infra Manager גישה למאגר.
כדי לעדכן פריסה:
gcloud infra-manager previews create projects/PROJECT_ID/locations/LOCATION/previews/PREVIEW_ID \ --service-account projects/SERVICE_ACCOUNT_PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT \ --deployment=projects/PROJECT_ID/locations/LOCATION/deployments/DEPLOYMENT_ID \ --git-source-repo="GIT_REPO" \ --git-source-directory="DIRECTORY" \ --git-source-ref="REF" \ --input-values=INPUT_1_NAME=VALUE,INPUT_2_NAME=VALUE \ --tf-version-constraint=TERRAFORM_VERSION --provider-source=SERVICE_MAINTAINEDמחליפים את:
- PROJECT_ID הוא מזהה הפרויקט שבו פועל Infrastructure Manager.
- LOCATION הוא המיקום שבו Infra Manager פועל. ראו מיקומי Infrastructure Manager לקבלת רשימת המיקומים התקפים.
- PREVIEW_ID הוא מזהה התצוגה המקדימה שציינתם. פרטים על אילוצים לגבי מזהה התצוגה המקדימה מופיעים בקטע שם התצוגה המקדימה.
- SERVICE_ACCOUNT הוא השם של חשבון השירות שמשמש לקריאה ל-Infra Manager.
- SERVICE_ACCOUNT_PROJECT_ID הוא מזהה הפרויקט של חשבון השירות. בדרך כלל זה יהיה אותו פרויקט שבו פועל Infra Manager.
- DEPLOYMENT_ID הוא מזהה הפריסה שרוצים לעדכן.
- GIT_REPO: מאגר Git.
- DIRECTORY: הספרייה שכוללת את ההגדרות של Terraform.
- REF: הפניה ל-Git של ההגדרה. ההפניה היא אופציונלית. אם לא מציינים הפניה, נעשה שימוש בענף ברירת המחדל שהוגדר במאגר Git.
INPUT_1_NAME=VALUE ו-INPUT_2_NAME=VALUE: כל ערכי הקלט בתצורת Terraform, כולל אלה שלא מוגדרים כברירת מחדל. לדוגמה, אפשר לציין את הפרויקט שבו פורסים את המשאבים בתור
project_id=my-project.אם כל ערכי הקלט מוגדרים כברירת מחדל בתצורה, הדגל הזה הוא אופציונלי.
אופציונלי: TERRAFORM_VERSION: הגרסה של Terraform שבה Infra Manager ישתמש כדי ליצור את הפריסה. במאמר גרסאות נתמכות של Terraform מופיעה רשימה של הגרסאות הנתמכות. אם מסירים את האפשרות הזו, המערכת משתמשת בגרסה העדכנית ביותר של Terraform שנתמכת.
- אופציונלי: PROVIDER_SOURCE: קובע באיזה ספק Terraform
הפריסה משתמשת. Google Cloud הערך שצריך להגדיר הוא
SERVICE_MAINTAINEDכדי להשתמש בפלאגין שמתממשק עם שירותים חיצוניים של Terraform שתחזוקתו מתבצעת על ידי Infra Manager. כדי להשתמש בספק Terraform שמתוחזק על ידי HashiCorp, צריך להשמיט את השדה הזה. מידע נוסף זמין במאמר שימוש בספק Terraform עבור Google Cloud.
שדות מהפריסה, כמו התצורה של Terraform, משתנים וחשבון שירות, משולבים אוטומטית בתצוגה המקדימה, אלא אם מציינים ערכים חדשים בפקודה של התצוגה המקדימה.
אחרי שיוצרים תצוגה מקדימה, אפשר לייצא את התוצאות ולצפות בהן כדי לבדוק את התוכנית לפני הפריסה.
המאמרים הבאים
- ייצוא והצגה של תוצאות התצוגה המקדימה
- משתמשים ב-Infra Manager כדי להטמיע משאבים.
- אוטומציה של פריסות.
- מידע נוסף על Terraform עם Infra Manager