Sobes.tech
Junior

Kui aktiivselt pidite kirjutama rolle ja playbooke Ansible jaoks konfiguratsiooniks?

sobes.tech AI

Vastus AI-lt

Väga aktiivne. Peamine ülesanne oli tagada serverite ühtne konfiguratsioon ja rakenduste automatiseeritud juurutamine.

Kasutati nii valmis rolle Ansible Galaxy'st kui ka oma, projektide vajadustele vastavalt välja töötatud rolle. Playbook'e kasutati ülesannete orkestreerimiseks, sõltuvuste haldamiseks rollide vahel ja täitmise järjekorra määramiseks.

Näited ülesannetest, mida lahendati Ansible'iga:

  • Veebiserverite (NGINX, Apache) paigaldamine ja konfiguratsioon:
  • Andmebaaside (PostgreSQL, MySQL) konfiguratsioon:
  • Mikroteenuste juurutamine:
  • Kasutajate ja gruppide haldamine:
  • Tulemüüride seadistamine:
  • Pakettide ja sõltuvuste haldamine:
  • Rakenduste kogumine ja levitamine:

Rollide ja playbook'ide kirjutamisel kasutati aktiivselt:

  • Jinja2 mallisüsteemi — dünaamiliste konfiguratsioonifailide loomine:
  • Handler'eid — tegevuste teostamine pärast konfiguratsiooni muutmist:
  • Variabels (group_vars, host_vars) — spetsiifiliste parameetrite haldamine:
  • Lookup plugin'eid — teabe saamine erinevatest allikatest:
  • Tingimusi — ülesannete täitmine sõltuvalt tingimustest:

Näide lihtsast rolli struktuurist:

// handlers/main.yml
---
# minu_rolli handlerid

// tasks/main.yml
---
# minu_rolli ülesanded
ез

Näide lihtsast playbook'ist:

// playbook.yml
---
- Nimi: Veebiserveri konfiguratsioon
  hostid: webservers
  become: jah # Ülesannete täitmine superkasutaja õigustes
  rollid:
    - my_web_server_role

Töötades versioonikontrollisüsteemidega, pull-request'ide ja koodide ülevaatusega Ansible'iga. Samuti kasutati rollide testimise tööriistu, näiteks Molecule:

Ansible komponent Kasutus
Rollid Koodi organiseerimine ja korduvkasutus
Playbook'id Ülesannete ja rollide orkestreerimine
Variabels Konfiguratsiooni deklaratiivne haldamine
Handler'id Muudatustele reageerimine
Jinja2 mallid Failide dünaamiline loomine