Зачастую разбираться в новых инструментах гораздо интереснее, если понимаешь, как они работают изнутри. Поэтому в рамках первого необязательного задания предлагаем завести свою учётную запись в AWS (Amazon Web Services) или Yandex.Cloud. Идеально будет познакомиться с обоими облаками, потому что они отличаются.
Задача 1 (вариант с AWS). Регистрация в AWS и знакомство с основами (не обязательно, но крайне желательно)
Остальные задания можно будет выполнять и без этого аккаунта, но с ним можно будет увидеть полный цикл процессов.
AWS предоставляет много бесплатных ресурсов в первый год после регистрации, подробно описано здесь.
- Создайте аккаунт AWS.
- Установите c aws-cli.
- Выполните первичную настройку aws-sli.
- Создайте IAM-политику для Terraform c правами:
- AmazonEC2FullAccess,
- AmazonS3FullAccess,
- AmazonDynamoDBFullAccess,
- AmazonRDSFullAccess,
- CloudWatchFullAccess,
- IAMFullAccess.
- Добавьте переменные окружения
export AWS_ACCESS_KEY_ID=(your access key id) export AWS_SECRET_ACCESS_KEY=(your secret access key).
- Создайте, остановите и удалите ec2-инстанс (любой с пометкой
free tier
) через веб-интерфейс.
В виде результата задания приложите вывод команды aws configure list
.
Задача 1 (вариант с Yandex.Cloud). Регистрация в Яндекс Облаке и знакомство с основами (не обязательно, но крайне желательно)
- Подробная инструкция на русском языке лежит здесь.
- Обратите внимание на период бесплатного использования после регистрации аккаунта.
- Используйте раздел «Подготовьте облако к работе» для регистрации аккаунта. Далее раздел «Настройте провайдер» для подготовки базового Terraform-конфига.
- Воспользуйтесь инструкцией на сайте Terraform, чтобы не указывать авторизационный токен в коде, а Terraform-провайдер брал его из переменных окружений.
-
В каталоге
Terraform
вашего основного репозитория, который был создан в начале курсе, создайте файлmain.tf
иversions.tf
. -
Зарегистрируйте провайдер:
- Для AWS. В файл
main.tf
добавьте блокprovider
, а вversions.tf
блокTerraform
с вложенным блокомrequired_providers
. Укажите любой выбранный вами регион внутри блокаprovider
.
- Для AWS. В файл
либо
- Для Yandex.Cloud. Подробную инструкцию можно найти здесь.
- Внимание. В git-репозиторий нельзя пушить ваши личные ключи доступа к аккаунту. Поэтому в предыдущем задании мы указывали их в виде переменных окружения.
- В файле
main.tf
воспользуйтесь блокомdata "aws_ami
для поиска ami-образа последнего Ubuntu. - В файле
main.tf
создайте ресурс- либо ec2 instance.
Постарайтесь указать как можно больше параметров для его определения. Минимальный набор параметров указан в первом блоке
Example Usage
, но желательно указать большее количество параметров. - либо yandex _compute _image.
- либо ec2 instance.
Постарайтесь указать как можно больше параметров для его определения. Минимальный набор параметров указан в первом блоке
- Также в случае использования AWS:
- Добавьте data-блоки
aws_caller_identity
иaws_region
. - В файл
outputs.tf
поместите блокиoutput
с данными об используемых в данный момент:- AWS account ID;
- AWS user ID;
- AWS регион, который используется сейчас;
- Приватный IP ec2-инстансы;
- Идентификатор подсети, в которой создан инстанс.
- Добавьте data-блоки
- Если вы выполнили первый пункт, то добейтесь того, что бы команда
terraform plan
выполнялась без ошибок.
В качестве результата задания предоставьте:
- Ответ на вопрос, при помощи какого инструмента из разобранных на прошлом занятии можно создать свой образ ami.
- Ссылку на репозиторий с исходной конфигурацией Terraform.
Выполненное домашнее задание пришлите ссылкой на .md-файл в вашем репозитории.