Sobes.tech
Intern

Čo je Ansible?

sobes.tech AI

Odpoveď od AI

Ansible je otvorený, jednoduchý na používanie nástroj na automatizáciu IT infraštruktúry. Používa sa na konfiguráciu serverov, nasadzovanie aplikácií a orchestráciu úloh.

Kľúčové vlastnosti:

  • Agentless: Nevyžaduje inštaláciu agentov na spravovaných uzloch. Používa SSH (alebo WinRM pre Windows).
  • Idempotent: Operácie je možné opakovať viackrát bez zmeny konečného stavu, ak je už dosiahnutý.
  • Jednoduchosť: Používa YAML na písanie playbookov, čo ho robí čitateľným a zrozumiteľným.
  • Moduly: Prichádza s veľkým množstvom modulov na vykonávanie rôznych úloh (inštalácia balíkov, kopírovanie súborov, správa služieb a pod.).
  • Rozšíriteľnosť: Jednoduché vytváranie vlastných modulov a pluginov.

Hlavné komponenty:

  • Control Node: Server, z ktorého sa spúšťajú príkazy a playbooky Ansible. Zvyčajne je to Linux.
  • Managed Nodes: Servery alebo zariadenia, ktorými spravujete pomocou Ansible.
  • Inventory: Súbor, ktorý opisuje vaše spravované uzly (IP adresy, hostiteľské mená, skupiny).
    [webservers]
    web1.example.com
    web2.example.com
    
    [databases]
    db1.example.com
    
  • Moduly: Moduly sú skutočné jednotky kódu, ktoré vykonávajú špecifické úlohy na spravovaných uzloch.
    - name: Inštalovať Nginx
      ansible.builtin.apt:
        name: nginx
        state: present
    
  • Úlohy: Úloha je volanie modulu s určenými parametrami. Úlohy sa vykonávajú postupne.
  • Playbooks: Playbooky sú YAML súbory obsahujúce súbor úloh na dosiahnutie určitého cieľa. Opisujú želaný stav systému.
    ---
    - name: Konfigurácia produkčných web serverov
      hosts: webservers
      become: yes  # Vykonáva úlohy s právami sudo
      tasks:
        - name: Inštalovať najnovšiu verziu Apache
          ansible.builtin.yum:
            name: httpd
            state: latest
        - name: Uistiť sa, že Apache beží a je povolený pri štarte
          ansible.builtin.service:
            name: httpd
            state: started
            enabled: yes
    
  • Roly: Roly zhromažďujú úlohy, premenné a šablóny do opakovane použiteľných štruktúr.

Použitie:

  • Konfiguračná správa.
  • Nasadzovanie aplikácií.
  • Provisioning infraštruktúry (napríklad konfigurácia virtuálnych strojov po ich vytvorení).
  • Orchestration úloh (sekvenčné vykonávanie akcií na rôznych uzloch).
  • Automatizácia rutinných operácií.