Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом кратком руководстве описано, как создать реестр контейнеров Azure и группу ресурсов с помощью Terraform. Реестр контейнеров Azure — это управляемая служба реестра Docker, используемая для хранения частных образов контейнеров Docker. Обычно он используется с Служба Azure Kubernetes (AKS), службой приложение Azure и другими службами Azure для извлечения образов контейнеров. Реестр хранится в группе ресурсов, которая является логическим контейнером для ресурсов, развернутых в Azure. Эти ресурсы создаются с уникальными именами путем объединения префикса со случайной строкой, обеспечивая их уникальность в подписке Azure.
Terraform поддерживает определение, предварительный просмотр и развертывание облачной инфраструктуры. С помощью Terraform можно создавать файлы конфигурации с применением синтаксиса HCL. Синтаксис HCL позволяет указать поставщика облачных служб, например Azure, и элементы, составляющие облачную инфраструктуру. После создания файлов конфигурации создается план выполнения, который позволяет предварительно просматривать изменения инфраструктуры до их развертывания. После проверки изменений примените план выполнения для развертывания инфраструктуры.
- Укажите требуемую версию Terraform и необходимые поставщики.
- Определите поставщика Azure без дополнительных функций.
- Задайте переменную для расположения группы ресурсов с значением по умолчанию "eastus".
- Определите переменную для префикса имени группы ресурсов и значением по умолчанию rg.
- Создайте случайное имя питомца для группы ресурсов.
- Создайте группу ресурсов Azure с созданным именем в указанном расположении.
- Создайте случайную строку из пяти строчных букв, которые будут использоваться в качестве части имени реестра контейнеров.
- Создайте реестр контейнеров с созданной строкой в составе его имени и в том же расположении и группе ресурсов, что и выше.
- Выводит имена созданной группы ресурсов и реестра контейнеров.
- Выведи сервер аутентификации созданного реестра контейнеров.
Предварительные требования
Создайте учетную запись Azure с активной подпиской. Вы можете создать учетную запись бесплатно.
Установите и настройте Terraform.
Реализация кода Terraform
Примечание.
Пример кода для этой статьи находится в репозитории Azure Terraform GitHub. Вы можете просмотреть файл журнала, содержащий результаты теста из текущих и предыдущих версий Terraform.
Создайте каталог, в котором необходимо протестировать и запустить пример кода Terraform и сделать его текущим каталогом.
Создайте файл с именем
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" }
Создайте файл с именем
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 }
Создайте файл с именем
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 {} }
Создайте файл с именем
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, выполните следующие действия:
Выполните команду terraform plan и укажите флаг
destroy
.terraform plan -destroy -out main.destroy.tfplan
Основные моменты:
- Команда
terraform plan
создает план выполнения, но не выполняет его. Вместо этого она определяет, какие действия необходимы для создания конфигурации, заданной в файлах конфигурации. Этот шаблон позволяет проверить, соответствует ли план выполнения вашим ожиданиям, прежде чем вы начнете вносить изменения в фактические ресурсы. - Необязательный параметр
-out
позволяет указать выходной файл для плана. Использование параметра-out
гарантирует, что проверяемый план полностью соответствует применяемому.
- Команда
Выполните команду terraform apply, чтобы применить план выполнения.
terraform apply main.destroy.tfplan
Устранение неполадок с Terraform в Azure
Устранение распространенных проблем при использовании Terraform в Azure.