Як створити екземпляр 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 з нуля».