Внимание
У Вас отключена поддержка Cookie в браузере. Возможно некорректное отображение сайта!

Зачем нужен Terraform

Мы запустили собственный Terraform-провайдер.

Теперь управлять инфраструктурой G‑Core Labs Cloud ещё удобнее.

С помощью этого инструмента вы можете создавать, изменять и удалять ресурсы в нашем облаке, используя методологию «инфраструктуры как кода» (Infrastructure as a Code).

Рассказываем, что такое Terraform и как его использовать у нас.

Что такое Terraform

Terraform — это open-source-инструмент, разработанный HashiCorp в 2014 году. Подход «инфраструктура как код» позволяет описывать облачную инфраструктуру через набор конфигурационных файлов и тем самым задавать правила, как всё должно быть настроено.

Зачем нужен Terraform

Вы пишите код. Terraform считывает его и через вызовы к API приводит всё к описанному состоянию.

Плюсы Terraform:

  • Не нужно создавать, изменять и удалять ресурсы вручную в панели управления провайдера.
  • Код управляет облачными сетями и ресурсами и одновременно является документацией.

Terraform использует язык программирования HashiCorp Configuration Language. Он довольно простой и логичный. Но при желании вы можете использовать JSON.

3 преимущества Terraform

1. Универсальность. Инструмент поддерживают множество разных облачных провайдеров. Поэтому с помощью Terraform можно управлять инфраструктурой сразу в нескольких облаках. Помимо этого, он работает с Docker, Kubernetes, Chef и другими системами. С помощью Terraform вы можете встроить в архитектуру любое приложение на любом языке.

2. Безопасность. Без Terraform каждое ПО нужно обновлять там, где оно установлено. Таким образом, каждый сервер приобретает свою уникальную историю обновлений ПО. Незначительные различия в используемых в системе программах приводят к «конфигурационному дрифту», из-за которого возникают уязвимости для хакерских атак.

В основе Terraform лежит концепция неизменяемой инфраструктуры. Это значит, что любое обновление в коде приводит к созданию новой конфигурации. Следовательно, всё ПО можно очень легко и быстро обновлять во всей системе сразу.

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

Кроме того, Terraform — это декларативный код. Для управления инфраструктурой вам нужно только указать, в каком виде она должна быть, а инструмент уже сам определяет оптимальные способы, как привести систему к этому состоянию.

Ещё один плюс Terraform — архитектуру он выстраивает через API. Не требуется никаких программ-агентов, отдельного сервера для управления конфигурациями и лишних проверок безопасности. Взаимодействие с системой идёт напрямую — это даёт практически полную свободу действий в плане оркестрации.

Как работать с Terraform в G‑Core Labs Cloud

С помощью нашего Terraform-провайдера вы можете управлять всей облачной инфраструктурой:

  • виртуальные машины;
  • baremetal-серверы;
  • диски;
  • файрвол-группы;
  • балансировщики нагрузки;
  • сети;
  • плавающие IP-адреса;
  • резервированные IP-адреса.

Рассмотрим основные настройки, которые помогут начать работу с Terraform.

Как установить и настроить Terraform

Чтобы установить Terraform, скачайте дистрибутив для вашей операционной системы, распакуйте бинарный файл из архива и пропишите его в Path. На сайте HashiCorp есть подробная инструкция по установке для каждой операционной системы.

Работа с Terraform начинается с создания конфигурационных файлов с расширением .tf. В них вы будете описывать свою инфраструктуру с помощью кода.

Чтобы использовать Terraform в архитектуре G‑Core Labs Cloud, в конфигурационном файле нужно указать провайдера и задать его настройки:

terraform { required_version = ">= 0.13.0" required_providers { gcore = { source = "local.gcorelabs.com/repo/gcore" version = "~>0.0.15" } } }

provider gcore { user_name = “test” password = “test” gcore_platform = “https://api.gcdn.co” gcore_api = “https://api.cloud.gcorelabs.com” }

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

После этого вы можете создавать ресурсы и выполнять различные команды.

Как использовать Terraform

После настройки провайдера в файле задаются конфигурации ресурсов.

Вот так, например, создаётся облачная сеть:

resource "gcore_network" "network" { name = "network_example" mtu = 1450 type = "vxlan" region_id = 1 project_id = 1 }

Полезные команды и инструменты

Когда вы прописали вашу инфраструктуру, время использовать команду terraform plan. Эта функция нужна главным образом для проверки. Она показывает, какие изменения Terraform собирается внести. Если вы допустили ошибки при создании конфигурации, Terraform на них укажет.

Исправьте ошибки, если они есть. И можно переходить к следующему шагу — terraform apply. Эта команда вносит изменения в существующую инфраструктуру. После её введения Terraform попросит вас подтвердить действие — введите yes.

Команда terraform import позволяет перенести созданную вручную в панели управления конфигурацию ресурсов в код.

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

Помимо этого, у синтаксиса Terraform есть много полезных инструментов. Например, modules дают возможность объединять разные наборы ресурсов в логические блоки и переиспользовать эти блоки в дальнейшем. Или expressions — с их помощью можно искать и обращаться к разным данным в коде: например, взять элемент из списка или найти какое-то значение на основании условия.

Подробнее о работе с нашим Terraform-провайдером смотрите в GitHub.

Ещё не подключены к G‑Core Labs Cloud? Упростите управление вашей инфраструктурой с помощью нашего облака и Terraform-провайдера прямо сейчас. Или начните с бесплатной консультации.


Подпишитесь на полезную рассылку

Выгодные предложения и важные новости раз в месяц. Без спама