# Домашнее задание к занятию "7.4. Средства командной работы над инфраструктурой."
## Задача 1. Настроить terraform cloud (необязательно, но крайне желательно).
В это задании предлагается познакомиться со средством командой работы над инфраструктурой предоставляемым
разработчиками терраформа.
1. Зарегистрируйтесь на [https://app.terraform.io/](https://app.terraform.io/).
(регистрация бесплатная и не требует использования платежных инструментов).
1. Создайте в своем github аккаунте (или другом хранилище репозиториев) отдельный репозиторий с
конфигурационными файлами прошлых занятий (или воспользуйтесь любым простым конфигом).
1. Зарегистрируйте этот репозиторий в [https://app.terraform.io/](https://app.terraform.io/).
1. Выполните plan и apply.
В качестве результата задания приложите снимок экрана с успешным применением конфигурации.
## Ответ 1.



## Задача 2. Написать серверный конфиг для атлантиса.
Смысл задания – познакомиться с документацией
о [серверной](https://www.runatlantis.io/docs/server-side-repo-config.html) конфигурации и конфигурации уровня
[репозитория](https://www.runatlantis.io/docs/repo-level-atlantis-yaml.html).
Создай `server.yaml` который скажет атлантису:
1. Укажите, что атлантис должен работать только для репозиториев в вашем github (или любом другом) аккаунте.
1. На стороне клиентского конфига разрешите изменять `workflow`, то есть для каждого репозитория можно
будет указать свои дополнительные команды.
1. В `workflow` используемом по-умолчанию сделайте так, что бы во время планирования не происходил `lock` состояния.
Создай `atlantis.yaml` который, если поместить в корень terraform проекта, скажет атлантису:
1. Надо запускать планирование и аплай для двух воркспейсов `stage` и `prod`.
1. Необходимо включить автопланирование при изменении любых файлов `*.tf`.
В качестве результата приложите ссылку на файлы `server.yaml` и `atlantis.yaml`.
## Ответ 2.
https://github.com/Vahhhh/devops-netology/blob/master/terraform/lesson_4/atlantis.yaml
https://github.com/Vahhhh/devops-netology/blob/master/terraform/lesson_4/server.yaml
В целом понял, но без практики не до конца понятно, нормально ли если указаны не все параметры (вроде в инструкции было написано что и без конфига все по-дефолту работает, значит наверно так норм)
Но если нет - готов переделать на правильный вариант.
## Задача 3. Знакомство с каталогом модулей.
1. В [каталоге модулей](https://registry.terraform.io/browse/modules) найдите официальный модуль от aws для создания
`ec2` инстансов.
2. Изучите как устроен модуль. Задумайтесь, будете ли в своем проекте использовать этот модуль или непосредственно
ресурс `aws_instance` без помощи модуля?
3. В рамках предпоследнего задания был создан ec2 при помощи ресурса `aws_instance`.
Создайте аналогичный инстанс при помощи найденного модуля.
В качестве результата задания приложите ссылку на созданный блок конфигураций.
## Ответ 3.
1. https://registry.terraform.io/modules/terraform-aws-modules/ec2-instance/aws/latest
2. Судя по лекции - наверно буду следовать рекомендациям более опытных коллег и использовать не буду. Разницу, например, с https://github.com/terraform-aws-modules/terraform-aws-vpc/blob/master/main.tf вижу, но пойму наверно только при применении.
Я так понял, что модули это что-то вроде функции в прогаммировании (тоже её используют когда необходимо повторение одного и того же несколько раз)
3. https://github.com/Vahhhh/devops-netology/tree/master/terraform/lesson_4
Тут 3 файла - main.tf , outputs.tf и versions.tf