Sobes.tech
Intern

Ansible nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Ansible açıq mənbəli, istifadə üçün asan olan IT infrastrukturunun avtomatlaşdırılması vasitəsidir. Serverlərin konfiqurasiyası, tətbiqlərin yerləşdirilməsi və tapşırıqların orkestrasiya üçün istifadə olunur.

Əsas xüsusiyyətlər:

  • Agentless: İdarə olunan düyünlərdə agentlərin quraşdırılmasını tələb etmir. SSH (və ya Windows üçün WinRM) istifadə edir.
  • İdempotent: Əməliyyatlar artıq əldə olunubsa, vəziyyəti dəyişmədən çoxsaylı dəfə təkrarlana bilər.
  • Sadəlik: YAML istifadə edərək playbooklar yazır, bu onları oxumaq və başa düşmək asan edir.
  • Modullar: Müxtəlif tapşırıqları yerinə yetirmək üçün çox sayda modul ilə birlikdə gəlir (paketlərin quraşdırılması, faylların kopyalanması, xidmətlərin idarə olunması və s.).
  • Genişləndirilə bilənlik: Öz modullarınızı və plaginlərinizi asanlıqla yarada bilərsiniz.

Əsas komponentlər:

  • Control Node: Ansible komandalarının və playbookların işlədildiyi server. Adətən Linux.
  • İdarə olunan düyünlər: Siz Ansible ilə idarə etdiyiniz serverlər və ya cihazlar.
  • İnventar: İdarə olunan düyünləri təsvir edən fayl (IP ünvanlar, host adları, qruplar).
    [webservers]
    web1.nümunə.com
    web2.nümunə.com
    
    [databases]
    db1.nümunə.com
    
  • Modullar: Bu, idarə olunan düyünlərdə xüsusi tapşırıqları yerinə yetirən kod vahidləridir.
    - name: Nginx quraşdır
      ansible.builtin.apt:
        name: nginx
        state: present
    
  • Tapşırıqlar: Parametrlərlə çağırılan modul çağırışıdır. Tapşırıqlar ardıcıllıqla yerinə yetirilir.
  • Playbooklar: Bu, müəyyən bir məqsədə çatmaq üçün tapşırıqlar toplusunu ehtiva edən YAML fayllarıdır. Sistem vəziyyətini təsvir edir.
    ---
    - name: İstehsal web serverlərini konfiqurasiya et
      hosts: webservers
      become: yes  # Sudo hüquqları ilə tapşırıqları yerinə yetirmək
      tasks:
        - name: Apache-nin ən son versiyasını quraşdır
          ansible.builtin.yum:
            name: httpd
            state: latest
        - name: Apache-nin işlədiyindən  açarlandığından əmin ol
          ansible.builtin.service:
            name: httpd
            state: started
            enabled: yes
    
  • Rollar: Rollar tapşırıqları, dəyişənləri və şablonları təkrar istifadə edilə bilən strukturlara toplayır.

Tətbiqlər:

  • Konfiqurasiya idarəçiliyi.
  • Tətbiqlərin yerləşdirilməsi.
  • İnfrastrukturun təminatı (məsələn, virtual maşınların yaradılmasından sonra konfiqurasiya edilər).
  • Tapşırıqların orkestrasiyası (fərqli düyünlərdə ardıcıl əməliyyatların yerinə yetirilməsi).
  • Rutinal əməliyyatların avtomatlaşdırılması.