мета-данные страницы
Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
| devops_training_in_yandex:devops-trainings-cloud-1 [2023/11/10 10:07] – Администратор | devops_training_in_yandex:devops-trainings-cloud-1 [2023/11/13 11:21] (текущий) – Администратор | ||
|---|---|---|---|
| Строка 288: | Строка 288: | ||
| {{: | {{: | ||
| + | ===== Разворачиваем инфраструктуру с помощью Terraform ===== | ||
| + | ==== Установка ==== | ||
| + | |||
| + | Для начала нужно установить Terraform, а т.к. мы в России, | ||
| + | Заходим на сайт **https:// | ||
| + | Выполняем команды: | ||
| + | Скачать архив | ||
| + | < | ||
| + | Распаковать архив | ||
| + | < | ||
| + | Переместить файл | ||
| + | < | ||
| + | |||
| + | ==== Проверка работы Terraform ==== | ||
| + | Переходим в заранее клонированный репозиторий с github в папку terraform | ||
| + | И выполняем команду | ||
| + | < | ||
| + | Если получаете ошибку такого рода | ||
| + | |||
| + | {{: | ||
| + | |||
| + | То нужно выполнить следующее: | ||
| + | Создать файл | ||
| + | < | ||
| + | < | ||
| + | network_mirror { | ||
| + | url = " | ||
| + | include = [" | ||
| + | } | ||
| + | direct { | ||
| + | exclude = [" | ||
| + | } | ||
| + | }</ | ||
| + | После этого пробуем еще раз команду | ||
| + | < | ||
| + | И получаем положительный результат | ||
| + | |||
| + | {{: | ||
| + | |||
| + | ==== Запуск ==== | ||
| + | <note important> | ||
| + | Для начала нужно выполнить команду | ||
| + | < | ||
| + | Данная команда покажет ошибки в вашем main.tf если таковы имеются. | ||
| + | В моем случае ошибки есть и их нужно исправить | ||
| + | |||
| + | {{: | ||
| + | |||
| + | === Разбор ошибок и устранение === | ||
| + | 1) Ошибка в названии регистра | ||
| + | < | ||
| + | on output.tf line 2, in output " | ||
| + | 2: value = yandex_container_registry.registry1.id | ||
| + | A managed resource " | ||
| + | |||
| + | Тут все просто, | ||
| + | В моем случае оно называется **ikfellk-registry** Просто меняю на корректное название и ошибка уходит | ||
| + | |||
| + | 2) Отсутствует json файл с данными | ||
| + | < | ||
| + | with provider[" | ||
| + | on main.tf line 11, in provider " | ||
| + | 11: | ||
| + | JSON in " | ||
| + | Error: JSON in " | ||
| + | with provider[" | ||
| + | on main.tf line 11, in provider " | ||
| + | 11: | ||
| + | |||
| + | Для решения нужно сгенерировать json файл с данными для входа | ||
| + | Мы это уже делали ранее [[https:// | ||
| + | Теперь выполняем команду | ||
| + | < | ||
| + | Видим что ошибки ушли, но появилась еще одна | ||
| + | |||
| + | {{: | ||
| + | |||
| + | 3) Отсутствует SSH ключ для авторизации | ||
| + | < | ||
| + | on main.tf line 119, in resource " | ||
| + | 119: | ||
| + | while calling file(path) | ||
| + | Invalid value for " | ||
| + | only with files that are distributed as part of the configuration source code, so if this file will be | ||
| + | created by a resource in this configuration you must instead obtain this result from an attribute of that | ||
| + | resource.</ | ||
| + | Для решения нужно сгенерировать SSH ключ | ||
| + | < | ||
| + | Указываем путь и название как в ошибке **/ | ||
| + | Вводим пароль | ||
| + | Проверяем полученные сертификаты | ||
| + | < | ||
| + | {{: | ||
| + | |||
| + | Теперь выполняем команду | ||
| + | < | ||
| + | И получаем полностью корректный план. | ||
| + | Небольшой пример как это выглядит | ||
| + | |||
| + | {{: | ||
| + | |||
| + | После этого можно запускать команду, | ||
| + | < | ||
| + | В конце, как отработает команда, | ||
| + | |||
| + | {{: | ||
| + | |||
| + | ===== Тестируем отработанный Terraform ===== | ||
| + | Переходим в свой личный кабинет яндекс облака и смотрим что там появились машины, | ||
| + | |||
| + | {{: | ||
| + | |||
| + | Теперь нужно загрузить актуальную версию приложения в контейнер | ||
| + | Для этого выполняем уже знакомые нам команды | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | Вводим логин и пароль от гитхаба | ||
| + | Спустя примерно минуту или полторы, | ||
| + | |||
| + | {{: | ||
| + | |||
| + | Теперь переходим в веб браузер по ip адресам виртуальный машин созданный нашим terraform файлом | ||
| + | и видим там рабочее приложение и метрики | ||
| + | |||
| + | {{: | ||
| + | {{: | ||
| + | {{: | ||
| + | {{: | ||
| + | |||
| + | Для проверки балансировки нужно отключить одну виртуальную машину и со второй ничего не должно произойти и приложение так же останется в рабочем состоянии | ||
| + | |||
| + | Все работает как нужно. | ||
| + | |||
| + | Делаем удаление всех ресурсов | ||
| + | < | ||
| + | |||
| + | Задание выполнено. | ||