Skip to content

Latest commit

 

History

History

07-terraform-04-teamwork

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Домашнее задание к занятию "7.4. Средства командной работы над инфраструктурой."

Задача 1. Настроить terraform cloud (необязательно, но крайне желательно).

В это задании предлагается познакомиться со средством командой работы над инфраструктурой предоставляемым разработчиками терраформа.

  1. Зарегистрируйтесь на https://app.terraform.io/. (регистрация бесплатная и не требует использования платежных инструментов).
  2. Создайте в своем github аккаунте (или другом хранилище репозиториев) отдельный репозиторий с конфигурационными файлами прошлых занятий (или воспользуйтесь любым простым конфигом).
  3. Зарегистрируйте этот репозиторий в https://app.terraform.io/.
  4. Выполните plan и apply.

В качестве результата задания приложите снимок экрана с успешным применением конфигурации.

https://github.com/SomovAA/terraform-cloud

  • Terraform cloud Терраформ

Задача 2. Написать серверный конфиг для атлантиса.

Смысл задания – познакомиться с документацией о серверной конфигурации и конфигурации уровня репозитория.

Создай server.yaml который скажет атлантису:

  1. Укажите, что атлантис должен работать только для репозиториев в вашем github (или любом другом) аккаунте.
  2. На стороне клиентского конфига разрешите изменять workflow, то есть для каждого репозитория можно будет указать свои дополнительные команды.
  3. В workflow используемом по-умолчанию сделайте так, что бы во время планирования не происходил lock состояния.

Создай atlantis.yaml который, если поместить в корень terraform проекта, скажет атлантису:

  1. Надо запускать планирование и аплай для двух воркспейсов stage и prod.
  2. Необходимо включить автопланирование при изменении любых файлов *.tf.

В качестве результата приложите ссылку на файлы server.yaml и atlantis.yaml.

Задача 3. Знакомство с каталогом модулей.

  1. В каталоге модулей найдите официальный модуль от aws для создания ec2 инстансов.
  2. Изучите как устроен модуль. Задумайтесь, будете ли в своем проекте использовать этот модуль или непосредственно ресурс aws_instance без помощи модуля?
  3. В рамках предпоследнего задания был создан ec2 при помощи ресурса aws_instance. Создайте аналогичный инстанс при помощи найденного модуля.

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

Решение:

Т.к. мы работаем с яндекс облаком, я поискал модули для него, там не особо много и они не особо популярны... один из популярных это модуль для создания vpc (hamnsk/vpc). С ним и экспериментировал. Инстансы я в прошлых работах создавал, думаю для понимания работы с модулями достаточно и модуля для создания сети. Модули удобны по ряду причин, одна из основных - это повторное использование. Но стоит не забывать о безопасности, поэтому следует изучать на наличие уязвимостей. Форк модуля с конкретной версией безопаснее, т.к. не известно какая версия будет вытягиваться, могут и в патчевой что-то поломать, а если это будет своя версия, то контроля больше.

  1. Выполните команду, и установите необходимые параметры в .env файле
make copy-env-file

Узнать их можно при помощи команды

yc config list
  1. Запустите деплой
make all