Дізнайтеся про програму “Ansible Playbook” для автоматизації завдань

Дізнайтеся про програму Ansible Playbook для автоматизації завдань.


Раніше ми обговорювали вступ у відповідь, посібник із встановлення, а далі поговоримо про Playbook та її складові.

Що таке відповідальна книга?

У програмі “Книга” є мовою автоматичної відповіді. Це простий файл з набором інструкцій. Саме в ігрових книгах ми визначаємо, що хочемо робити Ansible. У Playbooks містяться відтворення, які виконують завдання, і ці завдання виконують модулі. Їх завдання виконують послідовно.

Наприклад, це може бути таким же простим, як виконання послідовності команд на різних серверах у послідовності та перезапуск цих серверів у порядку. Або це може бути настільки ж складно, як розгортання та надання сотень VM в публічній та приватній хмарі, включаючи їх балансування навантаження, моніторинг, налаштування мережі.

Мова Playbook

Playbooks – це прості файли, записані в коді YAML.

ЯМЛ є мовою серіалізації даних. Він людський і машиночитабельний. Для написання кодів YAML вам не потрібні спеціальні навички кодування. Ви можете розглядати мову серіалізації даних як перекладач для руйнування всієї вашої структури даних та їх серіалізації в порядку, який можна буде знову реконструювати для подальшого використання. Ви можете використовувати цю реконструйовану структуру даних в тому ж середовищі або навіть в іншому середовищі.

Нижче наведено зразок файлу YAML для встановлення mysql:


– ім’я: Встановити MySQL
господарі: geekflare-mysql-сервіс
завдання:
– ім’я: Встановити MySQL
дія: $ ansible_pkg_mgr pkg = mysql-server state = встановлено
– ім’я: Додати DB Python MySQL DB
дія: $ ansible_pkg_mgr pkg = python-mysqldb state = встановлено

Основи відповідної ігрової книги

Ця частина статті охоплює основні поняття Ansible, щоб зрозуміти більше про Ansible Playbook.

Хости та користувачі

Автомати, які відповідають на потреби, мають цільові машини в інфраструктурі, на якій грати потрібно розгорнути з ігрової книги Ansible. Хости додаються до інвентаризації Ansible через їх IP-адреси. Хости – це список однієї або декількох груп або шаблонів хостів, розділених двокрапкою. Remote_user містить ім’я облікового запису користувача.


– господарі: ProdServers
remote_user: geekflare

Змінні

Змінні дозволяють змінити спосіб роботи ігрової книги. Вони можуть використовуватися майже скрізь у програмі для запису і можуть бути успадковані з інвентарю, явно встановленого під час виконання, виявленого на початку запуску програми. Ви можете визначити ім’я змінної за допомогою букв, цифр та підкреслень, але вона повинна починатися лише з літери.

Наприклад, port_01 – допустима змінна, тоді як 01_post – недійсна змінна. Ось приклад змінних у програмі Ansible Playbook:

вар:
http_port: 80
max_clients: 200

Запаси

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

Ви також можете вказати змінну як частину списку інвентаризації. Запаси – це в кінцевому рахунку перелік речей, які ви хочете автоматизувати.

[веб-сервери]
192.168.20.1
192.168.20.2
192.168.20.4
[dbservers]
172.17.1.56
172.17.1.57

Завдання

Відтворює завдання з виконуваною програмою “Аннильоз”. Завдання відповідає за запуск відповідальних модулів. Одночасно може виконуватися лише одне завдання, і завдання виконуються у послідовному порядку. Їх завдання написані YAML, що в значній мірі відповідає англійській мові.

Наприклад: встановити ім’я пакета, оновити ім’я програмного забезпечення тощо. Нижче наводиться приклад завдання завдання в програмі Ansible playbook встановити httpd:

завдання:
– назва: Встановити httpd-пакет
yum: name = httpd state = останнє

Обробники

Обробники – це особливий вид завдань.

Вони можуть бути спровоковані завданням і виконуватись один раз в кінці гри. Він використовується для надсилання сповіщень, якщо у файлі конфігурації є якісь зміни, наприклад, служба сповіщення, щоб запустити apache, як тільки він буде встановлений. Синтаксис “сповіщення” використовується для обробників викликів. Нижче наведено приклад обробника для перезапуску apache:


