Sobes.tech
Junior

Koliko ste aktivno morali da pišete uloge i playbook-ove u Ansible za konfiguraciju?

sobes.tech АИ

Одговор од АИ

Доста активно. Основни задатак био је обезбеђивање униформне конфигурације сервера и аутоматизација распоређивања апликација.

Користили су се како готови улози из Ansible Galaxy, тако и сопствени, развијени посебно за потребе пројеката. Плејбукови су коришћени за оркестрацију задатака, управљање зависностима између улога и дефинисање редоследа извршавања.

Примери задатака решених помоћу Ansible:

  • Инсталација и конфигурација веб сервера (NGINX, Apache).
  • Конфигурација база података (PostgreSQL, MySQL).
  • Распоређивање микросервиса.
  • Управљање корисницима и групама.
  • Конфигурација фаерволова.
  • Управљање пакетима и зависностима.
  • Израда и дистрибуција апликација.

При писању улога и плејбукова активно су се користили:

  • Јinja2 систем шаблона за динамичко генерисање конфигурационих фајлова.
  • Handlers за извршавање акција након промене конфигурације.
  • Променљиве (group_vars, host_vars) за управљање специфичним параметрима.
  • Lookup плугини за добијање информација из различитих извора.
  • Услови за извршавање задатака у зависности од услова.

Пример структуре једноставне улоге:

// handlers/main.yml
---
# handler фајл за my_role

// tasks/main.yml
---
# задатак фајл за my_role

Пример једноставног плејбука:

// playbook.yml
---
- назив: Конфигурисање веб сервера
  hosts: webservers
  become: да # извршавање задатака са привилегијама суперкорисника
  улоге:
    - my_web_server_role

Радило се у сарадњи са системима за контролу верзија, pull request-има и прегледима кода у Ansible-у. Такође су се користили алати за тестирање улога, као што је Molecule.

Компонента Ansible Коришћење
Улоге Организација и поновна употреба кода
Playbook-и Оркестрација задатака и улога
Променљиве Декларативно управљање конфигурацијом
Handlers Реакција на промене
Jinja2 шаблони Динамичка генерација фајлова