Sobes.tech
Junior

Ansible ilə iş təcrübəniz nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Üç ildən çox aktiv istifadə ilə Ansible ilə tətbiqlərin və infrastrukturanın yerləşdirilməsi, konfiqurasiya idarəçiliyi və orkestrasiya üçün avtomatlaşdırma.

Əsas tətbiq sahələri:

  • Konfiqurasiya idarəçiliyi: Serverlərin və xidmətlərin vahid vəziyyətini qorumaq.
  • Tətbiqlərin yerləşdirilməsi: Yığma, çatdırma və quraşdırma proseslərinin avtomatlaşdırılması.
  • Orkestrasiya: Bir çox serverdə tapşırıqların icra ardıcıllığını idarə etmək.
  • İnzibati tapşırıqların avtomatlaşdırılması: Yedəkləmə, yeniləmələr, monitorinq.

Mən Ansible modulları ilə işlədim, bunlar arasında:

  • apt, yum, dnf: Paket idarəetməsi.
  • service: Xidmətlərin idarə olunması.
  • copy, template: Faylların idarə olunması.
  • command, shell: Komandaların icrası.
  • uri: API ilə qarşılıqlı əlaqə.
  • Docker, Kubernetes və bulud provayderləri (AWS, GCP) ilə işləmək modulları.

Gizli məlumatların idarə olunması üçün Ansible Vault istifadə edirəm.

Fərqli mürəkkəblikdə playbookların yazılması və debug edilməsi təcrübəm var, bunlar arasında rollar, include/import, handlers, vars, facts, loops, şərtlər.

Ansible-i aşağıdakı məqsədlər üçün tətbiq etdim:

  • Veb serverlərin (Nginx, Apache) qurulması və konfiqurasiyası.
  • Mikrosxemalar və monolitlərin yerləşdirilməsi.
  • Verilənlər bazalarının idarə olunması (PostgreSQL, MySQL).
  • Monitorinq və loglama konfiqurasiyası.

Sadə Ansible rolu nümunəsi:

# roles/my_webapp/tasks/main.yml
- name: Asılılıqları quraşdır
  apt:
    name: "{{ item }}"
    state: present
  loop:
    - python3
    - python3-pip

- name: Tətbiq fayllarını kopyala
  copy:
    src: files/app/
    dest: /opt/my_webapp/

- name: Python paketlərini quraşdır
  pip:
    requirements: /opt/my_webapp/requirements.txt

- name: systemd xidməti konfiqurasiya et
  template:
    src: templates/my_webapp.service.j2
    dest: /etc/systemd/system/my_webapp.service
  notify: my_webapp xidməti yenidən başlat

# roles/my_webapp/handlers/main.yml
- name: my_webapp xidməti yenidən başlat
  systemd:
    name: my_webapp
    state: restarted