Что такое Terraform

Terraform

бесплатное программное обеспечение, с помощью которого можно развернуть инфраструктуру на уровне кода (как правило, в облаке) с помощью языка Hashicorp Configuration Language (HCL). Он позволяет описать ресурсы для их создания и/или настройки у хостера, поддерживающего необходимые запросы. Инструмент разработан компанией Hashicorp в 2014 году.

Terraform поддерживают большинство известных поставщиков облачных услуг, например:

  • Yandex Cloud.
  • VK Cloud.
  • OpenStack.
  • AWS (Amazon Web Services).
  • Google Cloud Platform.
  • Microsoft Azure.
  • DigitalOcean.
  • IBM Cloud.

Это далеко не полный перечень поддерживаемых платформ. Как правило, описание провайдера стоит читать на сайте самого хостера.

Для тех, кто еще не знаком с программным продуктом, на странице обучения официального сайта есть примеры по началу работы для разных поставщиков облачных услуг. На странице можно получить документацию по работе с tarraform. Также на страницах самих хостеров может быть инструкция по началу работы с terraform в их среде, например, для Яндекса.

Установить программу можно на все известные операционные системы — Linux, Windows, Mac OS. Скачать файлы для установки можно на соответствующей странице официального сайта. Применяя Terraform, мы не зависим от API поставщика услуг и получаем универсальный инструмент для автоматизации нашей работы. Сам код HCL представляет из себя обычный текст, поддерживающий переменные и не требующий компиляции. Пример кода можно найти на сайтах провайдеров, например, ранее упомянутом Яндексе (по той же ссылке).

Ранее было сказано, что чаще всего, terraform используется для работы с облачными системами, однако, его можно применять для других настроек, например:

  • Сетевого оборудования Cisco ASA и Mikrotik (для RouterOS v6.45.2 и выше).
  • Git репозиториев GitHub и GitLab.
  • Гипервизора VMware vSphere.

Аналоги terraform:

  1. Ansible / Puppet / Chief. Универсальный, но не удобен для работы с облаками.
  2. AWS CloudFormation. Работает только для Amazon.
EnglishRussianUkrainian