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.

 

Zapisz się na 5-dniowe warsztaty z Dockerem!

Chcesz zacząć przygodę z Dockerem i konteneryzacją, ale nie wiesz od czego zacząć? Zapisz się już teraz na darmowe 5-dniowe warsztaty, a codziennie przez 5 dni będziesz otrzymywać nowe wideo.

W ciągu najbliższych 5 dni otrzymasz:

  • Wyjaśnienie czym jest Docker i konteneryzacja
  • Instalacja i uruchomienie Dockera
  • Podstawy działania Dockera
  • Sieci i Volumeny
  • Praktyczny przykład wdrożenia bazy opartej o Dockera

https://asdevops.pl/docker-wyzwanie

__________________________________________

 

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?

A na sam koniec przypominam o darmowych 5-dniowych warsztatach z Dockera.

Wszelkie szczegóły znajdziesz 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.

5-dniowe warsztaty z Dockerem

X