Создание экземпляров EC2 вручную может занять много времени. К счастью, Ansible предоставляет эффективный и автоматизированный способ создания экземпляров EC2. В этой статье мы рассмотрим пошаговый процесс создания экземпляра EC2 и S3 Bucket с помощью Ansible Playbooks.

С чего начать:

Шаг 1. Войдите в консоль AWS https://aws.amazon.com/console/

Шаг 2. Запустите машину с Ubuntu.

Шаг 3. Создайте пользователя IAM и присвойте ему права администратора.

Шаг 4. Подключитесь к машине Ubuntu в консоли AWS.

Шаг 5. Обновите пакеты по умолчанию для машины Ubuntu. Для этого запустите команду c подходящими для вас параметрами.

sudo apt update

Шаг 6. Установите Ansible на машину с Ubuntu, следуя приведенной ниже команде:

sudo apt install ansible

Шаг 7. Установите модули Ansible Galaxy, следуя команде: 

ansible-galaxy collection amazon.aws

Шаг 8. Установите пакеты python и boto, следуя приведенной ниже команде.

sudo apt install python3-pip
pip install --user boto3

Шаг 9. Настройте учетные данные AWS, следуя команде: 

aws configure

Шаг 10. Создайте файл Ec2instance-S3bucket.yml.

Параметры

- name: Create EC2 instance

hosts: localhost

gather_facts: yes

tasks:

- name: Create EC2 instance

community.aws.ec2_instance:

name: my-instance

instance_type: t2.micro

image_id: ami-0f5ee92e2d63afc18

key_name: test

security_groups: default

- name: Create S3 bucket

amazon.aws.s3_bucket:

name: my-bucket87653890-name

state: present

Содержимое плейбука

Теперь давайте пройдемся по содержимому этого плейбука:

hosts: localhost указывает на то, что плейбук будет запускаться локально на управляющей машине

gather_facts: указывает на то, будет или не будет Ansible собирать факты о хосте.

EC2_Instance — это основная задача для создания экземпляра EC2. Мы указываем имя ключа, тип экземпляра, AMI-идентификатор, регион, группу безопасности и количество. Параметр ожидания указывает, что Ansible будет ждать создания экземпляра, прежде чем продолжить.

Replace: Заменить t2.micro на желаемый тип экземпляра, ami-123456890 на желаемый Amazon Machine Image (AMI), ap-south-1 на желаемый регион, key-name на имя вашей пары ключей SSH, my-security-group с именем вашей группы безопасности, а my-instance на желаемое имя экземпляра.

Шаг 11. Запустите ansible playbook, следуя приведенной ниже команде.

ansible-playbook Ec2instance-S3bucket.yml

Проверяем

Шаг 1. Проверьте, создан ли экземпляр Ec2?

Шаг 2. Проверьте, создан ли S3 Bucket или нет?

Вот и все! Вы успешно создали экземпляр EC2 и S3 Bucket с помощью Ansible Playbook.


Если вы хотите научиться самостоятельно писать плейбуки в Ansible, использовать роли и модули, приходите на курс «Ansible: Infrastructure as Code». Новый поток стартует 21 августа. Посмотреть программу и записаться на курс можно на нашем сайте. Ждём на курсе!

Комментарии (5)


  1. D1abloRUS
    27.07.2023 15:34
    +6

    Мне нужно уточнить, сейчас точно 2023?


    1. maksim3201
      27.07.2023 15:34

      Самое время, чтобы прорекламировать свою shitastrucrure as code.


  1. smarthomeblog
    27.07.2023 15:34
    +3

    ИМХО пример так себе. Да и Терраформ для этих целей более подходящий вариант. А вот как поставить необходимый софт на виндовую EC2, к примеру, было бы намного интереснее.


  1. Magister-Ice
    27.07.2023 15:34

    Чем указанный инструмент лучше внутренних инструментов AWS (например Auto Scaling Group)?


  1. trabl
    27.07.2023 15:34
    +2

    Думаю что применение Ansible необходимо показывать на примере развёртывания не только серверов, но и их настройки минимальной хотя бы, установки условного nginx, ну и не на одном хосте естественно. Иначе новичку не совсем понятно зачем ему Ansible, когда он быстрее мышкой в веб интерфейсе AWS всё сделает.