+7 495 230 03 03 8 800 222 50 03
DevOps

Установка Terraform

Terraform – это инструмент организации IaaC (инфраструктура как код), который позволяет управлять облачными ресурсами версионным способом. Terraform используется для создания, изменения и версионирования инфраструктуры, развернутой у популярных поставщиков услуг.

С помощью terraform можно управлять облачными вычислениями, сетями, балансировщиками нагрузки, DNS и т.д., используя декларативный язык программирования.

Рассмотрим установку terraform на Windows и Linux-устройства. Для проверки корректности работы будем использовать docker.

Windows 10

Для начала необходимо установить утилиту Chocolatey. Chocolatey – это бесплатная система управления пакетами с открытым исходным кодом для Windows. Требования и описания к установке описаны на официальном сайте.

Все команды должны выполняться с правами администратора.

Выполняем команду в Powershell:

PS C:Windowssystem32> choco install terraform

В результате выполнения должен установиться terraform. Проверяем установку:

PS C:Windowssystem32> terraform -v
Terraform v0.14.7

Можно посмотреть список доступных команд:

PS C:Windowssystem32> terraform -help

Справка по конкретной команде:

PS C:Windowssystem32>terraform -help  имя_команды

Приступим к тестированию установки terraform. Установим docker.

Создаем новую папку, где будем хранить конфигурационный файл и перейдем в нее:

PS C:Windowssystem32>mkdir c:temp
PS C:Windowssystem32>mkdir c:tempterraform-docker-demo
PS C:Windowssystem32>cd C:tempterraform-docker-demo 

Создадим файл конфигурации main.tf для terraform со следующим содержанием:

terraform {
  required_providers {
    docker = {
      source = "terraform-providers/docker"
    }
  }
}

provider "docker" {
  host    = "npipe:////.//pipe//docker_engine"
}

resource "docker_image" "nginx" {
  name         = "nginx:latest"
  keep_locally = false
}

resource "docker_container" "nginx" {
  image = docker_image.nginx.latest
  name  = "tutorial"
  ports {
    internal = 80
    external = 8000
  }
}

Полностью описывать содержимое файла нет необходимости, у terraform довольно хорошо описана документация по всем разделам. Если описать кратко, то мы создаем ресурс docker_containe с nginx на порту 8000 (порт в контейнере 80) с помощью провайдера docker.

Инициализируем проект, при этом происходит загрузка всех необходимых плагинов, позволяющих terraform взаимодействовать с docker.

PS C:Windowssystem32>terraform init

Запустить контейнер nginx можно с помощью apply. Когда terraform попросит вас подтвердить, введите yes и нажмите enter.

PS C:Windowssystem32>terraform apply

Проверяем, что контейнер NGINX существует и работает зайдя по ссылке localhost:8000 в своем веб-браузере или запустив команду docker ps чтобы увидеть контейнер.

PS C:tempterraform-docker-demo> docker ps
CONTAINER ID   IMAGE          COMMAND                  CREATED         STATUS         PORTS                  NAMES
278736fd31e8   35c43ace9216   "/docker-entrypoint.…"   5 seconds ago   Up 4 seconds   0.0.0.0:8000->80/tcp   tutorial

Для остановки контейнера запускаем terraform destroy и подтверждаем вводом yes, когда запросит.

PS C:Windowssystem32> terraform destroy

Установка на Linux

Установка на Linux отличается только на начальном этапе. Этап конфигурирования одинаков для всех платформ.

Debian/Ubuntu

Добавляем HashiCorp GPG ключи:

$ curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo apt-key add -
 

Добавляем официальный HashiCorp Linux репозиторий:

$ sudo apt-add-repository "deb [arch=amd64] https://apt.releases.hashicorp.com $(lsb_release -cs) main"

Выполняем обновление и установку:

$ sudo apt-get update && sudo apt-get install terraform

Centos/RHEL

Устанавливаем yum-config-manager для управления репозиториями:

# sudo yum install -y yum-utils

Используем yum-config-manager для добавления официального HashiCorp Linux репозитория:

# sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo

Устанавливаем:

# sudo yum -y install terraform

Нужно DevOps-сопровождение? Обращайтесь к нам!

Дата публикации: 5 сентября 2022
Не нашли ответа на свой вопрос?

Смотрите также

Обсуждение материала

Содержание

Заказать звонок

Оставьте свои данные для того, чтобы специалист с вами связался.

*нажимая на кнопку, Вы даете согласие на обработку персональных данных
Быстрое внедрение включает:
На сервере установлено следующее ПО (доступно при подключении по протоколу RDP):
Также настроено:
Перед внедрением клиент предоставляет информацию о пользователях (логины и пароли). После завершения работ, клиенту высылается инструкция и ярлык для подключения.
Индивидуальное внедрение по ТЗ клиента обсуждается отдельно.