В этой статье я буду ссылаться на свою предыдущую статью о создании vpc с нуля. Нажмите здесь, чтобы понять шаги, которые я вам покажу. Terraform может сделать ваше развертывание инфраструктуры эффективным и простым. Во-первых, что такое терраформ? Вы можете найти все, что вам нужно знать о terraform здесь.

Давайте начнем!!
Теперь, когда мы создали наш vpc вручную через консоль was, теперь давайте посмотрим на автоматизацию всего процесса с помощью кода.

Предпосылки

Терраформ установлен

Аккаунт AWS

IDE на ваш выбор

Аккаунт GitHub

Шаг 1

Используя код Visual Studio в качестве редактора по моему выбору, я установил расширение hashicorp, чтобы правильно отформатировать свой код, чтобы легко использовать ресурсы терраформирования.

Вы хотели бы перейти к своему .aws/credentials PATH, чтобы ввести свои ключи доступа/секретные ключи aws, как показано ниже.

[sam-user]
aws_access_key_id = XXXXXXXXXXXXXXX
aws_secret_access_key = XXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Прежде всего, защита ваших ключей доступа и секретных ключей aws очень важна, так как вы будете использовать их для подключения к terraform.

Первый файл, который мы создадим, — это файл Provider.tf, в нем мы настроим нашего провайдера aws, чтобы он ссылался на наш доступ/секретный ключ aws для подключения к terraform. нажмите здесь, чтобы просмотреть документацию.

Шаг 2

Создать Vpc

Ознакомьтесь с документацией terraform по ресурсам vpc: нажмите здесь

В приведенном выше коде мы создали файл main.tf для создания ресурсов нашей инфраструктуры. Используя документацию terraform, было создано имя ресурса sample_vpc. Затем мы выбрали наш CIDR для использования. Пожалуйста, нажмите здесь, чтобы узнать больше о диапазоне cidr.

Шаг 3

Создадим наши подсети:

Мы собираемся создать как частную, так и публичную подсеть для подключения к vpc. Ссылка на документацию здесь

шаг 4

Создать интернет-шлюз

Это шлюз для связи с вашим vpc. В приведенном ниже коде показано, как vpc_id прикреплен к sample_igw.

шаг 5

Создать таблицу маршрутов

Здесь мы подключаем нашу таблицу маршрутов к созданному vpc и подключаем его к интернет-шлюзу. Также приведенный ниже код показывает связь таблицы маршрутов с общедоступной подсетью, которую мы создали ранее. См. документацию здесь

шаг 6

Создать группу безопасности

Это помогает подключиться к экземпляру ec2. Если вы заметили в коде, есть правило «вход» и «выход». Вход разрешает входящий трафик, давайте рассмотрим его как входящее правило, а выход разрешает выход трафика, то есть исходящее правило.

От порта: к порту: указывает вход и выход всего трафика, как указано в 0. Кроме того, у нас есть протокол «-1», что означает, что разрешены все протоколы tcp, udp… и т. д. cidr_blocks может быть списком IP-адресов. В коде я добавил свой личный ip.

Имейте в виду, что здесь нам не нужен тег, потому что у группы безопасности уже есть атрибут имени.

шаг 7

Создайте свою пару ключей и экземпляр ec2

Процесс создания пары ключей очень важен, так как вы будете использовать этот ключ для подключения к вашему экземпляру ec2. Код ниже не раскрывает мой ключ, потому что я использовал файловую функцию terraform. См. здесь для получения дополнительной информации.

Кроме того, вы заметите файл «userdata.tpl» ниже. В этом файле есть весь мой скрипт конфигурации для загрузки моего экземпляра.

В вашем терминале сделайте;

ssh-keygen -t ed25519

Это создаст пару открытого и закрытого ключей, как показано выше. Затем в пути к файлу замените id_ed25519 на имя пары ключей›, в моем случае это samplekey.

почему ed25519? отметьте здесь, в качестве альтернативы, вы также можете ознакомиться со статьей Рисан Багджа здесь .

Примечание: это можно сделать напрямую, используя код terraform из документации здесь или. вы можете просто сделать это через терминал.

На приведенной ниже диаграмме показан список ключей, которые у меня есть в этом каталоге, мы сосредоточимся только на вновь созданных ключах «samplekey & samplekey.pub». Я использовал команду linux, которая помогает определить права доступа к этим файлам в этом каталоге.

do ;

chmod 400 samplekey

Это изменит разрешение вашего закрытого ключа только на чтение.

Теперь разверните свою инфраструктуру на aws из terraform:

# aws_vpc.sample_vpc will be created
  + resource "aws_vpc" "sample_vpc" {
      + arn                                  = (known after apply)
      + cidr_block                           = "10.111.0.0/16"
      + default_network_acl_id               = (known after apply)
      + default_route_table_id               = (known after apply)
      + default_security_group_id            = (known after apply)
      + dhcp_options_id                      = (known after apply)
      + enable_classiclink                   = (known after apply)
      + enable_classiclink_dns_support       = (known after apply)
      + enable_dns_hostnames                 = true
      + enable_dns_support                   = true
      + id                                   = (known after apply)
      + instance_tenancy                     = "default"
      + ipv6_association_id                  = (known after apply)
      + ipv6_cidr_block                      = (known after apply)
      + ipv6_cidr_block_network_border_group = (known after apply)
      + main_route_table_id                  = (known after apply)
      + owner_id                             = (known after apply)
      + tags                                 = {
          + "Name" = "sam-user-vpc"
        }
      + tags_all                             = {
          + "Name" = "sam-user-vpc"
        }
    }
Plan: 9 to add, 0 to change, 0 to destroy.

Перейдите в консоль и посмотрите, как работает ваш экземпляр.

Чтобы подключиться к вашему экземпляру ec2, вы можете выполнить шаги в консоли aws, нажав «подключиться», и вы попадете на эту страницу.

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

Счастливая Терра!!

См. мой github для необработанного кода. Спасибо