Встановлення
Ansible - це потужний інструмент для автоматизації конфігурацій та управління інфраструктурою. Він дозволяє швидко та ефективно налаштовувати сервери, розгортати програмне забезпечення та здійснювати інші адміністративні завдання.
Для встановлення Ansible вам необхідно мати встановлену операційну систему на основі Linux (наприклад, Ubuntu) або MacOS. Також можливо встановити Ansible на Windows через WSL (Windows Subsystem for Linux).
Встановлення
- Встановіть Ansible через офіційний репозиторій:
sudo apt update sudo apt install ansible - Перевірте версію Ansible, щоб упевнитися в правильності встановлення:
ansible --version
Архітектура

Ansible використовує просту архітектуру без додаткових агентів чи серверів. Основні компоненти Ansible:
- Control Node: Комп'ютер, на якому встановлено Ansible і з якого виконуються всі керуючі команди.
- Managed Nodes: Сервери або пристрої, якими управляє Ansible.
- Inventory: Файл, який містить список всіх Managed Nodes.
- Playbook: YAML файл, який визначає набір завдань для виконання на Managed Nodes.
Демонстраційний проект
Створення першого Inventory файлу
Inventory файл визначає ваші Managed Nodes. За замовчуванням, Ansible шукає файл hosts в директорії /etc/ansible. Для нашого прикладу, ми створимо власний Inventory файл.
Створіть новий файл
hosts.ini:nano hosts.iniДодайте до нього наступні рядки з інформацією про ваш сервер:
[webservers] server1 ansible_host=34.44.108.94 ansible_user=devops ansible_ssh_private_key_file=../terraform/id_rsa
Виконання базових команд
Після налаштування Inventory файлу можна почати виконання команд на ваших Managed Nodes. Для початку переконаємось, що Ansible може підключитися до наших серверів.
- Виконайте команду
pingдля перевірки підключення до Hosted Nodes:gitpod /workspace/deployment/ansible (main) $ ansible all -i hosts.ini -m ping server1 | SUCCESS => { "ansible_facts": { "discovered_interpreter_python": "/usr/bin/python3" }, "changed": false, "ping": "pong" }
Ця команда виконує модуль ping на всіх серверах, зазначених у hosts.ini.
Створення простого Playbook
Playbook – це YAML файл, який визначає набір завдань для виконання на ваших серверах.
Створіть новий файл
site.yml:nano site.ymlДодайте до нього наступні рядки:
- name: Установити та налаштувати NGINX # Назва Playbook hosts: webservers # Група серверів, на яких будуть виконуватися завдання tasks: # Список завдань - name: Встановити NGINX # Назва завдання apt: # Модуль apt для керування пакетами name: nginx # Назва пакету state: present # Стан пакету (присутній) become: true # Виконати завдання з привілеями (sudo) - name: Запустити та активувати NGINX # Назва завдання systemd: # Модуль systemd для керування службами name: nginx # Назва служби state: started # Стан служби (запущена) enabled: true # Служба включена при старті системи become: true # Виконати завдання з привілеями (sudo)Цей Playbook встановлює та запускає NGINX на серверах з групи
webservers.
Виконайте цей Playbook:
gitpod /workspace/deployment/ansible (main) $ ansible-playbook -i hosts.ini site.yml
PLAY [Установити та налаштувати NGINX] *********************************************************************************************************************************************************************************************************************************************************************
TASK [Gathering Facts] *************************************************************************************************************************************************************************************************************************************************************************************
ok: [server1]
TASK [Встановити NGINX] ************************************************************************************************************************************************************************************************************************************************************************************
changed: [server1]
TASK [Запустити та активувати NGINX] ***********************************************************************************************************************************************************************************************************************************************************************
ok: [server1]
PLAY RECAP *************************************************************************************************************************************************************************************************************************************************************************************************
server1 : ok=3 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
Ця команда використовує файл hosts.ini для визначення цільових серверів та виконує Playbook, встановлюючи та налаштовуючи NGINX на серверах зазначених в групі webservers.
Висновок
У цьому розділі ми вивчили основи встановлення та використання Ansible для автоматизації конфігурацій та управління інфраструктурою. Ми дізналися, як встановити Ansible на операційні системи Linux, MacOS та Windows. Також ми ознайомилися з основними концепціями Ansible, такими як Control Node, Managed Nodes, Inventory та Playbook.
Завдяки Ansible ми можемо швидко та ефективно налаштовувати сервери, розгортати програмне забезпечення та здійснювати інші адміністративні завдання. Використовуючи Inventory та Playbook, ми можемо автоматизувати виконання різних завдань на кількох серверах одночасно.
Цей розділ надав нам необхідні знання та навички для подальшого розширення нашої автоматизаційної інфраструктури та підвищення ефективності нашої роботи.