Для работы с облачными ресурсами, особенно при частом деплое и изменении конфигураций, руками поднимать инфраструктуру – это утопия, потому лучше всего освоить 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 = ["registry.terraform.io/*/*"]
}
direct {
exclude = ["registry.terraform.io/*/*"]
}
}
После того, как все настроено, нужно
terraform init
После этого должен сформироваться файл .terraform.lock.hcl
Успешность настройки можно проверить командой :
terraform validate
В результате должен быть текст «Success! The configuration is valid.»
Good luck