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.

 

Zapraszamy na darmowe szkolenie "Grafana dla początkujących".

Widzimy się 17 października o 13:00! . Zapisz się: https://asdevops.pl/s43/

 

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:

 

Trwa przedsprzedaż kursu "Homelab - Wejdź do IT"!

To jedyne takie szkolenie! Pierwsze na polskim rynku praktyczne szkolenie, dzięki któremu zdobędziesz wiedzę i praktykę w tworzeniu własnego homelaba! Pierwszy moduł wystartuje już 14 listopada!

Chcesz wziąć udział w szkoleniu? Zapisy na stronie: https://asdevops.pl/homelab/

 

 

 

 

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.

Bezpłatne szkolenie "Grafana dla Początkujących"! Widzimy się 17 października o 13:00!

X