التشغيل السريع: إنشاء حساب Azure Batch باستخدام Terraform

ابدأ باستخدام Azure Batch باستخدام Terraform لإنشاء حساب Batch، بما في ذلك التخزين. تحتاج إلى حساب دفعة لإنشاء موارد حوسبة (تجمعات عقد الحوسبة) ومهام الدفعة. يمكنك ربط حساب تخزين Azure بحسابك على Batch. هذا الاقتران مفيد لنشر التطبيقات وتخزين بيانات الإدخال والإخراج لمعظم أحمال العمل في العالم الحقيقي.

بعد الانتهاء من هذا التشغيل السريع، ستفهم المفاهيم الرئيسية لخدمة Batch وستكون مستعدًا لتجربة Batch بأحمال عمل أكثر واقعية على نطاق أوسع.

يتيح Terraform تعريف البنية الأساسية السحابية ومعاينتها ونشرها. باستخدام Terraform، يمكنك إنشاء ملفات التكوين باستخدام بناء جملة HCL. يسمح لك بناء الجملة بلغة HCL بتحديد موفر الخدمة السحابية، مثل خدمة Azure، وتحديد العناصر التي تشكل البنية الأساسية للخدمة السحابية. بعد إنشاء ملفات التكوين الخاصة بك، يمكنك إنشاء خطة تنفيذ تسمح لك بمعاينة تغييرات البنية الأساسية قبل نشرها. بمجرد التحقق من التغييرات، يمكنك تطبيق خطة التنفيذ لنشر البنية الأساسية.

في هذه المقالة، ستتعرف على كيفية:

المتطلبات الأساسية

تنفيذ كود Terraform

إشعار

يوجد نموذج التعليمات البرمجية لهذه المقالة في مستودع Azure Terraform GitHub. يمكنك عرض ملف السجل الذي يحتوي على نتائج الاختبار من الإصدارات الحالية والسابقة من Terraform.

راجع المزيد من المقالات ونماذج التعليمات البرمجية التي توضح كيفية استخدام Terraform لإدارة موارد Azure

  1. إنشاء دليل لاختبار وتشغيل نموذج تعليمة برمجية Terraform وجعله الدليل الحالي.

  2. قم بإنشاء ملف باسم providers.tf وأدخل التعليمة البرمجية التالية:

    terraform {
      required_version = ">=1.0"
      required_providers {
        azurerm = {
          source  = "hashicorp/azurerm"
          version = "~>3.0"
        }
        random = {
          source  = "hashicorp/random"
          version = "~>3.0"
        }
      }
    }
    provider "azurerm" {
      features {}
    }
    
  3. قم بإنشاء ملف باسم main.tf وأدخل التعليمة البرمجية التالية:

    resource "random_pet" "rg_name" {
      prefix = var.resource_group_name_prefix
    }
    
    resource "azurerm_resource_group" "rg" {
      name     = random_pet.rg_name.id
      location = var.resource_group_location
    }
    
    resource "random_string" "azurerm_storage_account_name" {
      length  = 13
      lower   = true
      numeric = false
      special = false
      upper   = false
    }
    
    resource "random_string" "azurerm_batch_account_name" {
      length  = 13
      lower   = true
      numeric = false
      special = false
      upper   = false
    }
    
    resource "azurerm_storage_account" "storage" {
      name                     = "storage${random_string.azurerm_storage_account_name.result}"
      resource_group_name      = azurerm_resource_group.rg.name
      location                 = azurerm_resource_group.rg.location
      account_tier             = element(split("_", var.storage_account_type), 0)
      account_replication_type = element(split("_", var.storage_account_type), 1)
    }
    
    resource "azurerm_batch_account" "batch" {
      name                                = "batch${random_string.azurerm_batch_account_name.result}"
      resource_group_name                 = azurerm_resource_group.rg.name
      location                            = azurerm_resource_group.rg.location
      storage_account_id                  = azurerm_storage_account.storage.id
      storage_account_authentication_mode = "StorageKeys"
    }
    
  4. قم بإنشاء ملف باسم variables.tf وأدخل التعليمة البرمجية التالية:

    variable "resource_group_location" {
      type        = string
      default     = "eastus"
      description = "Location for all resources."
    }
    
    variable "resource_group_name_prefix" {
      type        = string
      default     = "rg"
      description = "Prefix of the resource group name that's combined with a random ID so name is unique in your Azure subscription."
    }
    
    variable "storage_account_type" {
      type        = string
      default     = "Standard_LRS"
      description = "Azure Storage account type."
      validation {
        condition     = contains(["Premium_LRS", "Premium_ZRS", "Standard_GRS", "Standard_GZRS", "Standard_LRS", "Standard_RAGRS", "Standard_RAGZRS", "Standard_ZRS"], var.storage_account_type)
        error_message = "Invalid storage account type. The value should be one of the following: 'Premium_LRS','Premium_ZRS','Standard_GRS','Standard_GZRS','Standard_LRS','Standard_RAGRS','Standard_RAGZRS','Standard_ZRS'."
      }
    }
    
  5. قم بإنشاء ملف باسم outputs.tf وأدخل التعليمة البرمجية التالية:

    output "resource_group_name" {
      value = azurerm_resource_group.rg.name
    }
    
    output "batch_name" {
      value = azurerm_batch_account.batch.name
    }
    
    output "storage_name" {
      value = azurerm_storage_account.storage.name
    }
    

