- Зайдите в консоль облака https://console.cloud.yandex.ru и создайте себе фолдер
- В терминале рабочей станции инициируйте
yc init
- Запишите id вашего фолдера, облака и ваш токен, выполнив
yc config list
- Скачайте данный репозиторий с помощью git
git clone https://github.com/nar3k/yc-public-tasks.git
cd yc-public-tasks
Переходим в папку terraform
cd terraform
Документация к провайдеру terraform находится тут
variables.tf
- описание переменныхnetwork.tf
- описание сетиmain.tf
- описание инстансовoutput.tf
- описание вывода
Скопируем файл terraform.tfvars_example
в terraform.tfvars
cp terraform.tfvars_example terraform.tfvars
Заполним значения переменных в файле значениями, полученными при выводе yc config list
- token
- cloud_id
- folder_id
Остальные значения измените
Запустим terraform
terraform init
Применим инфраструктуру
terraform apply
Напишем yes
, чтобы terraform начал деплой
Подождем несколько минут, чтобы nginx установился. Зайдите в консоль облака, выберите ваш фолдер и посмотрите на созданные инстансы и сети.
Посмотрим на полученные адреса
terraform output external_ip_addresses
Попробуем подключимтся к созданным инстансам по полученным ip адресам
ssh ubuntu@<IP_ADDRESS>
Попробуем сделать в них curl. Сервера должны отвечать своими именами (которые получаются при выводе команды terraform output hostnames
)
for i in $(terraform output -json external_ip_addresses | jq -r .[0][]); do
curl $i;
done
Размером кластера управляем переменная cluster_size
. Изменим ее значения до 6 в файле terraform.tfvars
$ cat terraform.tfvars
cluster_size = 6
Применим изменения.
terraform apply
Обратите внимание, что terraform просто добавит в кластер 3 узла
Plan: 3 to add, 0 to change, 0 to destroy.
Дождемся, когда новые узлы добавятся в кластер, и проверим что он работает
for i in $(terraform output -json external_ip_addresses | jq -r .[0][]); do
curl $i;
done
terraform destroy
Напишите yes
.
Зайдите в консоль и убедитесь, что в вашем фолдере не осталось ресурсов.