Поделиться через


Быстрый старт: создание реестра контейнеров Azure с помощью Terraform

В этом кратком руководстве описано, как создать реестр контейнеров Azure и группу ресурсов с помощью Terraform. Реестр контейнеров Azure — это управляемая служба реестра Docker, используемая для хранения частных образов контейнеров Docker. Обычно он используется с Служба Azure Kubernetes (AKS), службой приложение Azure и другими службами Azure для извлечения образов контейнеров. Реестр хранится в группе ресурсов, которая является логическим контейнером для ресурсов, развернутых в Azure. Эти ресурсы создаются с уникальными именами путем объединения префикса со случайной строкой, обеспечивая их уникальность в подписке Azure.

Terraform поддерживает определение, предварительный просмотр и развертывание облачной инфраструктуры. С помощью Terraform можно создавать файлы конфигурации с применением синтаксиса HCL. Синтаксис HCL позволяет указать поставщика облачных служб, например Azure, и элементы, составляющие облачную инфраструктуру. После создания файлов конфигурации создается план выполнения, который позволяет предварительно просматривать изменения инфраструктуры до их развертывания. После проверки изменений примените план выполнения для развертывания инфраструктуры.

  • Укажите требуемую версию Terraform и необходимые поставщики.
  • Определите поставщика Azure без дополнительных функций.
  • Задайте переменную для расположения группы ресурсов с значением по умолчанию "eastus".
  • Определите переменную для префикса имени группы ресурсов и значением по умолчанию rg.
  • Создайте случайное имя питомца для группы ресурсов.
  • Создайте группу ресурсов Azure с созданным именем в указанном расположении.
  • Создайте случайную строку из пяти строчных букв, которые будут использоваться в качестве части имени реестра контейнеров.
  • Создайте реестр контейнеров с созданной строкой в составе его имени и в том же расположении и группе ресурсов, что и выше.
  • Выводит имена созданной группы ресурсов и реестра контейнеров.
  • Выведи сервер аутентификации созданного реестра контейнеров.

Предварительные требования

Реализация кода Terraform

  1. Создайте каталог, в котором необходимо протестировать и запустить пример кода Terraform и сделать его текущим каталогом.

  2. Создайте файл с именем main.tfи вставьте следующий код:

    resource "random_pet" "rg_name" {
      prefix = var.resource_group_name_prefix
    }
    
    resource "azurerm_resource_group" "rg" {
      location = var.resource_group_location
      name     = random_pet.rg_name.id
    }
    
    resource "random_string" "acr_name" {
      length  = 5
      lower   = true
      numeric = false
      special = false
      upper   = false
    }
    
    resource "azurerm_container_registry" "example" {
      name                = "${random_string.acr_name.result}registry"
      resource_group_name = azurerm_resource_group.rg.name
      location            = azurerm_resource_group.rg.location
      sku                 = "Standard"
    }
    
  3. Создайте файл с именем outputs.tfи вставьте следующий код:

    output "resource_group_name" {
      value = azurerm_resource_group.rg.name
    }
    
    output "container_registry_name" {
      value = azurerm_container_registry.example.name
    }
    
    output "container_registry_login_server" {
      value = azurerm_container_registry.example.login_server
    }
    
  4. Создайте файл с именем 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 {}
    }
    
  5. Создайте файл с именем variables.tfи вставьте следующий код:

    variable "resource_group_location" {
      type        = string
      default     = "eastus"
      description = "Location of the resource group."
    }
    
    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."
    }
    

Инициализация Terraform

Запустите terraform init, чтобы инициализировать развертывание Terraform. Эта команда загружает провайдер Azure, необходимый для управления вашими ресурсами Azure.

terraform init -upgrade

Основные моменты:

  • Параметр -upgrade обновляет необходимые подключаемые модули поставщика до последней версии, которая соответствует ограничениям версии конфигурации.

Создайте план выполнения Terraform

Чтобы создать план выполнения, выполните terraform plan.

terraform plan -out main.tfplan

Основные моменты:

  • Команда terraform plan создает план выполнения, но не выполняет его. Вместо этого она определяет, какие действия необходимы для создания конфигурации, заданной в файлах конфигурации. Этот шаблон позволяет проверить, соответствует ли план выполнения вашим ожиданиям, прежде чем вы начнете вносить изменения в фактические ресурсы.
  • Необязательный параметр -out позволяет указать выходной файл для плана. Использование параметра -out гарантирует, что проверяемый план полностью соответствует применяемому.

Применение плана выполнения Terraform

Выполните terraform apply, чтобы применить план выполнения к вашей облачной инфраструктуре.

terraform apply main.tfplan

Основные моменты:

  • Пример команды terraform apply предполагает, что вы ранее выполнили terraform plan -out main.tfplan.
  • Если для параметра -out указано другое имя файла, используйте то же имя в вызове к terraform apply.
  • Если вы не использовали параметр -out, вызовите terraform apply без параметров.

Проверка результатов

Запустите az acr show , чтобы просмотреть реестр контейнеров.

az acr show --name <registry_name> --resource-group <resource_group_name>

Замените <registry_name> именем реестра контейнеров и <resource_group_name> именем группы ресурсов.

Очистка ресурсов

Если вам больше не нужны ресурсы, созданные через Terraform, выполните следующие действия:

  1. Выполните команду terraform plan и укажите флаг destroy.

    terraform plan -destroy -out main.destroy.tfplan
    

    Основные моменты:

    • Команда terraform plan создает план выполнения, но не выполняет его. Вместо этого она определяет, какие действия необходимы для создания конфигурации, заданной в файлах конфигурации. Этот шаблон позволяет проверить, соответствует ли план выполнения вашим ожиданиям, прежде чем вы начнете вносить изменения в фактические ресурсы.
    • Необязательный параметр -out позволяет указать выходной файл для плана. Использование параметра -out гарантирует, что проверяемый план полностью соответствует применяемому.
  2. Выполните команду terraform apply, чтобы применить план выполнения.

    terraform apply main.destroy.tfplan
    

Устранение неполадок с Terraform в Azure

Устранение распространенных проблем при использовании Terraform в Azure.

Следующие шаги