В это задании предлагается познакомиться со средством командой работы над инфраструктурой предоставляемым разработчиками терраформа.
- Зарегистрируйтесь на https://app.terraform.io/. (регистрация бесплатная и не требует использования платежных инструментов).
- Создайте в своем github аккаунте (или другом хранилище репозиториев) отдельный репозиторий с конфигурационными файлами прошлых занятий (или воспользуйтесь любым простым конфигом).
- Зарегистрируйте этот репозиторий в https://app.terraform.io/.
- Выполните plan и apply.
В качестве результата задания приложите снимок экрана с успешным применением конфигурации.
https://github.com/SomovAA/terraform-cloud
Смысл задания – познакомиться с документацией о серверной конфигурации и конфигурации уровня репозитория.
Создай server.yaml
который скажет атлантису:
- Укажите, что атлантис должен работать только для репозиториев в вашем github (или любом другом) аккаунте.
- На стороне клиентского конфига разрешите изменять
workflow
, то есть для каждого репозитория можно будет указать свои дополнительные команды. - В
workflow
используемом по-умолчанию сделайте так, что бы во время планирования не происходилlock
состояния.
Создай atlantis.yaml
который, если поместить в корень terraform проекта, скажет атлантису:
- Надо запускать планирование и аплай для двух воркспейсов
stage
иprod
. - Необходимо включить автопланирование при изменении любых файлов
*.tf
.
В качестве результата приложите ссылку на файлы server.yaml
и atlantis.yaml
.
- В каталоге модулей найдите официальный модуль от aws для создания
ec2
инстансов. - Изучите как устроен модуль. Задумайтесь, будете ли в своем проекте использовать этот модуль или непосредственно
ресурс
aws_instance
без помощи модуля? - В рамках предпоследнего задания был создан ec2 при помощи ресурса
aws_instance
. Создайте аналогичный инстанс при помощи найденного модуля.
В качестве результата задания приложите ссылку на созданный блок конфигураций.
Решение:
Т.к. мы работаем с яндекс облаком, я поискал модули для него, там не особо много и они не особо популярны... один из популярных это модуль для создания vpc (hamnsk/vpc). С ним и экспериментировал. Инстансы я в прошлых работах создавал, думаю для понимания работы с модулями достаточно и модуля для создания сети. Модули удобны по ряду причин, одна из основных - это повторное использование. Но стоит не забывать о безопасности, поэтому следует изучать на наличие уязвимостей. Форк модуля с конкретной версией безопаснее, т.к. не известно какая версия будет вытягиваться, могут и в патчевой что-то поломать, а если это будет своя версия, то контроля больше.
- Выполните команду, и установите необходимые параметры в .env файле
make copy-env-file
Узнать их можно при помощи команды
yc config list
- Запустите деплой
make all