Sobes.tech
Junior

Milyen tapasztalata van az Ansible-lel?

sobes.tech MI

Válasz az MI-től

Több mint három év aktív Ansible használat az alkalmazások és infrastruktúra telepítésének, konfigurációkezelésének és orkestrációjának automatizálására.

Fő alkalmazási területek:

  • Konfigurációkezelés: A szerverek és szolgáltatások egységes állapotának fenntartása.
  • Alkalmazás telepítés: A build, szállítás és telepítés folyamatának automatizálása.
  • Orkesztráció: Feladatok végrehajtási sorrendjének kezelése több szerveren.
  • Adminisztratív feladatok automatizálása: Biztonsági mentések, frissítések, monitorozás.

Különböző Ansible modulokkal dolgoztam, többek között:

  • apt, yum, dnf: Csomagkezelés.
  • service: Szolgáltatáskezelés.
  • copy, template: Fájlkezelés.
  • command, shell: Parancsok végrehajtása.
  • uri: API-val való interakció.
  • Docker, Kubernetes és felhőszolgáltatók (AWS, GCP) moduljai.

Titkos adatok kezelése az Ansible Vault segítségével.

Tapasztalat különböző összetettségű playbookok írásában és hibakeresésében, beleértve a szerepek, include/import, handlers, vars, facts, loops, feltételek használatát.

Az Ansible-t az alábbiakra alkalmaztam:

  • Web szerverek (Nginx, Apache) telepítése és konfigurálása.
  • Mikroszolgáltatások és monolit alkalmazások telepítése.
  • Adatbázisok (PostgreSQL, MySQL) kezelése.
  • Monitoring és naplózás konfigurálása.

Egyszerű Ansible szerep példája:

# roles/my_webapp/tasks/main.yml
- name: Függőségek telepítése
  apt:
    name: "{{ item }}"
    state: present
  loop:
    - python3
    - python3-pip

- name: Alkalmazás fájljainak másolása
  copy:
    src: files/app/
    dest: /opt/my_webapp/

- name: Python csomagok telepítése
  pip:
    requirements: /opt/my_webapp/requirements.txt

- name: systemd szolgáltatás konfigurálása
  template:
    src: templates/my_webapp.service.j2
    dest: /etc/systemd/system/my_webapp.service
  notify: my_webapp szolgáltatás újraindítása

# roles/my_webapp/handlers/main.yml
- name: my_webapp szolgáltatás újraindítása
  systemd:
    name: my_webapp
    state: restarted