optymalizacja ansible

Optymalizacja Ansible (Jinja Template)

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.

 

Zapis na newsletter!

Zanim jednak rozwinę temat dalej to jedna informacja na początek. Prowadzę regularny, cotygodniowy newsletter z poradami związanymi z Zabbixem, monitoringiem oraz dobrymi praktykami w IT. Jeżeli nie chcesz przegapić kolejnych części oraz zaproszeń na nasze darmowe szkolenia to zapraszam do zapisu. Wystarczy pobrać mój poradnik. Monitoring IT – Dobre Praktyki. Wystarczy wejść klikając na obrazek:

__________________________________________

 

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:

Chcesz więcej?

Oczywiście, jeżeli nie chcesz przegapić tego typu materiałów, to zapisz się na mój newsletter i przy okazji odbierz darmowe bonusy, np. e-booka ze zdjęcia poniżej! Prowadzę regularny, cotygodniowy newsletter z poradami związanymi z automatyzacją, monitoringiem oraz dobrymi praktykami w IT.

Zapisy TUTAJ

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.

Zapisz się na newsletter i zgarnij e-booka!

X