W czwartkowych warsztatach pokazałem Ci sporo przykładów na wykorzystanie Ansible. Nie było jednak czasu na bardziej rozbudowane techniki, więc dziś pokażę Ci jeden ze sposobów na optymalizację i poprawienie czytelności playbooków w Ansible.

Szkolenie z Bezpieczeństwa Serwerów Linux

Zanim jednak rozwinę temat dalej to jedna informacja na początek. Otworzyliśmy zapisy na pełny kurs na temat zabezpieczenia serwerów Linux.
Chcesz zacząć z bezpieczeństwem? To szkolenie jest dla Ciebie.

Tylko teraz:

- Mega promocja na Kurs -58%
- Maksymalnie, praktyczne podejście
- 9 Tygodni zajęć | Jasno wytłumaczona teoria + Praktyka na codziennych zadaniach administratora
-  Hardening, Audyt, Wdrażanie Poprawek, Automatyzacja, Firewall, SELinux i wiele innych 

Sprawdź szczegóły:

https://asdevops.pl/sec/

 

kurs bezpieczeństwa linux

 

 

 

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!). Czemu? Głównie dlatego, ze w przypadku gdyby pojawiła się aktualizacja zmieniająca fragmenty pliku konfiguracyjnego to ten skrypt mógłby przestać działać.

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. Szczegóły znajdziesz tu: https://docs.ansible.com/ansible/latest/modules/template_module.html

Bardzo ważny jest ten fragment:

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

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

Natomiast to:

 dest: /usr/superapka/

Pokazuje gdzie ma plik po edycji wylądować.

Nasz plik config.cfg.j2 wygląda 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 MEGAuproszczony plik konfiguracyjny maszyny wirtualnej wykorzystanej przez naszą aplikację. Zdaję sobie sprawę, ze 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 😉

Odpalamy playbook i zajrzyj na zdalną maszynę. Powinieneś znaleźć plik /usr/superapka/config.cfg.j2

Będzie wyglądach następująco:

 

Pamiętaj o szkoleniu:

Sprawdź szczegóły:

https://asdevops.pl/sec/

kurs bezpieczeństwa linux

 

 

Trwają zapisy na Kurs Bezpieczeństwa Serwerów Linux

X