Ansible

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

Ansible виконує сценарій певної роботи на віддаленому сервері, працює через SSH. На віддалений системі потрібно поставити Python, на момент написання цих рядків з версією 3.x не працював, прийшлось інсталювати 2.7

Взагалі потрібно інсталювати наступне на віддаленому сервері

Модулі

Джерела

[1], [2], [3]

Інсталюємо пакет Ansible на сервер, з якого буде виконуватися централізоване керування

Файл хостів /etc/ansible/hosts

задається у форматі

Приклад

Файли конфігурацій в YAML форматі

/etc/ansible/group_vars/server – для групи хостів
/etc/ansible/group_vars/all – для кожного серверу(будь яка група)
/etc/ansible/host_vars – каталог з індивідуальними налаштуваннями для конкретного хосту
Наприклад для host1 створимо файл /etc/ansible/host_vars/host1 та вкажимо ssh login при підключені

 

Прості команди 

Перевірка можливості взаємодії з уміса хостами (виконується спроба підключитися по ssh)

аналогічно для конкретного хосту або групи

Для декілька хостів – розділяємо двокрапкою

Модуль shell виконує команду на віддаленому хості та повертає результат, наприклад

Приклад: копіювання файлу

Плейбук (playbooks) Ansible – це сценарії, за допомогою яких на віддалені сервери відправляються набори команд. Замість того щоб запускати кожну команду Ansible окремо, ви можете створити цілий комплекс команд і помістити його в плейбук.

Ключ apt – це посилання на модуль Ansible; вона працює приблизно як запуск команди ansible або такої команди:

Цей модуль дозволяє вказати пакет і стан, в якому потрібно його підтримувати (наприклад, installed).

Рядок update-cache = true оновлює кеш пакетів віддаленої машини (apt-get update) перед установкою нового пакета.

Елемент notify містить список, що складається з одного елемента – start nginx. Це не внутрішня команда Ansible, а посилання на оброблювач, який при виклику всередині завдання може виконувати певні функції. 

Розділ handlers знаходиться на тому ж рівні, що hosts і tasks. Обробники теж є свого роду завданнями, але вони можуть запускатися тільки всередині завдання на клієнтській машині.

Наприклад, в даному файлі є обробник, який запускає сервіс Nginx після установки пакета. Оброблювач не викликається, якщо завдання «Installs nginx web server» не вносить змін в систему (тобто якщо в системі вже встановлено такий веб-сервер).

Запуск плейбук Ansible

якщо вам потрібно відфільтрувати список хостів і запустити плейбук тільки на одному хості зі списку, додайте прапор, щоб вказати підмножину хостів у файлі: