Na czwartkowych warsztatach pokazałem Ci sporo przykładów na wykorzystanie narzędzia Ansible. Nie było jednak czasu na pokazanie bardziej rozbudowanych technik, które można zrobić w tym programie. Dlatego też więc dziś mam zamiar pokazać Ci jeden ze sposobów na to, jak optymalizacja Ansible może poprawić czytelność playbooków w tym programie. Przeprowadzę Cię przez cały proces krok po kroku, więc nie musisz się martwić, że jakiś etap zostanie pominięty.

Klaster HA (Proxmox + Ceph)

Zanim jednak przejdę do konkretów, to mam zapraszam Ciebie do wzięcia udziału w jednodniowym szkoleniu z obsługi klastra HA z certyfikatem do CV.  I to wszystko za niespotykanie, przystępną cenę.

Główne zagadnienia kursu:

- podstawy działania klastrów i HA
- uruchomienie klastera High Availability w Proxmox
- działanie CEPH (monitor, OSD, Pool)
- konfiguracja klastra z użyciem Ceph w Promox
- obsługa na systemie Debian
- migracja serwerów wirtualnych w obrębie klastra
- LIVE migration (zachowanie ciągłości działania)
- Zaawansowana obsługa
- Rozwiązywanie problemów
- Kopie bezpieczeństwa

Zapraszam:
https://asdevops.pl/ha/

__________________________________________

Optymalizacja Ansible krok po kroku

Na początku musisz wiedzieć, że playbooki z hierarchiczną strukturą zadań i z wykorzystaniem lineinfile nie są idealne. Przykładowo, zamiast używać podmiany tekstu w pliku można by użyć szablony Jinja (nie mylić z Ninja!). Dlaczego tak? Głównie dlatego, że w przypadku gdyby pojawiła się aktualizacja zmieniająca fragmenty pliku konfiguracyjnego, to ten skrypt mógłby przestać działać. A przecież chodzi nam o to, by działało!

Zróbmy nowy playbook:

---
  -  hosts: agentz

     vars:
       aplikacja: "SuperERP"
       serweryDB: 3
       DB_Engine: "Oracle"
       CPU: '4 vCPU'
       Memory: "4096 mb"
       Dysk: "2 TB"
     tasks:
     - name: Konfiguracja pliku
       template:
         src: /root/agentz/ config.cfg.j2
         dest: /usr/superapka/

To, co tu użyliśmy to moduł Ansible zwany „template”. Jest to potężne narzędzie. Wszystkie szczegóły związane z tym tematem znajdziesz pod tym adresem: https://docs.ansible.com/ansible/latest/modules/template_module.html

Bardzo ważny jest ten fragment:

src: /root/agentz/ config.cfg.j2

ponieważ pokazuje on ścieżkę do pliku, który będziemy edytować.

Natomiast to:

 dest: /usr/superapka/

pokazuje w którym miejscu ma plik wylądować po edycji.

Nasz plik config.cfg.j2 wygląda teraz następująco:

## To jest plik konfiuracyjny maszyny wirtualnej.
Typ = {{ aplikacja }}
Bazy Danych  = {{ serweryDB }}
Typ Bazy = {{ DB_Engine }}
Processor = {{ CPU }}
Available Memory = {{ Memory }}
Przestrzeń Dyskowa = {{ Dysk }}
IP Serwer = {{ Adres_IP }}
Enable = Yes

Jest to MEGA uproszczony plik konfiguracyjny maszyny wirtualnej wykorzystanej przez naszą aplikację. Zdaję sobie sprawę, że nie jest on najpiękniejszy, jednak w tym wypadku zależy mi, by był dla Ciebie jak najbardziej zrozumiały. A nie chcę bawić się w przykłady w stylu grupowanie postaci z Disneya, jak to ma w zwyczaju robić większość trenerów od Ansible 😉.

Odpal playbook, a następnie zajrzyj na zdalną maszynę. Powinieneś znaleźć plik /usr/superapka/config.cfg.j2

Będzie to wyglądać następująco:

Klaster HA (Proxmox + Ceph)

I na koniec przypominam raz jeszcze o szkoleniu. Szczegóły znajdziesz w linku poniżej!
https://asdevops.pl/ha/

__________________________________________

Mam nadzieję, że przygotowany przeze mnie powyższy poradnik na optymalizację Ansible jest dla Ciebie przydatny. Jeśli masz jeszcze jakiekolwiek wątpliwości czy pytania, to możesz do mnie napisać na maila lub zostawić komentarz pod tym wpisem.

Poradnik "Dobre Praktyki Zabbix"

X