تهيئة Terraform

قم بتشغيل terraform init لتهيئة توزيع Terraform. يقوم هذا الأمر بتنزيل موفر Azure المطلوب لإدارة موارد Azure.

terraform init -upgrade

النقاط الرئيسية:

  • تقوم -upgrade المعلمة بترقية مكونات الموفر الإضافية الضرورية إلى أحدث إصدار يتوافق مع قيود إصدار التكوين.

إنشاء خطة تنفيذ Terraform

قم بتشغيل خطة terraform لإنشاء خطة تنفيذ.

terraform plan -out main.tfplan

النقاط الرئيسية:

  • ينشئ الأمر terraform plan خطة تنفيذ، لكنه لا ينفذها. بدلًا من ذلك، يحدد الإجراءات الضرورية لإنشاء التكوين المحدد في ملفات التكوين الخاصة بك. يسمح لك هذا النمط بالتحقق مما إذا كانت خطة التنفيذ تتطابق مع توقعاتك قبل إجراء أي تغييرات على الموارد الفعلية.
  • تسمح المعلمة -out الاختيارية بتحديد ملف الإخراج للخطة. يضمن استخدام -out المعلمة أن الخطة التي راجعتها هي بالضبط ما يتم تطبيقها.

تطبيق خطة تنفيذ Terraform

قم بتشغيل تطبيق terraform لتطبيق خطة التنفيذ على البنية الأساسية السحابية الخاصة بك.

terraform apply main.tfplan

النقاط الرئيسية:

  • يفترض الأمر المثال terraform apply أنك قمت بتشغيل terraform plan -out main.tfplanمسبقا .
  • إذا قمت بتحديد اسم ملف مختلف للمعلمة -out، فاستخدم نفس اسم الملف في الاستدعاء terraform apply.
  • إذا لم تستخدم المعلمة -out، استدع terraform apply دون أي معلمات.

تحقق من النتائج

  1. احصل على اسم مجموعة موارد Azure.

    resource_group_name=$(terraform output -raw resource_group_name)
    
  2. احصل على اسم حساب Batch.

    batch_name=$(terraform output -raw batch_name)
    
  3. قم بتشغيل az batch account show لعرض معلومات حول حساب Batch الجديد.

    az batch account show \
        --resource-group $resource_group_name \
        --name $batch_name
    

تنظيف الموارد

عندما لم تعد بحاجة إلى الموارد التي تم إنشاؤها عبر Terraform، قم بالخطوات التالية:

  1. قم بتشغيل خطة terraform وحدد العلامة destroy.

    terraform plan -destroy -out main.destroy.tfplan
    

    النقاط الرئيسية:

    • ينشئ الأمر terraform plan خطة تنفيذ، لكنه لا ينفذها. بدلًا من ذلك، يحدد الإجراءات الضرورية لإنشاء التكوين المحدد في ملفات التكوين الخاصة بك. يسمح لك هذا النمط بالتحقق مما إذا كانت خطة التنفيذ تتطابق مع توقعاتك قبل إجراء أي تغييرات على الموارد الفعلية.
    • تسمح المعلمة -out الاختيارية بتحديد ملف الإخراج للخطة. يضمن استخدام -out المعلمة أن الخطة التي راجعتها هي بالضبط ما يتم تطبيقها.
  2. قم بتشغيل تطبيق terraform لتطبيق خطة التنفيذ.

    terraform apply main.destroy.tfplan
    

استكشاف أخطاء Terraform على Azure وإصلاحها

استكشاف المشاكل الشائعة وإصلاحها عند استخدام Terraform على Azure

الخطوات التالية