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

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

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

    Windows 10

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

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

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

    PS C:\Windows\system32> choco install terraform

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

    PS C:\Windows\system32> terraform -v
    Terraform v0.14.7
    

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

    PS C:\Windows\system32> terraform -help

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

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

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

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

    PS C:\Windows\system32>mkdir c:\temp\
    PS C:\Windows\system32>mkdir c:\temp\terraform-docker-demo
    PS C:\Windows\system32>cd C:\temp\terraform-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:\Windows\system32>terraform init

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

    PS C:\Windows\system32>terraform apply

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

    PS C:\temp\terraform-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:\Windows\system32> 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-сопровождение? Обращайтесь к нам!

    Не нашли ответа на свой вопрос?
    Содержание

    Есть вопросы?

    Закажите звонок специалиста!

    Есть вопросы?

    Закажите звонок специалиста!
    *нажимая на кнопку, Вы даете согласие на обработку персональных данных