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.

 

Sprawdź, czego nauczysz się dzięki kursowi Grafany!

Udostępniamy darmowo ponad godzinny materiał z kursu. Przekonaj się, że jest idealny dla Ciebie!

Chcesz wziąć udział w kursie? Kliknij w link i obejrzyj co Cię czeka: https://asdevops.pl/demo-grafana/

 

 

 

 

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:

 

 

 

Sprawdź, czego nauczysz się dzięki kursowi Grafany!

Udostępniamy darmowo ponad godzinny materiał z kursu. Przekonaj się, że jest idealny dla Ciebie!

Chcesz wziąć udział w kursie? Kliknij w link i obejrzyj co Cię czeka: https://asdevops.pl/demo-grafana/

 
 
 

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.

Lekcja demo kursu Grafany!

X