Использование Terraform для управления инфраструктурой Google Cloud Platform

Terraform — это инструмент, с помощью которого можно описать серверную инфраструктуру в виде кода.
К примеру для создания определенного количества виртуальных машин и других объектов в облачной инфраструктуре не нужно каждый раз вручную создавать инстансы или писать плейбуки для Ansible или какие-то обертки над API, достаточно просто в человекочитаемом виде записать как будет представлена инфраструктура и в случае чего ее можно легко развернуть.

В заметке я опишу, как с помощью Terraform можно создать инстанс в Google Compute Engine.
Документация доступна тут.

Terraform распространяется в виде бинарного файла, поэтому проблем с его установкой нет никаких:

Terraform установили, далее создаем сервисный акканут в Google Cloud Platform в разделе IAM с ролью Compute Admin, сохраняем сгенерированный приватный ключ в формате json на сервер, например в файл .tf-gcp-account.json

Создаем описание доступов и переменных для гуглового проекта:

В этом конфиге мы описали, что необходимо создать виртуалку с именем k8s-master в зоне europe-west1-d, на основе образа ubuntu-16.04 с диском размером 30GB.

Инициализируем Terraform:

Перед тем как создавать инстанс, проверим все ли в порядке на предмет ошибок:

Если все в порядке, то применяем конфигурацию:

Проверим, создался ли наш инстанс:

Далее мы можем например по SSH подключиться к созданному инстансу:

Для того чтобы удалить инстанс есть команда destroy: