פריסת תשתית באמצעות Infrastructure Manager

בדף הזה מוסבר איך להשתמש ב-Infrastructure Manager כדי להקצות קבוצה שלGoogle Cloud משאבים שמוגדרים בהגדרת Terraform.

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

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

בדף הזה אנחנו מניחים שאתם מכירים את Terraform. פרטים נוספים זמינים במאמר בנושא Terraform ו-Infra Manager.

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

  1. מפעילים את Infra Manager.
  2. מוודאים שיש לכם את הרשאות ה-IAM שנדרשות ליצירת פריסות: roles/config.admin.
  3. מוודאים שיש לכם חשבון שירות עם ההרשאות הנדרשות. פרטים נוספים זמינים במאמר הגדרת חשבון השירות.
  4. מזהים את תצורת Terraform לפריסה. מוודאים שההגדרה הזו ב-Terraform עומדת באילוצים. חשוב במיוחד לוודא שההגדרה לא מכילה מידע אישי רגיש.
  5. אם רוצים לראות תצוגה מקדימה של הפריסה לפני שמגדירים משאבים, אפשר לעיין במאמר בנושא תצוגה מקדימה של פריסה.
  6. אישור המכסה של הארגון למוצרים שמשויכים לתשתית הרצויה. יכול להיות שתיתקלו בשגיאות פריסה אם התשתית המיועדת חורגת מהמכסה של הארגון למוצרים שבהם נעשה שימוש בפריסה. מידע נוסף מופיע במאמר מכסות ומגבלות.

הענקת הרשאות שספציפיות להגדרה

כדי לפרוס משאבים שצוינו בהגדרות Terraform, לחשבון השירות שמשמש לקריאה ל-Infra Manager צריכות להיות ההרשאות הנדרשות שספציפיות למשאבים שאתם פורסים. Google Cloud

ההרשאות האלה הן בנוסף להרשאות שנדרשות לשימוש בשירות Infra Manager.

פרטים על מתן הרשאות למשאבים ועל וידוא שיש לכם גישה לפרויקטים הנדרשים זמינים במאמר הגדרת חשבון השירות. Google Cloud

חיבור מאגר Git פרטי ומארח ל-Cloud Build

אם אתם פורסים הגדרות של Terraform ממאגר Git פרטי, אתם צריכים לחבר את מארח Git ואת המאגר ל-Cloud Build.

יצירת פריסה באמצעות הגדרות אישיות ל-Terraform

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

  • מומלץ: להשתמש ב-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 .

  1. נכנסים לדף Infra Manager במסוף Google Cloud .

    מעבר אל Infra Manager

  2. לוחצים על יצירה כדי ליצור פריסה חדשה.
  3. בדף פרטי הפריסה, מגדירים את הפרמטרים הראשוניים של הפריסה.

    מחליפים את:

    • מזהה הפריסה: בשדה מזהה הפריסה, מזינים שם תיאורי לפריסה. פרטים נוספים על מגבלות השמות זמינים במאמר בנושא שם הפריסה.
    • אזור: בוחרים אזור נתמך מהתפריט הנפתח.
    • גרסת Terraform: בוחרים גרסת Terraform נתמכת מהתפריט הנפתח. רשימת הגרסאות הזמינות של Terraform מתעדכנת אוטומטית בהתאם לאזור שבחרתם.
    • חשבון שירות: בוחרים חשבון שירות קיים או יוצרים חשבון חדש. ‫Infra Manager מאמת את ההרשאות באופן אוטומטי על סמך התשתית שמוגדרת בתצורת Terraform. מידע נוסף על עבודה עם חשבונות שירות ו-Infra Manager זמין במאמר הגדרת חשבון השירות.
    • מקור ההגדרות של Terraform: לוחצים על המתג כדי לבחור באפשרות Git או Cloud Storage כמקור להגדרות של Terraform שרוצים לפרוס.
      • ב-Git, מחליפים את:
        • מאגר Git: מציינים כתובת URL, הסתעפות או תג של מאגר Git ציבורי או פרטי.
          אם מציינים מאגר Git פרטי, צריך לוודא שחיברתם את המארח והמאגר ל-Cloud Build.
        • אופציונלי: ספריית Git: הספרייה במאגר Git שמכילה את ההגדרות של Terraform.
        • אופציונלי: הפניה ל-Git: ההפניה ל-Git של ההגדרה. אם לא מציינים הפניה, המערכת משתמשת בענף שמוגדר כברירת מחדל במאגר Git.
      • בקטע קטגוריה של Cloud Storage, מחליפים את:
        • מקור: השם של קטגוריית האחסון שבה מאוחסנת ההגדרה.

    לוחצים על Continue.

  4. בדף פרטי Terraform, משתמשים בשדות מפתח וערך כדי לאכלס את רשימת ערכי הקלט בהגדרות Terraform.

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

  5. בדף פרטים מתקדמים, מגדירים פרמטרים אופציונליים לפריסה.

    מחליפים את:

    • Labels: תוויות והערות הן צמדי מפתח/ערך של טקסט חופשי. אפשר להשתמש בהם כדי לצרף מידע שרירותי שמשויך למשאב. מידע נוסף זמין במאמר בנושא הערות.
    • מאגר עובדים: משאב מאגר העובדים שבו תופעל המשימה של Cloud Build. הפורמט של מאגר העובדים הוא projects/{project}/locations/{location}/workerPools/{workerPoolId}.
    • קטגוריה של Cloud Storage לארטיפקטים: המיקום של יומני Cloud Build וארטיפקטים ב-Cloud Storage. הפורמט של הנתיב הוא gs://{bucket}/{folder}.
  6. לוחצים על Create deployment (יצירת פריסה) כדי להתחיל בפריסה של תצורת Terraform. בדף פריסות, הפריסה שלכם תתווסף לרשימה יחד עם הסטטוס שלה.
  7. כדי לראות פרטים נוספים על הפריסה, בוחרים את הפריסה הרצויה ועוברים לדף פרטי הפריסה.
  8. הצלחת, פרסתם את ההגדרות של Terraform באמצעות Infra Manager.

‫CLI של gcloud

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

  1. מוודאים שהתצורה של Terraform נמצאת בקטגוריה של Cloud Storage. פרטים נוספים זמינים במאמר בנושא העלאת הגדרה לקטגוריית אחסון.
  2. אם מאגר האחסון נמצא בפרויקט אחר מהפרויקט שבו מריצים את Infra Manager, צריך לוודא שלחשבון השירות של Infra Manager יש הרשאת קריאה למאגר. פרטים נוספים זמינים במאמר הגדרת חשבון השירות.

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

  3. פורסים את ההגדרות של 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 שנתמכת.
  • אופציונלי: 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.

  1. מוודאים ש-Git מותקן.
  2. אם הגדרת Terraform מאוחסנת במאגר Git פרטי, צריך לוודא שמארח Git והמאגר מחוברים ל-Cloud Build.
  3. פורסים את ההגדרות של 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 שנתמכת.
  • אופציונלי: ANNOTATION_KEY ו-ANNOTATION_VALUE מייצגים צמד של מפתח וערך של טקסט חופשי שאפשר לצרף לפריסות של Infra Manager. מידע נוסף על השימוש בהערות ובתיוגים ועל האילוצים שלהם זמין במאמר הערות ותיוגים.
  • אופציונלי: PROVIDER_SOURCE: קובע באיזה ספק Terraform הפריסה משתמשת. Google Cloud הערך שצריך להגדיר הוא SERVICE_MAINTAINED כדי להשתמש בפלאגין שמתממשק עם שירותים חיצוניים של Terraform שתחזוקתו מתבצעת על ידי Infra Manager. כדי להשתמש בספק Terraform שמתוחזק על ידי HashiCorp, צריך להשמיט את השדה הזה. מידע נוסף זמין במאמר שימוש בספק Terraform עבור Google Cloud.

‫CLI של gcloud

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

  1. אם משתמשים ב-Cloud Shell, צריך להעלות את ההגדרה ל-Cloud Shell. פרטים נוספים זמינים במאמר בנושא ניהול קבצים באמצעות Cloud Shell.
  2. פורסים את ההגדרות של 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 שנתמכת.
  • אופציונלי: ANNOTATION_KEY ו-ANNOTATION_VALUE מייצגים צמד של מפתח וערך של טקסט חופשי שאפשר לצרף לפריסות של Infra Manager. מידע נוסף על השימוש בהערות ובתיוגים ועל האילוצים שלהם זמין במאמר הערות ותיוגים.
  • אופציונלי: PROVIDER_SOURCE: קובע באיזה ספק Terraform הפריסה משתמשת. Google Cloud הערך שצריך להגדיר הוא SERVICE_MAINTAINED כדי להשתמש בפלאגין שמתממשק עם שירותים חיצוניים של Terraform שתחזוקתו מתבצעת על ידי Infra Manager. כדי להשתמש בספק Terraform שמתוחזק על ידי HashiCorp, צריך להשמיט את השדה הזה. מידע נוסף זמין במאמר שימוש בספק Terraform עבור Google Cloud.

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