Описание:

Одним из важных путей развития DevOps можно назвать методологию IaaC (Infrastructure as a Code). Данная практика подразумевает хранение информации обо всей инфраструктуре в системе контроля версий. Настройки серверов, пользователи в системе и даже информация о созданных VM должны храниться в гите. Если придерживаться данной практики, можно получить достаточно много бонусов:

  • работать с инфраструктурой как с кодом - делать pull requests, проверять изменения и так далее;
  • хранить историю изменений - git log;
  • описание инфраструктуры в гите по сути является документацией - вы быстро можете подключить нового сотрудника к проекту.

Практически во всех проектах используются внешние облачные сервисы. Например, CloudFlare как CDN и защита от DDoS, Github для хранения репозиториев, Google cloud или Digital ocean для создания виртуальных машин, Amazon route 53 как DNS-сервер. Раньше практически все изменения в данных системах делались вручную - через веб-интерфейс. Такие действия были плохо автоматизируемыми и сложно повторяемыми. И их сложно было записать, что противоречит практике IaaC.

Но вскоре большинство крупных облачных провайдеров реализовали внешнее API (Application programming interface) для возможности управления сервисами программно.

Terraform - программный продукт компании HashiCorp, в котором реализованы методы взаимодействия с API очень большого количества провайдеров, предоставляющих услуги IaaS (Infrastructure as a Service) и SaaS (Software as a Service). Поэтому благодаря Terraform мы можем описывать необходимые нам ресурсы в конфигурационном файле, а Terraform сам создаст все необходимое в облачных сервисах.

Синтаксис у Terraform очень похож на знакомый вам JSON-формат данных, но все же отличается. В приведенных ниже ссылках есть вся информация, необходимая для выполнения задания.

Полезные ссылки:

Задание:

Напишите конфигурационный файл для Terraform, который:

  • создает репозиторий в вашем аккаунте на gitlab.rebrainme.com
  • добавляет в параметры созданного репозитория публичный ключ для возможности совершения коммитов в него (скорее всего вам придётся сгенерировать новую ключевую пару).
  1. Загрузите в получившийся репозиторий конфигурационный файл terraform. Нет необходимости автоматизировать процесс, достаточно выполнить данную операцию вручную.
  2. В качестве ответа укажите ссылку на получившийся репозиторий.

ВНИМАНИЕ:

Крайне важно следить за тем, что вы коммитите в гит. Ни в коем случае нельзя помещать какие-либо ключи доступа, пароли и тому подобные данные в публичный репозиторий. Что из этого может получиться, вы можете прочитать здесь