Як створити екземпляр EC2 за допомогою Ansible

AWS EC2 (Elastic Compute Cloud) — це один із найпотужніших сервісів для запуску та масштабування віртуальних серверів у хмарі, проте ручна робота з ним може займати чимало часу. Тут на допомогу приходить Ansible — інструмент, який дозволяє автоматизувати рутинні процеси, спрощуючи управління серверами та їх налаштування.

У цьому гайді ми покроково розглянемо, як створити екземпляр EC2  за допомогою Ansible, починаючи від підготовки середовища і закінчуючи запуском playbook.

Підготовка до роботи

Щоб розпочати роботу, необхідно переконатися, що на твоєму комп’ютері встановлені та налаштовані такі компоненти: 

  • Обліковий запис AWS з правами адміністратора, які дозволяють створення та запуск екземплярів EC2;
  • Доступ до AWS Access та Secret Key, для того, щоб авторизувати обліковий запис;
  • Встановлений Ansible.

Налаштування Ansible

Крок 1

Для того, щоб Ansible міг працювати з AWS, необхідно налаштувати файл з обліковими даними, який забезпечує автентифікацію та дозволяє Ansible виконувати запити до AWS API. 

Для цього створи або відредагуй файл ~/.aws/credentials і додай свої ключі доступу:

[default]

aws_access_key_id = YOUR_ACCESS_KEY

aws_secret_access_key = YOUR_SECRET_KEY

Переконайся, що ці ключі активні й пов’язані з обліковим записом, який має відповідні права доступу. Якщо ти працюєш із кількома профілями AWS, можеш створити окремі секції для кожного профілю. Наприклад:

[production]

aws_access_key_id = YOUR_PROD_ACCESS_KEY

aws_secret_access_key = YOUR_PROD_SECRET_KEY

[development]

aws_access_key_id = YOUR_DEV_ACCESS_KEY

aws_secret_access_key = YOUR_DEV_SECRET_KEY

Крок 2

Перш ніж перейти до створення робочої директорії, потрібно впевнитися, що всі необхідні залежності встановлені. 

Ansible взаємодіє з AWS через спеціальні модулі, для яких потрібна додаткова колекція amazon.aws та бібліотека Boto 3. 

Тож, щоб підготувати середовище:

  • Встанови колекцію AWS за допомогою команди, яка забезпечить доступ до модулів, необхідних для створення та управління EC2 інстансами:
    ansible-galaxy collection install amazon.aws
  • Встанови бібліотеку Boto3, яка є обов’язковою для роботи Ansible з AWS API:
    pip install --user boto3

Крок 3

Створення окремого середовища для проєкту. Організація робочої директорії допоможе тобі зберігати всі файли, необхідні для автоматизації, в одному місці, зменшуючи ризик плутанини в конфігураціях.

Для її створення скористайся командою:

mkdir ansible-ec2-instance

cd ansible-ec2-instance

Крок 4

Наступним кроком налаштуй іnventory — файл, який визначає, з якими хостами працюватиме Ansible. Перейди до директорії та створи файл hosts з наступним вмістом:

[local]

localhost 

Це дозволить Ansible використовувати локальний хост для виконання завдань.

Створення playbook

Playbook — це основний інструмент в Ansible, який дозволяє описувати дії для автоматизації управління інфраструктурою у зрозумілому та структурованому вигляді. Це такий собі «сценарій» у якому описуються всі завдання, які має виконати Ansible: від створення серверів до встановлення програм. 

У директорії створи файл  ec2-instance.yml і додай до нього наступний код:

- name: Launch EC2 Instance with Ansible

hosts: localhost

gather_facts: False

vars:

instance_type: t2.micro

key_name: your_key_pair

region: us-east-1

image_id: ami-0c55b159cbfafe1f0  # Це ідентифікатор Ubuntu 20.04 AMI для us-east-1, заміни його на відповідний твоєму регіону.

security_group: your_security_group

tasks:

– name: Launch a new EC2 instance

amazon.aws.ec2_instance:

key_name: "{{ key_name }}"

instance_type: "{{ instance_type }}"

image_id: "{{ image_id }}"

wait: yes

region: "{{ region }}"

vpc_subnet_id: subnet-12345678  # Заміни на ідентифікатор твоєї підмережі

group: "{{ security_group }}"

count: 1

assign_public_ip: yes

register: ec2

- name: Display the instance information

debug:

 msg: "EC2 instance {{ ec2.instances[0].id }} launched successfully in region {{ region }}"

Запуск playbook

Після завершення всіх налаштувань та коли playbook готовий, ти можеш запустити його за допомогою команди:

ansible-playbook ec2-instance.yml

Під час виконання команди Ansible автоматично відобразить усі детальні дані про створений екземпляр EC2. Якщо виникне потреба його перевірити — це можна зробити перейшовши до консолі керування AWS, і там здійснити такі кроки: 

  • Перейти на інформаційну панель EC2
  • У розділі «Instances» буде відображено чи запущено екземпляр.

І ось, ти успішно створив екземпляр EC2 за допомогою Ansible, автоматизувавши процес і зекономивши час.

Це ще один важливий крок у напрямку оптимізації твоєї роботи з хмарною інфраструктурою та професійного розвитку в DevOps.

Якщо хочеш поглибити свої знання і навчитися впевнено працювати з такими інструментами, як Ansible, запрошуємо тебе на другий семестр курсу «DevOps з нуля».

Залишити відповідь

Дякуємо, що поділились