Ви чули про Ansible, але ще не знаєте, що це таке? Не турбуйтесь, у найближчі кілька хвилин ви отримаєте чітке уявлення про цей інструмент.
Що собою являє Ansible?
Ansible – це DevOps інструмент з відкритим вихідним кодом, призначений для спрощення конфігурацій, розгортання та ініціалізації різних процесів в бізнесі. Його відмінною рисою є легкість впровадження та використання SSH для взаємодії між серверами. Основу автоматизації Ansible складають плейбуки, написані зрозумілою мовою YAML.
Ansible забезпечує стабільність, узгодженість і масштабованість вашої IT-інфраструктури. Він дозволяє автоматизувати налаштування баз даних, сховищ даних, мереж, міжмережевих екранів та гарантує, що всі необхідні пакети та програмне забезпечення встановлено на сервері для безперебійної роботи програми.
Наприклад, уявіть, що у вас є версія програми для налагодження, створена за допомогою Visual C++. Для її запуску на комп’ютері, вам знадобиться встановити необхідні бібліотеки DLL Microsoft Visual C++. Саме тут Ansible стає у нагоді, гарантуючи, що всі базові пакети та програмне забезпечення встановлені для безпроблемного запуску вашої програми в будь-якому середовищі, будь то тестування чи робоча платформа.
Крім того, Ansible зберігає історію змін вашої програми, що дозволяє легко повертатися до попередніх версій або оновлювати їх за потреби.
Розглянемо деякі ключові особливості Ansible:
* **Без агента:** Ansible не потребує встановлення додаткового програмного забезпечення чи агентів на вузлах, на відміну від таких рішень, як Puppet чи Chef.
* **Python:** Ansible базується на Python, що забезпечує його швидкість та надійність.
* **SSH:** Використовується безпечний та простий протокол автентифікації мережі без пароля. Вам лише потрібно скопіювати ключ на клієнтські машини.
* **Архітектура Push:** Необхідні конфігурації надсилаються безпосередньо клієнтам. Все, що вам потрібно – це створити плейбук з необхідними налаштуваннями та одночасно застосувати їх на вузлах, що дозволяє швидко поширювати зміни на тисячі серверів.
* **Простота налаштування:** Ansible вимагає мінімальних зусиль для установки та конфігурації.
Архітектура Ansible
Розпочнемо з публічної або приватної хмари, яка виступає в ролі сервера Linux, а також репозиторію для всіх налаштувань та конфігурацій IT.
Згідно з архітектурою, сервер Ansible підключається до безлічі хост-машин та передає їм плейбуки через SSH.
Система автоматизації Ansible дозволяє користувачам запускати плейбуки безпосередньо на хостах. Вона складається з декількох компонентів: інвентар хостів (список IP-адрес всіх хостів).
Далі йдуть модулі. Ansible має в своєму складі сотні вбудованих модулів, які є фрагментами коду, що виконуються під час запуску плейбуку. Плейбук містить п’єси, п’єса містить різні завдання, а завдання складаються з модулів.
Модулі виконуються на хостах при запуску плейбуку і містять в собі конкретну дію. Ви також можете створювати власні модулі, написавши кілька рядків коду, та використовувати їх будь-коли.
Плейбуки визначають робочий процес, оскільки завдання виконуються в тому ж порядку, в якому вони записані. Код YAML, що використовується в плейбуках, є простою мовою серіалізації даних, яка нагадує англійську.
Плагіни – це особливий вид модулів, що запускаються до виконання основних модулів на вузлах. Вони виконуються на головній керуючій машині для цілей реєстрації. Плагіни зворотного виклику дозволяють підключатися до різних подій для відображення та реєстрації. Плагіни кешу використовуються для зберігання кешованих даних, щоб уникнути дорогих операцій зі збору інформації. Ansible також має плагіни дій, які можуть виконувати завдання на контролері перед викликом самих модулів.
Плагіни підключення дозволяють підключатися до хост-машин не тільки через SSH. Наприклад, Ansible надає плагін для підключення до Docker-контейнерів, за допомогою якого можна налаштувати всі контейнери Docker.
Ось основні складові архітектури Ansible. Далі ми розглянемо, як саме він працює.
Принцип роботи Ansible
Ansible підключається до вузлів та відправляє невеликі програми, звані модулями Ansible. Ці модулі виконуються через SSH, а потім видаляються після завершення.
Керуючий вузол Ansible контролює виконання плейбуків. Саме з цього вузла запускається інсталяція. Файл інвентаризації містить список хостів, на яких будуть виконуватися модулі. Керуючий вузол створює SSH-з’єднання, виконує модулі на хост-машинах та встановлює потрібний продукт. Після встановлення модулі видаляються. Ось так працює Ansible.
Далі вас може зацікавити інформація про встановлення та налаштування Ansible.
Підсумок
Сподіваюсь, що тепер ви отримали базове розуміння Ansible, щоб почати його вивчати. Ansible – це потужний інструмент для управління інфраструктурою. Якщо ви системний адміністратор або розробник, можливо, вам буде корисно пройти практичне навчання, щоб покращити свої навички.