Локальная установка Terraform

Terraform – это инструмент Infrastructure as Code, разработанный компанией HashiCorp. Terraform помогает разработчикам развертывать, обновлять и удалять различные ресурсы своей инфраструктуры более эффективным и масштабируемым способом.

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

1: Локальная установка Terraform

Чтобы установить Terraform на свою локальную машину, выберите предназначенный для вашей системы пакет из этого списка и загрузите его. Пакеты поставляются в виде zip-архива.

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

После этого нужно убедиться, что бинарный файл terraform доступен в PATH. Инструкции по настройке PATH в Linux и Mac вы найдете здесь, инструкции для Windows – здесь.

Для примера рассмотрим установку Terraform в систему Linux подробнее.

Итак, на своей локальной машине перейдите в каталог, в который вы хотите установить Terraform. С помощью wget загрузите бинарный файл Terraform.

cd /tmp
wget https://releases.hashicorp.com/terraform/0.12.12/terraform_0.12.12_linux_amd64.zip

Советуем вам проверить контрольную сумму пакета с помощью sha256. Контрольная сумма должна совпасть с суммой на сайте проекта. Если это не так, вероятно, ваш пакет пострадал при скачивании. Загрузите контрольную сумму вашей версии с помощью этой команды:

wget -q https://releases.hashicorp.com/terraform/0.12.12/terraform_0.12.12_SHA256SUMS

С помощью этой команды проверьте контрольную сумму:

sha256sum -c --ignore-missing terraform_0.12.12_SHA256SUMS

Загруженный вами файл SHA256SUMS содержит имена файлов и их хэши. Эта команда найдет файл terraform_0.12.12_SHA256SUMS локально и затем проверит совпадение хэшей, используя флаг -c. Флаг —ignore-missing позволяет избежать ошибок в выходных данных.

Вы увидите такой вывод, если сумма совпала:

terraform_0.12.12_linux_amd64.zip: OK

После этого можно распаковать архив:

sudo unzip terraform_0.12.12_linux_amd64.zip -d /usr/local/bin/

Для проверки можно запросить версию Terraform.

terraform version

Команда должна вернуть:

Terraform v0.12.12

Теперь инструмент Terraform установлен на вашу локальную машину.

2: Тестирование установки Terraform

После установки Terraform проверьте работоспособность вашего нового экземпляра. Откройте новую сессию терминала и запустите terraform. При этом вы должны увидеть справку:

$ terraform
Usage: terraform [--version] [--help] <command> [args]
The available commands for execution are listed below.
The most common, useful commands are shown first, followed by
less common or more advanced commands. If you're just getting
started with Terraform, stick with the common commands. For the
other commands, please read the help and docs before usage.
Common commands:
apply              Builds or changes infrastructure
console            Interactive console for Terraform interpolations
# ...

Если команда выдала сообщение об ошибке (она может пожаловаться, например, что команда terraform не может быть найдена), возможно, вы неправильно установили переменную среды PATH. Вернитесь к ней и убедитесь, что она содержит каталог, в котором установлен инструмент Terraform.

3: Получение справки

Интерфейс командной строки Terraform предлагает встроенную функцию справки. Добавьте флаг -help  к любой команде, чтобы получить дополнительную информацию о ней. Например:

$ terraform -help
Usage: terraform [-version] [-help] <command> [args]
The available commands for execution are listed below.
The most common, useful commands are shown first, followed by
less common or more advanced commands. If you are just getting
started with Terraform, stick with the common commands. For the
other commands, please read the help and docs before usage.
Common commands:
apply              Builds or changes infrastructure
console            Interactive console for Terraform interpolations
destroy            Destroy Terraform-managed infrastructure
env                Workspace management
fmt                Rewrites config files to canonical format
get                Download and install modules for the configuration
graph              Create a visual graph of Terraform resources
import             Import existing infrastructure into Terraform
init               Initialize a Terraform working directory
output             Read an output from a state file
plan               Generate and show an execution plan
providers          Prints a tree of the providers used in the configuration
refresh            Update local state file against real resources
show               Inspect Terraform state or plan
taint              Manually mark a resource for recreation
untaint            Manually unmark a resource as tainted
validate           Validates the Terraform files
version            Prints the Terraform version
workspace          Workspace management
All other commands:
0.12upgrade        Rewrites pre-0.12 module source code for v0.12
debug              Debug output management (experimental)
force-unlock       Manually unlock the terraform state
push               Obsolete command for Terraform Enterprise legacy (v1)
state              Advanced state management

Чтобы получить больше информации о любой из вышеперечисленных команд, укажите ее после флага —help, например:

$ terraform --help plan

Вы получите очень подробную информацию о команде:

Usage: terraform plan [options] [DIR]
Generates an execution plan for Terraform.
This execution plan can be reviewed prior to running apply to get a
sense for what Terraform will do. Optionally, the plan can be saved to
a Terraform plan file, and apply can take this plan file to execute
this plan exactly.
Options:
-destroy            If set, a plan will be generated to destroy all resources
managed by the given configuration and state.
...

Заключение

Теперь вы умеете устанавливать Terraform на локальную машину и знаете базовые функции этого инструмента. Больше полезной информации вы найдете на сайте проекта.

Tags: