Інструкція з налаштування конвеєра Azure DevOps та розгортання за допомогою Terraform: Спрощення інфраструктури як коду

текст перекладу
У сучасному швидко змінюваному світі технологій ефективне та надійне управління інфраструктурою є основою успіху. Інструменти Інфраструктури як код (IaC) такі як Terraform, у поєднанні з платформами CI/CD, такими як Azure DevOps, надають командам можливість автоматизувати та оптимізувати процеси розгортання. Цей посібник проведе вас через створення конвеєра Azure DevOps для розгортання інфраструктури за допомогою Terraform — крок за кроком.

pic

Чому Azure DevOps та Terraform?

Azure DevOps надає чудову платформу для управління та автоматизації робочих процесів CI/CD. Terraform, у свою чергу, є потужним інструментом IaC для надання та управління інфраструктурою в різних хмарних провайдерів. Разом вони дозволяють:

  • Послідовність: Забезпечте однакове визначення та розгортання інфраструктури в різних середовищах.
  • Автоматизація: Зменште кількість ручних завдань і помилок.
  • Масштабованість: Легко справляйтеся з розгортаннями будь-якого масштабу.
  • Аудитованість: Зберігайте чітку історію змін інфраструктури.

Попередні вимоги

Перед тим як почати, переконайтеся, що у вас є:

  1. Обліковий запис Azure DevOps: Створіть проект у Azure DevOps.
  2. Встановлений Terraform: Завантажте та встановіть Terraform на вашому локальному комп'ютері.
  3. Підписка Azure: Активний акаунт Azure з необхідними правами доступу.
  4. Базові знання Terraform: Ознайомленість з написанням конфігурацій Terraform.

Крок 1: Напишіть конфігурацію Terraform

Почнімо з створення файлу конфігурації Terraform для визначення бажаної інфраструктури. У цьому прикладі ми будемо надавати Azure Storage Account.

Файл: main.tf

provider "azurerm" {  
 features {}  
}
resource "azurerm_resource_group" "example" {  
 name = "example-resources"  
 location = "East US"  
}resource "azurerm_storage_account" "example" {  
 name = "examplestorageacct"  
 resource_group_name = azurerm_resource_group.example.name  
 location = azurerm_resource_group.example.location  
 account_tier = "Standard"  
 account_replication_type = "LRS"  
}

Крок 2: Створіть репозиторій Azure DevOps

  1. Перейдіть до вашого проекту Azure DevOps.
  2. Перейдіть до Repos і створіть новий репозиторій.
  3. Завантажте ваші файли конфігурації Terraform у цей репозиторій.

Крок 3: Налаштуйте з'єднання служби

Azure DevOps потребує дозволів для взаємодії з вашою підпискою Azure.

  1. Перейдіть до налаштувань вашого проекту Azure DevOps.
  2. Перейдіть до Service Connections і створіть нове з'єднання Azure Resource Manager.
  3. Аутентифікуйтесь за допомогою Service Principal або Azure CLI.

Крок 4: Створіть конвеєр Azure DevOps

  1. Перейдіть до Pipelines в Azure DevOps і створіть новий конвеєр.
  2. Виберіть ваш репозиторій, що містить файли Terraform.
  3. Виберіть «Starter Pipeline» і замініть вміст на нижчевказаний YAML файл.

Файл: azure-pipelines.yml

trigger:  
- main
pool:  
 vmImage: 'ubuntu-latest'steps:  
- task: UseTerraform@0  
 inputs:  
 command: 'init'  
 workingDirectory: '.'- task: UseTerraform@0  
 inputs:  
 command: 'plan'  
 workingDirectory: '.'  
 environmentServiceName: 'YourServiceConnectionName'- task: UseTerraform@0  
 inputs:  
 command: 'apply'  
 workingDirectory: '.'  
 environmentServiceName: 'YourServiceConnectionName'  
 additionalArguments: '-auto-approve'

Замість YourServiceConnectionName використайте назву вашого з'єднання служби.

Крок 5: Запустіть конвеєр

  1. Збережіть і запустіть конвеєр.
  2. Конвеєр виконає наступні команди Terraform:
  • Init: Ініціалізує Terraform.
  • Plan: Створює план для змін інфраструктури.
  • Apply: Застосовує план для створення/оновлення ресурсів в Azure.
  1. Слідкуйте за прогресом конвеєра та перевірте розгортання в порталі Azure.

Найкращі практики для Terraform та Azure DevOps

  1. Управління станом: Використовуйте віддалені сховища стану (наприклад, Azure Blob Storage), щоб уникнути конфліктів.
    2.
    текст перекладу
    Забезпечення безпеки секретів: Використовуйте Azure Key Vault або секрети конвеєра для керування чутливою інформацією, такою як ключі доступу.
  2. Модульність коду: Розбивайте конфігурації Terraform на багаторазові модулі для кращої організації.
  3. Впровадження політик: Використовуйте Azure Policy або Sentinel для забезпечення відповідності під час розгортань.

Висновок

Комбінація Azure DevOps та Terraform спрощує управління інфраструктурою та підвищує ефективність розгортання. Автоматизуючи конвеєр, ви мінімізуєте ручне втручання та забезпечуєте стабільність результатів.

Почніть сьогодні, налаштувавши свій перший конвеєр Azure DevOps з Terraform, і відчуйте всю потужність автоматизованої інфраструктури як коду!

Перекладено з: Azure DevOps Pipeline + Terraform Deployment Tutorial: Simplifying Infrastructure as Code

Leave a Reply

Your email address will not be published. Required fields are marked *