Зачастую разбираться в новых инструментах гораздо интересней понимая то, как они работают изнутри. Поэтому в рамках первого необязательного задания предлагается завести свою учетную запись в AWS (Amazon Web Services).
Остальные задания можно будет выполнять и без этого аккаунта, но с ним можно будет увидеть полный цикл процессов.
AWS предоставляет достаточно много бесплатных ресурсов в первых год после регистрации, подробно описано здесь.
- Создайте аккаут aws.
- Установите c aws-cli https://aws.amazon.com/cli/.
- Выполните первичную настройку aws-sli https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html.
- Создайте IAM политику для терраформа 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
.
- В каталоге
terraform
вашего основного репозитория, который был создан в начале курсе, создайте файлmain.tf
иversions.tf
. - Зарегистрируйте провайдер для aws. В файл
main.tf
добавьте блокprovider
, а вversions.tf
блокterraform
с вложенным блокомrequired_providers
. Укажите любой выбранный вами регион внутри блокаprovider
. - Внимание! В гит репозиторий нельзя пушить ваши личные ключи доступа к аккаунта. Поэтому в предыдущем задании мы указывали их в виде переменных окружения.
- В файле
main.tf
воспользуйтесь блокомdata "aws_ami
для поиска ami образа последнего Ubuntu. - В файле
main.tf
создайте рессурс ec2 instance. Постарайтесь указать как можно больше параметров для его определения. Минимальный набор параметров указан в первом блокеExample Usage
, но желательно, указать большее количество параметров. - Добавьте data-блоки
aws_caller_identity
иaws_region
. - В файл
outputs.tf
поместить блокиoutput
с данными об используемых в данный момент:- AWS account ID,
- AWS user ID,
- AWS регион, который используется в данный момент,
- Приватный IP ec2 инстансы,
- Идентификатор подсети в которой создан инстанс.
- Если вы выполнили первый пункт, то добейтесь того, что бы команда
terraform plan
выполнялась без ошибок.
В качестве результата задания предоставьте:
- Ответ на вопрос: при помощи какого инструмента (из разобранных на прошлом занятии) можно создать свой образ ami?
- Ссылку на репозиторий с исходной конфигурацией терраформа.