Sobes.tech
Intern

Kas ir Ansible?

sobes.tech AI

Atbilde no AI

Ansible ir atvērts, viegli lietojams rīks IT infrastruktūras automatizācijai. To izmanto serveru konfigurēšanai, lietojumprogrammu izvietošanai un uzdevumu orķestrācijai.

Galvenās īpašības:

  • Agentless: Nepieciešama aģentu instalācija pārvaldāmajos mezglos. Izmanto SSH (vai WinRM Windows).
  • Idempotent: Operācijas var atkārtot vairākas reizes bez galīgā stāvokļa maiņas, ja tas jau ir sasniegts.
  • Vienkāršība: Izmanto YAML, rakstot playbookus, kas padara to lasāmu un saprotamu.
  • Moduļi: Iekļauj daudz moduļu dažādu uzdevumu veikšanai (paku instalēšana, failu kopēšana, pakalpojumu pārvaldība utt.).
  • Paplašināmība: Ļoti viegli izveidot savus moduļus un spraudņus.

Galvenās sastāvdaļas:

  • Control Node: Serveris, no kura tiek palaisti Ansible komandas un playbooki. Parasti tas ir Linux.
  • Managed Nodes: Serveri vai ierīces, kuras jūs pārvaldāt ar Ansible.
  • Inventory: Fails, kas apraksta jūsu pārvaldāmos mezglus (IP adreses, hostnames, grupas).
    [webservers]
    web1.example.com
    web2.example.com
    
    [databases]
    db1.example.com
    
  • Moduļi: Modulis ir faktiskā koda vienība, kas veic specifiskus uzdevumus pārvaldāmajos mezglos.
    - nosaukums: Instalēt Nginx
      ansible.builtin.apt:
        name: nginx
        state: present
    
  • Uzdevumi: Uzdevums ir moduļa izsaukums ar noteiktiem parametriem. Uzdevumi tiek veikti secīgi.
  • Playbooks: YAML faili, kas satur uzdevumu kopu, lai sasniegtu noteiktu mērķi. Tie apraksta sistēmas vēlamo stāvokli.
    ---
    - nosaukums: Ražošanas web serveru konfigurēšana
      hosts: webservers
      become: yes  # Veikt uzdevumus ar sudo tiesībām
      tasks:
        - nosaukums: Instalēt jaunāko Apache versiju
          ansible.builtin.yum:
            name: httpd
            state: latest
        - nosaukums: Pārliecinieties, ka Apache darbojas un ir aktivizēts sāknēšanas laikā
          ansible.builtin.service:
            name: httpd
            state: started
            enabled: yes
    
  • Lomas: Lomas apkopo uzdevumus, mainīgos un šablonus atkārtoti izmantojamās struktūrās.

Pielietojums:

  • Konfigurācijas pārvaldība.
  • Lietojumprogrammu izvietošana.
  • Infrastruktūras provisioning (piemēram, virtuālo mašīnu konfigurēšana pēc to izveides).
  • Uzdevumu orķestrācija (secīgi izpildot darbības dažādos mezglos).
  • Rutīnas operāciju automatizācija.