– господарі: усі
завдання:
– ім’я: переконайтеся, що apache є в останній версії
yum: name = httpd state = останнє
повідомляти:
– перезапустити апаш
– ім’я: переконайтеся, що apache працює (і ввімкніть його під час завантаження)
послуга: ім’я = httpd стан = запускається увімкнено = так
обробники:
– ім’я: перезапустити апаш
послуга: ім’я = httpd стан = перезапущено

Створіть та запустіть свою першу книжку з відповідями

Дозвольте розповісти, як написати ігрову книжку. Кожна книжка починається з трьох тире (-) вгорі.

Перше, що ви згадуєте в програмі Ansible Playbook – це хост-машини, на яких ви хочете запустити програму.

Тоді ви можете згадати змінні, збираючи факти; тоді ви можете згадати різні завдання, які ви хочете виконати. Тепер пам’ятайте, що завдання виконується в тому ж порядку, що ви їх пишете. Наприклад, ви хочете встановити програмне забезпечення А, а потім програмне забезпечення B, переконайтеся, що першим завданням, записаним у програмі, буде встановлення програмного забезпечення A, а наступне завдання могло б встановити програмне забезпечення B.

Тоді у вас є обробники внизу. Обробники також є завданнями, але різниця полягає у виконанні обробників, які потребують певних тригерів у списку завдань для запуску обробників..

Дозвольте мені показати вам, як створити ansible playbook для встановлення та запуску nginx на хості та запуску його.

Створіть .yml-файл, куди ви будете поміщати свої YAML-коди для створення ансиблевої ігрової книги.

gedit nginx.yml

Помістіть наведений нижче код YAML в цей файл і збережіть файл.


– господарі: Клієнт
судо: так
вар:
– сервер_порту: 8080

завдання:
– ім’я: Встановлює веб-сервер nginx
apt: pkg = nginx state = встановлено update_cache = true
повідомляти:
– запустити nginx

обробники:
– ім’я: start nginx
послуга: name = nginx state = розпочато

Вищевказаний файл YAML починається з хостів, я хочу запустити цю програму на комп’ютері клієнта (Клієнта). IP-адреса клієнта вже збережена у файлі / etc / ansible / hosts.

Наступний рядок дозволяє виконувати завдання з привілеями sudo.

Тоді я визначив server_port як змінну в цій програмі.

Тоді приходить моє перше завдання в цій відповідальній програмі для встановлення веб-сервера Nginx. У цьому завданні також є параметр сповіщення, що означає після цього завдання обробник з запуском.

Нарешті, я написав обробник для запуску nginx на клієнтській машині.

Тепер, коли вам зрозуміло, з кодами YAML у програмі ansible playbook запустимо її. Нижче наводиться синтаксис для запуску ангіблевої книги:

ansible-playbook file_name.yml

Тепер я запускатиму аннуігральну книжку, яку я створюю для встановлення та запуску nginx.

[захищено електронною поштою]: / home / geekflare # ansible-playbook nginx.yml

ГРАТИ [Клієнт] ************************************************ ********************

ЗАВДАННЯ [Збір фактів] *********************************************** ************
добре: [вузол1]

ЗАВДАННЯ [Встановлює веб-сервер nginx] ********************************************* ****

змінено: [вузол1]

РУЧНИЙ РУЧНИК [start nginx] ********************************************** ******
добре: [вузол1]

ІГРУЙТЕ РЕКАП ************************************************** *********************
node1: ok = 3 змінено = 1 недоступний = 0 не вдалося = 0 пропустив = 0 врятовано = 0 проігнорував = 0

Виконайте команду нижче, щоб перевірити, чи сервер nginx встановлений і запущений правильно програмою ansible playbook.

[захищено електронною поштою]: / home / geekflare # ps waux | grep nginx
корінь 3021 0,0 0,0 77676 1516? Ss 15:27 0:00 nginx: головний процес / usr / sbin / nginx -g демон на; master_process увімкнено;

Висновок

Мова йшла про ігрову книжку Ansible. Я сподіваюся, що ця стаття допомогла вам дізнатися, як можна створити та запустити програму “Ansible playbook”. Перевірте це Курс, якщо ви хочете вивчити розширені теми в Ansible, включаючи ролі, Jinja2, пошук, фільтр, спеціальні модулі.

МЕТИ:

  • Відповідальний

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map