Настройка Terraform и YandexCloud

Для работы с облачными ресурсами, особенно при частом деплое и изменении конфигураций, руками поднимать инфраструктуру – это утопия, потому лучше всего освоить Terraform. Имхо, самое сложное в Terraform – это настроить среду для работу с облачным провайдером. Мне сейчас нравится Яндекс-облако, очень хотел бы туда пойти работать и помочь им стать еще лучше, но пока увы.

Настройку инфраструктуры рекомендую проводить не под Windows, даже если с ним постоянно работаешь. Только консоль любой linux Операционки. Несмотря на то, что сам работаю с Windows, всю работу веду из виртуалки Debian, установленной как WSL на компьютере.

Установка Terraform

Скачай с зеркала яндекса: https://hashicorp-releases.yandexcloud.net/terraform/

Я пользуюсь wget'ом по старинке:

wget https://hashicorp-releases.yandexcloud.net/terraform/1.3.7/terraform_1.3.7_linux_amd64.zip

Далее terraform из архива надо поместить в директорию /bin/.  Можно так:

sudo unzip terraform_1.3.7_linux_amd64.zip -d /bin

Можно по-ламерски через Midnight commander с правами sudo 🙂

Установка командной строки Yandex Cloud (Yandex CLI)

В консоли запускай команду и жди:

curl -sSL https://storage.yandexcloud.net/yandexcloud-yc/install.sh | bash

После установки перезапусти консоль, чтобы переменная Path стала доступной.

О том, как пользоваться yandex cli, очень неплохо написано тут: https://cloud.yandex.ru/docs/cli/quickstart#install

В первый раз запусти инициализацию Yandex CLI

yc init

В результате будет выведен текст с ссылкой на страницу, где надо получить токен и вставить его в консоль.

Please go to https://oauth.yandex.ru/authorize?response_type=token&client_id=1a1111aa111111e9b2ef855fa7bec2fb in order to obtain OAuth token.

После нужно ввести скопированный с сайта токен и ответить на вопросы о выборе доступных облаков, папок и выбрать сетевой сегмент по умолчанию.

Проверить настройки CLI можно командой:

yc config list

Создай сервисную учетку, если ее еще нет:

yc iam service-account create --name <имя_сервисного_аккаунта>

У меня это было так:

yc iam service-account create --name  abbyandex-srv

Дальше надо назначить сервисной учетной записи права и роли, но честно – это лучше делать черед веб-интерфейс консоли в разделе «Сервисные эккаунты»

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

provider_installation {
  network_mirror {
    url = "https://terraform-mirror.yandexcloud.net/"
    include = &#91;"registry.terraform.io/*/*"]
  }
  direct {
    exclude = &#91;"registry.terraform.io/*/*"]
  }
}

После того, как все настроено, нужно

terraform init

После этого должен сформироваться файл .terraform.lock.hcl

Содержимое директории с проектом Terraform

Успешность настройки можно проверить командой :

terraform validate

В результате должен быть текст «Success! The configuration is valid.»

Good luck


Комментариев нет »

No comments yet.

RSS feed for comments on this post. TrackBack URL

Leave a comment






MarkiMarta.ru. Записки отца-программиста" с 2009 г.
Категория информационной продукции 18+
Яндекс.Метрика