From dfb7279a8c73ac847741615b4fa3c9a2c043d0d9 Mon Sep 17 00:00:00 2001 From: jonnybravo Date: Mon, 14 Sep 2026 11:36:01 +0200 Subject: [PATCH] first --- Beispiel/README.md | 86 ++ Beispiel/ansible.cfg | 12 + Beispiel/group_vars/all.yml | 6 + Beispiel/host_vars/localhost.yml | 5 + Beispiel/inventory.yml | 8 + Beispiel/roles/webserver/defaults/main.yml | 12 + Beispiel/roles/webserver/handlers/main.yml | 9 + Beispiel/roles/webserver/meta/main.yml | 13 + Beispiel/roles/webserver/tasks/main.yml | 39 + .../roles/webserver/templates/index.html.j2 | 20 + .../roles/webserver/templates/nginx.conf.j2 | 21 + Beispiel/roles/webserver/vars/main.yml | 6 + Beispiel/site.yml | 13 + ansible_praesentation.pptx | Bin 0 -> 176733 bytes assets/ansible_logo.svg | 14 + assets/ansible_mark_red.png | Bin 0 -> 28210 bytes assets/ansible_mark_white.png | Bin 0 -> 17514 bytes assets/architektur.png | Bin 0 -> 66983 bytes create_presentation.py | 969 ++++++++++++++++++ handout.docx | Bin 0 -> 14433 bytes handout.md | 231 +++++ 21 files changed, 1464 insertions(+) create mode 100644 Beispiel/README.md create mode 100644 Beispiel/ansible.cfg create mode 100644 Beispiel/group_vars/all.yml create mode 100644 Beispiel/host_vars/localhost.yml create mode 100644 Beispiel/inventory.yml create mode 100644 Beispiel/roles/webserver/defaults/main.yml create mode 100644 Beispiel/roles/webserver/handlers/main.yml create mode 100644 Beispiel/roles/webserver/meta/main.yml create mode 100644 Beispiel/roles/webserver/tasks/main.yml create mode 100644 Beispiel/roles/webserver/templates/index.html.j2 create mode 100644 Beispiel/roles/webserver/templates/nginx.conf.j2 create mode 100644 Beispiel/roles/webserver/vars/main.yml create mode 100644 Beispiel/site.yml create mode 100644 ansible_praesentation.pptx create mode 100644 assets/ansible_logo.svg create mode 100644 assets/ansible_mark_red.png create mode 100644 assets/ansible_mark_white.png create mode 100644 assets/architektur.png create mode 100644 create_presentation.py create mode 100644 handout.docx create mode 100644 handout.md diff --git a/Beispiel/README.md b/Beispiel/README.md new file mode 100644 index 0000000..1b688b0 --- /dev/null +++ b/Beispiel/README.md @@ -0,0 +1,86 @@ +# Ansible-Beispiel: Rolle, Variablen & Templating (localhost) + +Ein vollständiges Beispiel-Projekt, das alle Konzepte aus der Präsentation +demonstriert: + +- **Rollen-Struktur** (`roles/webserver/`) +- **Variablen-Vergabe** mit Präzedenz (defaults → vars → group_vars → host_vars) +- **Templating** mit Jinja2 (`.j2`-Dateien, Schleifen, Filter) +- **FQCN** (`ansible.builtin.*`) +- **Facts** (`ansible_distribution`, `ansible_hostname`, …) +- **Handler** (`notify` → Dienst neu starten) + +--- + +## Verzeichnisstruktur + +``` +Beispiel/ +├── ansible.cfg # Ansible-Konfiguration +├── inventory.yml # Ziel-Hosts (localhost) +├── site.yml # Haupt-Playbook +├── group_vars/ +│ └── all.yml # Variablen für ALLE Hosts +├── host_vars/ +│ └── localhost.yml # Host-spezifische Variablen +└── roles/ + └── webserver/ + ├── tasks/main.yml # Aufgaben + ├── handlers/main.yml # Neustart-Aktionen (notify) + ├── templates/ + │ ├── nginx.conf.j2 # Jinja2-Template + │ └── index.html.j2 # Template mit Schleife + Filter + ├── defaults/main.yml # Standard-Variablen (niedrigste Priorität) + ├── vars/main.yml # Rollen-Variablen (höhere Priorität) + └── meta/main.yml # Rollen-Metadaten +``` + +--- + +## Ausführen + +```bash +# Trockenlauf — zeigt nur, was passieren würde +ansible-playbook site.yml --check + +# Echt ausführen (benötigt sudo wegen Paket-Installation) +ansible-playbook site.yml + +# Variable per CLI überschreiben (HÖCHSTE Priorität!) +ansible-playbook site.yml -e "nginx_port=9090" +``` + +--- + +## Variablen-Präzedenz im Beispiel + +Dieselbe Variable (`nginx_port`) ist an mehreren Stellen definiert — wer gewinnt? + +| Priorität | Ort | Wert | +|-----------|------------------------------|-----------------| +| 1 (höchste) | Extra-Variablen `-e` | `9090` (wenn gesetzt) | +| 2 | `host_vars/localhost.yml` | `8080` | +| 3 | `group_vars/all.yml` | — | +| 4 | `roles/.../vars/main.yml` | `nginx_user` | +| 5 (niedrigste) | `roles/.../defaults/main.yml` | `80` (Default) | + +→ Ergebnis: `nginx_port` wird **8080**, weil `host_vars` Vorrang vor `defaults` +hat (die Default `80` wird überschrieben). + +--- + +## Für Manjaro / Arch Linux anpassen + +Das Beispiel nutzt `apt` (Debian/Ubuntu). Auf Manjaro ersetzt Du in +`roles/webserver/tasks/main.yml` das Modul: + +```yaml +- name: Pakete installieren + community.general.pacman: + name: "{{ packages }}" + state: present + update_cache: true +``` + +und passt die Paketnamen (`nginx`, `git`, `curl` bleiben gleich) sowie +`nginx_user` ggf. an. diff --git a/Beispiel/ansible.cfg b/Beispiel/ansible.cfg new file mode 100644 index 0000000..664d353 --- /dev/null +++ b/Beispiel/ansible.cfg @@ -0,0 +1,12 @@ +[defaults] +# Inventory-Datei (relativ zum Projektordner) +inventory = inventory.yml + +# Kein SSH-Host-Key-Check (praktisch für lokale Tests) +host_key_checking = False + +# Python-Interpreter automatisch erkennen +interpreter_python = auto_silent + +# Retry-Dateien nicht anlegen +retry_files_enabled = False diff --git a/Beispiel/group_vars/all.yml b/Beispiel/group_vars/all.yml new file mode 100644 index 0000000..78fcbbc --- /dev/null +++ b/Beispiel/group_vars/all.yml @@ -0,0 +1,6 @@ +--- +# group_vars/all.yml +# Variablen für ALLE Hosts in der Gruppe "all" (mittlere Priorität). + +app_name: "Meine Ansible-Demo" +admin_email: admin@example.com diff --git a/Beispiel/host_vars/localhost.yml b/Beispiel/host_vars/localhost.yml new file mode 100644 index 0000000..6395c23 --- /dev/null +++ b/Beispiel/host_vars/localhost.yml @@ -0,0 +1,5 @@ +--- +# host_vars/localhost.yml +# Host-spezifische Variablen — überschreiben group_vars und Rollen-Defaults. + +nginx_port: 8080 # überschreibt die Default 80 aus defaults/main.yml diff --git a/Beispiel/inventory.yml b/Beispiel/inventory.yml new file mode 100644 index 0000000..966edb5 --- /dev/null +++ b/Beispiel/inventory.yml @@ -0,0 +1,8 @@ +--- +# Inventory — definiert die Ziel-Hosts +# Format: YAML (alternativ auch INI möglich) + +all: + hosts: + localhost: + ansible_connection: local # läuft direkt auf diesem Rechner (kein SSH) diff --git a/Beispiel/roles/webserver/defaults/main.yml b/Beispiel/roles/webserver/defaults/main.yml new file mode 100644 index 0000000..7457cbc --- /dev/null +++ b/Beispiel/roles/webserver/defaults/main.yml @@ -0,0 +1,12 @@ +--- +# roles/webserver/defaults/main.yml +# Standard-Variablen — NIEDRIGSTE Priorität, leicht überschreibbar. + +nginx_port: 80 +domain: example.com +web_root: /var/www/html + +packages: + - nginx + - git + - curl diff --git a/Beispiel/roles/webserver/handlers/main.yml b/Beispiel/roles/webserver/handlers/main.yml new file mode 100644 index 0000000..38a87d0 --- /dev/null +++ b/Beispiel/roles/webserver/handlers/main.yml @@ -0,0 +1,9 @@ +--- +# roles/webserver/handlers/main.yml +# Handler — laufen NUR, wenn eine Task sie per "notify" auslöst. +# (Bsp.: erst nach einer Änderung an der Konfiguration neu starten.) + +- name: nginx neu starten + ansible.builtin.service: + name: nginx + state: restarted diff --git a/Beispiel/roles/webserver/meta/main.yml b/Beispiel/roles/webserver/meta/main.yml new file mode 100644 index 0000000..36b3e3f --- /dev/null +++ b/Beispiel/roles/webserver/meta/main.yml @@ -0,0 +1,13 @@ +--- +# roles/webserver/meta/main.yml +# Rollen-Metadaten: Name, Beschreibung, Lizenz, Abhängigkeiten. + +galaxy_info: + role_name: webserver + author: Dein Name + description: "Beispiel-Rolle: installiert & konfiguriert nginx (mit Templating)" + license: MIT + min_ansible_version: "2.10" + +# Abhängigkeiten zu anderen Rollen (hier: keine) +dependencies: [] diff --git a/Beispiel/roles/webserver/tasks/main.yml b/Beispiel/roles/webserver/tasks/main.yml new file mode 100644 index 0000000..c7faa07 --- /dev/null +++ b/Beispiel/roles/webserver/tasks/main.yml @@ -0,0 +1,39 @@ +--- +# roles/webserver/tasks/main.yml +# Die Aufgaben der Rolle. Jede Task ruft genau ein Modul auf (per FQCN). + +- name: Betriebssystem ausgeben (Facts nutzen) + ansible.builtin.debug: + msg: "Läuft auf {{ ansible_distribution }} {{ ansible_distribution_version }}" + +- name: Pakete installieren + ansible.builtin.apt: + name: "{{ packages }}" + state: present + update_cache: true + notify: nginx neu starten + +- name: Webverzeichnis anlegen + ansible.builtin.file: + path: "{{ web_root }}" + state: directory + mode: '0755' + +- name: Konfiguration aus Template rendern + ansible.builtin.template: + src: nginx.conf.j2 + dest: /etc/nginx/nginx.conf + mode: '0644' + notify: nginx neu starten + +- name: Startseite aus Template rendern (mit Schleife & Filter) + ansible.builtin.template: + src: index.html.j2 + dest: "{{ web_root }}/index.html" + mode: '0644' + +- name: Dienst aktivieren und starten + ansible.builtin.service: + name: nginx + state: started + enabled: true diff --git a/Beispiel/roles/webserver/templates/index.html.j2 b/Beispiel/roles/webserver/templates/index.html.j2 new file mode 100644 index 0000000..eefaac2 --- /dev/null +++ b/Beispiel/roles/webserver/templates/index.html.j2 @@ -0,0 +1,20 @@ + + + + + {{ app_name }} + + +

{{ app_name }}

+

Betriebssystem: {{ ansible_distribution }} {{ ansible_distribution_version }}

+ +

Installierte Pakete:

+ + +

Port: {{ nginx_port }}

+ + diff --git a/Beispiel/roles/webserver/templates/nginx.conf.j2 b/Beispiel/roles/webserver/templates/nginx.conf.j2 new file mode 100644 index 0000000..d7f861d --- /dev/null +++ b/Beispiel/roles/webserver/templates/nginx.conf.j2 @@ -0,0 +1,21 @@ +# {{ ansible_managed }} <- von Ansible erzeugt, nicht manuell ändern! + +user {{ nginx_user }}; +worker_processes auto; + +events { + worker_connections 1024; +} + +http { + server { + listen {{ nginx_port }}; + server_name {{ domain }}; + + root {{ web_root }}; + index index.html; + + # Fact des Zielsystems wird hier aufgelöst: + access_log /var/log/nginx/{{ ansible_hostname }}.access.log; + } +} diff --git a/Beispiel/roles/webserver/vars/main.yml b/Beispiel/roles/webserver/vars/main.yml new file mode 100644 index 0000000..5e430ee --- /dev/null +++ b/Beispiel/roles/webserver/vars/main.yml @@ -0,0 +1,6 @@ +--- +# roles/webserver/vars/main.yml +# Rollen-Variablen — HÖHERE Priorität als defaults, nicht leicht überschreibbar. +# Eignet sich für Werte, die fest zur Rolle gehören. + +nginx_user: www-data diff --git a/Beispiel/site.yml b/Beispiel/site.yml new file mode 100644 index 0000000..62394b7 --- /dev/null +++ b/Beispiel/site.yml @@ -0,0 +1,13 @@ +--- +# site.yml — Haupt-Playbook +# Ruft die Rolle "webserver" für localhost auf. + +- name: Webserver auf localhost konfigurieren + hosts: localhost + gather_facts: true # Facts sammeln (OS, IP, Hostname, …) + become: true # mit sudo ausführen (für Paket-Installation) + + roles: + - role: webserver + vars: # Playbook-Variablen (überschreibt Defaults) + domain: localhost diff --git a/ansible_praesentation.pptx b/ansible_praesentation.pptx new file mode 100644 index 0000000000000000000000000000000000000000..c778fdb4497b6da40024a39a3dd330725f33722f GIT binary patch literal 176733 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

+H4^nN{IKMeC1H0en^$S;HMqWDVjuj!i$uF+a5w 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 + + + + + + + + + + + + + diff --git a/assets/ansible_mark_red.png b/assets/ansible_mark_red.png new file mode 100644 index 0000000000000000000000000000000000000000..aad25375db62174acdc59c5cef52cb778c9d3d46 GIT binary patch literal 28210 zcmX_n2RPO5`~TbCGh5cNiqH}rJL{kjvS);3CNtyM2O*=ZL?I(v_Ff@nhY-igIQHKD z&++;G{#RXBUA*7V`+4r?9pCx-tbR3n>Ia6eEeOH||HXADCItUn$Aj~M ze+ZwdDJwu1*gqK!Iq?w038^T^>3Duv{p*oryzp-0WTPl|Sf~OQMrs*HQb|Jl0N)}A zvcM;dRba?KloU(3cK$R@pSx+(n~_{l3Hrt zl*XU)85`+2Yrv$lA|I#uyPfSIf|A%|)vB6O0<5VTf3_}i>BonN$ZvYFjJydEsW<+_ z1*6o&;ncE_4mL6mBVV0uQE%RFj&9yJT~FtSW9`?k*)1SOx zo6~~zah7{7M14K}9#djygYQ^d*k8%9kV!KMoLh6A!as01PBt5fHayPH9#KtQCE)Nz z8xhgv@d-c*5#I<`S~nlP^k1V`#aShIBTAub0{8JGJ1i%1I^HxS*Bxm|9BEMqR3$)m zaekAPC*<=k;V3C4IytU!+T+65i>_#!XHyBvm)s^3{NCI-@<}03mH>&6@gWv#8GTUF zL`8%b2ARn-z8>|ZtY2;GF%ESccslzZrjW*u`{YSC!kg+)9kT#b{>S9Bk9!;~8HkaJyUz9<)-(nJDX+!&jgty`N!Qqk8cz{YecteFt-7ZnOkRPmVz`w$Eg-QWGyG;q!Fioy|PRjVVt^0LuD2B5T6bi^C9ySz^rdVlUXAG34<3YKoIb zM-OSy2$g6v{KIn%7#Q(VxcY7zJw<-nsju(Irj(yb3SIx&`|NxJF9(kXBMHOVzFLxt z!``16tVIcyoyTg23i~PXSRXtF(R|h&WELHmJ)W(pszQKFctcgnkhIVy^U3QJ#=Fp# z*u3!gaKqd7TQ7G@4z6s(2=N}fF~Tv={{>k1NfBQ4NRZjRX0yUJgmWJBHqgy|*NpfS z&u;Zf-Zwhu7fk0~JoPqgN`cA*NOHp}vWplbA$U(z7}H|%{BTR$a}@ptKa3RWHoEd= zcP7jfteXWSvCOsB_RHe%&o%vLY)X^hvxM{V1{KHWsir+`Ee7EN>bezXs)Z4Q(bu6 zJsl6qa$|A)f+&N|WBdC?_ z<2e|_@g{V%upA{s4~h1M+1~j;bV_z}1RjIZQDCUPPwH=$n0oV?D1tzi!ia3>!KRt5 zk!h^q?}v_UpDuL#W!E0#XaO_+wSq6#sn)@U+ zc9emFqFmX@TMm?3%nE`KM|n^#&7(~=^h@(V@Se*!A=-vwlY`x=pbc@93+29aD0xD9 zjwe0=k3`}Bc)^u)hg4UeD0W*DN3(-vhK|ZFvi3wV>*jL~ztlkgad;I)sSXW2^dy(S z{YNW(^WzZ%g)9Ld>cFE+Gzo@N3oZcVqo_VvC*hsqGFbq5=SNUY(gkn~%V)YVUH?dm z6d1raJ3!lUP?i9hJy|28@*9T4!1rczA!2ckR-sJ|=~Izi+jNvp?;4kWMjBy|8i6cQ zbb)=jjwZ=2O;N#au#^465Y$r;)P)Wyz(ZJoO`@N?+G3=UkT~45;y(QmmgL67e6Q=IiA`ZUlO73e zat-3k?4vtn$H2vOLF-Y?livC-*c6U)aGPCzZPIf%;!;+EoyUn#>7F>B+j@4vBX=KF zL03ocZ4NgHYY!t4&4)MHJu^szcPd^k^AtkjU15kjryOWyASne^bTZusIJ>S9QEby= z9CQ+J`oTt0;*&u32om4fw(FK?MGR+LrV&K>JRtnK{-?+$l+LF$Dg7@w_>-ULA?3R* zlIW&^n-ny8eq!#;r&xo3Yxo7Xc}#%mHtBh1*bY!Iluo}Yl{MC~f`$d?p->i!FzU&L zHXh6k7>tm`SKOCe(wZ%cA&;mT!Ts<6{lw%{F)K7`3q8YkNMvS)5LCYiW3>&gVLxR+ z>D$oIxU^GH)bxGN0w4N>n-S={*3DI#&vz1i3q>PE?MHjQ%vST1lhi9)5&v1^@jc9B<&X0ByObWkeNbOfoXX2z+TA+9MPW#UBlsM{Z)d0X&49!PeHt)?=3bX za)A#CWMh3$qAi8&A8f%6vO)_;TWB)P-?_cb(8AFS?lT{wt|k)yfxS|S<7?zYO0BQK zTfnXZ8iQ#ps{4Z4uy-_EB7)3RYGVbzQX-JWG0fm1qr!{F{)YIML6S7Xdm|ze+Fv+K zS-)>ellAm>m?^Z=Q*e2HqoFLLq~$ThVG0(pz#!IVo9eK_{_{}6`RCGPJ;aP8MM{dc zUE}zOzh4243Olp=)p~c0NBrhr+%9?UVZ4~nK&4Qa75Poua_M5CEL?Laz2zpA-{ODz z5tsPbz|%@-)q<`4nE+JT90m?^<+WaNQ=mOFFU{X$_k8^$Rh{C@ z0ml5B8$)6)w3JP7j+gWzO&(auN-DFbGsUn0kxK|E(vfAxM*6fL9)?0CbOcyb4~6Br zQ8U_7Yv%BYvsE*n`GX7nEm>WOBV5vJ@kkJoy>pfDh8$J}@)z5V9&Kuj+%NcjN>EI* zzx&cPleGYd7}0Ua{$T=>BJMrUODA=4s@dgCex~Z z>+rA5&7W`t?{8zAeqxzT^y`uP3JUFP(hpfk#STSZnH1#lHGi43zj&SZ$-e~#yL~NE zsV#eiOW>0=DblUv1>t+VOzc)s=zQZF)36$9|hf+-EGxSlj$}QG(vu#Z4ri zIFl#o+9?kV7IM@%;GFD+dYL;ZjWI&wRz*$t9n%Wew+VGa#u3oQs0A zvER6^)D@I!WX_M_%+`G;2t9HpxH%0ELuh(ZP84&gg`S@-D%ku)E}^|G z&%W@{>KV6uSB%^=GU`dtY`LX+3*_SY}Kw@-aw-7k*;$~Wri=0<+jA%aTxmkw@I zWD~6O7G?F@#EYw%)cX7i7BI*jdUk2I5l=)3Wbd4|hH)4!QoB6zjFDpU>tqW)82_5p z`RIn}&*MmuP@Vj&PI{L#B9W-TASvQq|I;Urp}VcIrt36O`9Aq_S(>rk@yuIemf)Mu z?)$AYp4iG9Ss`+IUi#4Jd2J369wxg*KgDl^Yy(1X)Dy0nrzy7c&iL+sTF=XQnRfOp zLBBp}Z)dMRYWTx9s<5bl#lj#ufz9b8-)dUmxxF`)-k7(uc_f_8Qc>MtxRp9_rUBz(Y7@>B2A;6M#5`zdW4IV ze#{6GDsg4d#a*bWxlXGY8$|VG{f~{H-_-nI_NxzG)*XF_SE#2>bEr>*+gE{;Rt~Tb1KK z?gpV^KczgNwx%NJZzI#C^8mjXe0{6<^ z*kW0F2p|gE;bKJk?9M+qNk_Jz!`2YR7*+<7TnlFXRidmW;hO}_EMtGe{J-^b&1N|# z9e%h!avdUGtL7fCj4qAldfFP)W`wrKTs-E9u}=s5JKt6a zSs^znX=^6Y0qt|=Atx!)TA%pp(=_?^CtGA9-=h2FcatoM*J{7Ik<$oTYHg;2L(KZ% zln_=DoX3D`(F<|^)3H9#bneN%RpVNyjnao_GDlZYmh$#8LKcTYn&$!kU^w(mn-7R< z4l=K%-yw1uyNO|fS^FGrh*D~Nb=%O+Oyx@=@EHY8@@xGk`SA4DMQ(4Ty(lOYG^BpR zLs8izTw!`8X+qFQi!If84|uHSsm;f5G4F3~Z~XF@HSN-f7{yvzM(!Wa+T*+p@jtMr z2m4CwV7yThU7{F^N6C5nc^ufi8W)8|v$uPXMras@y5YV7bhs&a^%vi4M24|`X1VoD6tg9pe0u_w3;s97hr79%1(qoN9m&I}jjoE(aBAp< zg#^cW3lIS2b0@o+ZBAN&C3(t=xd_EKs~bP8<$CELu0t{NYV79-_8zbdw<=~0`y3{U zT&;qF?8~?f3GB^AjId{ACRhDz*;?zN%@(o+_LCi~Y6vg=dL{S5l56XXkq~ulIKM$Snoqn=sr9d*{|Q4d>Bj zn(D{$Spr${(L=FsgNyVepOciem^TP! zofCrF-jgoD?!$x`u(W-r(B*e<14S~VzGGF>N?r1GEy7Q19z5`dr|AUuS}kT>|LNyY zyL4*^xP6YGhYD|wj5hek)^~{1Q@2`x&oHLTaLl>@qbW+7Bv#g&RiGDy20>^Johl`&uj^NL7wXPMG9GU&`rvSW6= zp#=-O+rqUVt)fT@Q3>NKJ()Fz{mvLqz3`5_>V0j-$)^q2otmG{`jvzR5PB$miYFIo z@)%}(4|s2TmASo%7!p7ts5kBvgQ9Ru@w)6nLnnav!%_|0;{NXl1?i-~ozK*Bd4)BbZ%$4 z_B>v*n+(YyPT5a5jlDx}flpg=g_g4S)ShE%`01%_SS8@oed0$>pjtd%glOn$u?@U)~ zv1w$DcUbp*XO*6WD-|7WjK2^&aj;3j5oy#1`txdT!TpaAcp9SW75rVQkpFS%T z*Q4U9-JQO8gPK9k#~L$I2RtvAK4FbIHl+M?Qb|tnx(ZGS%Xd8G#94h<1t;8rW#+F( zRWy$5Z2s5di#vKLID3eUEu^%C|jY$9H-|)=T_ubD3dV0jS zX8@VHSuZHG6MTXdH!0FX(!rAA*-4hD;kdDGehF8R*J{7~QyWI!DdVy&r%}5EP{l|5 z;mpki$cvJwQt%%WtfKv$f7Mf|;hrR6L8o7lG06t}Bw3xr<)pO=63nJ1UMQ-?5?biLYAykbG9FpRt z{Rff5DTlm?`pR9)Hrvy(#?J{~SqFYbvAP2uA*8+(jcZPK_1#G-ioE^nS6ATeR}Px^ zPez+4kA0KHrg_dLU9+j~BBr`x$2nxPQtbm8JP8;f=?^+fuNCbc+3(xe*TOMOvV9Kz zL}#YpTG^Jfsa+K02xR3X><_6OLPd}RA@yciBg0Kwgfk5Xzz+9;n8hqwGuAH-sAKM| z%*AYd|Fd!O+kLYoE8TwzDCiZ*u__!>wx6#_4RLILxLsgoMdHG`X2K*~w!&J(E*$t` zIbG(WvdMJt3vp4Wk1CN*jsi&`jh+jbm+QX=?-u8q0(gX*uKG0L2Si+vSfG0_*J%W# z_<-w<7oiDsNWDK(7v!6c5F&Lbrzo9^!D{8ofHIlgIY#K@`~;Y_;IX)3WXFf({A;tw zzpNI0E%g@t0P8>8GXL7rsFB4`bGNB6>0i^Y=mpg~=s*H$O6>B1L_x=ukGq7B%mnqy zS^EmG-c|F&vsp4NDoM?i&LBpr~abcV6uc?#azu|=a_m4J$ zs8szXSM#4_vHN}luifqAzUSZQMoObM@5^eAMbOjCJ`AzrSDFr=Zjz>yKY1DSXWyg0 z(>5g3sdUY+=3NL|+)xH!x`dwGN;kKMG`3bSg_(3RM^2ov z#M~Fhdi>sOBWBKWa;aCtbw0@}wINwO<{NM|slot>)rEYz_+hTSgM-s+tzx0>5HD+} zW;u`&W#&@~beaFq*-E;&rw$@s@RE%+WHc*jhCfhGPPy<_GxinD8hR$vC);|mu4c7u z1)|Eo`bozIydQN?SJh|gyl1g(l-#F##YUYFod2TX!tYOC{Mq~!Eh;IU{hj%?WPT9^ zd$xXD3cQAE#kl68Z-^!jb*{K1sWE0)F$24D&1SyoKK|U(=(%RzaD55YG|Q5r7d`Yi zNh!dHC~`QW|K0?(#Fhev39`~F=JUEZqn9vSiB;|@GJI0HvnR;TFa5d_2-WqdV0`fj z6uwB4ey0;2f~xpThHO)%1FUZcqwp)>Njk9Z$#;kzwLZ&ej1;p%Ve77L8N=yNydr?)AZW)VVHn{DFl>s|SeLNO_FM zWv!xD3@FdfbBKsd!Ba+R;fAPqx z0C2xv5;=15z1fwA4Y~&>hB*D(O$f0fQ2WFk2AVM&A=rFSXemD0e_e|Uj{$nEBOHl3 zG4_7-)2#0Oe8YiZ=QaI*YgH;TJ8#^`n+uiUiUL+WRZ#t;FcOB_OA!O&0c|xvP9VgS z15QCgK21TuvTD6)33DB3B0#6m?xh|Tv*#O!V-G@|*Qm*%nIG1I0PitEqag4+Rm9wL zRODCyaxXGxqRF}c`}AN~+iJ>p6t1)tr$RewVv~l8T=Hnb{QRyCqepktN-d0Lf^4x6 z8A~6-Gs`(z`Ih1(IBmFKaj^XeT*>jpBAIZBI+xZh)2b)u>;$q};NDY#$D@9bYbbpi z`d=@=*?N-6~Ie9Z_+=!i$6 zTw(G2S3ZglfX{|^L>6)zgb5}EzNi6k!uvK0L`-A30=y|G3*@6V!?)-XSXx3zOcNn zGMY=vJ-K%RN+m@y*g{H4ytFQ|r-5W2l253_U1RD$fGDQ0-$qqv38j6N0mv+WnzFwT z>ROp-8mg;Yj_y~lCb%l5B*yOW}y%``| z0$IB!lIz2h7rSN8tfqX1;7SWe(j>}C>|vFELdQIsUR*vng$s)A!?|Mx2A*@@4S-xz zD$m#o+ABukcMh7fKT^liVrp>F9_oa&d7{F;{n!JoH%`Dqnf=!chXo4G`>!E%BQbKQi+K16mqx zdEuIN_yZ~xWx`o~RhhH9$ubvzfRiY7?d!PA+O%Gp>fxY+h-?|j^RAo9;|&a{mq(YX z953g*C_gHuD%zF1Ow_~yMS$pb5P(Mh?L#OgKo8^|dM(aSuv)WO#<$1uj?jFFt)C%0 zrC=?vgs9D``{99zZm)i7T;k_PW_D4FG_I@X>-`)TNt>fhj%;ltey(@&CLGHF(miCI z=KL>JQx&ShMPna-`0DsoYu%bPTV`0laGhqA&;46r*0lOB^O^fU@hd8*T3HculC>4a zqjciF_S8IRcEW3Dxyomzcz5gf)+vOiGfw)bjqv+QcD*KE9%esh4DauH{(gQEoFwF&aNa zYyYQ6gG$2^nf=2nQ;8;3vSZTaQWwe%Va@7t=#fTD5J%5U1;b!z)^qNBPNAc75FE4I7US4(Ecu$5g3nGjvO=H=C7z zhZ9owC)2{xY7ZckPIf<~1a;c2Hn@_aBBjI)u?L4pyn@UGQ<&WBF{V&^zWr%Hioo?j zwaOQ?=Hu{i#Qk>08^nMU(js$cl5*>ll=tbqin+#{SUpSXk%EI)Rve6QVz;X0!?7-C zLnRpBP+AQHmoOII$?X37Nljsh#-k^pw2#3Vqd*fifTU>wL$bc)+NdsxT z-de+E3#u7)z3`it}7Vtu)J6gSwY!uH44U4Hw? z;O0Inb3F2_`U^ZRxo+)OBJ6taHpLp{=FveQ%y+O#ysuSe&x zo3sa3nx~F}&~?mBSaz0*!`aff;o*BDTp8wDE(`D8y3Ez7fmmSo@~bt8FqM`GK{Fxt z!P%&*Dyu&M%oG;_g)=unUFs=ID$F&49=~0hyy=T6IN{p~4o>g!=K%O_|7$xgQbA&X z!6m4!PP*bRtO1*Yg zFw8EaCct#cWF3V*cyG#;aR87f9em!~3V{!*psW@00V3xXY%DtaT1<Rl7BanQ>MB@hEZ_ru$psThN(5 zf5i)J9O}S(Kt3H2BKpukuG^dDoltU%!#Lg=npT{niy?5#!$5+7)tt8}8jX-RWqbb2(xVqFkibPY=KLu_Dfx+PDwK?hT ze!WHT<#iR29(!^0O;nFZRi%ZRS2J ze(OsLn5OOLC@-RE75h8C+GXVbizV)0>IEA&KOIaO%LBv;J%5bD8Ni55|0O~Ck!9u+ z`}1qDmU zF7FWJ0D8@+bdA2yTvq_PiDeTk?PrUPl(#D2;=SD-J?Qs{|L5sIQIgd1IRp>;E0ZP8Ke4j`7)iF{fFoeek$^I$Bl zA>r5WT(SU}9o|-Iify`dT2v&%yPJ=nc>$*7v~q%J|EpPY47Iw}6(_0h1~$nn$KTlp@( zLkpE?8?KjQ7MFo~+p3(ro7M5!pQiYyA?{PjOW&}rrq&1dFDa7nki09YgQi=1wfzc- zLsgpF8+O$*hdbpjc?+-b$C*|ZWOWv1_3uw;AM6f+N|EUOrser*&WNzgsr z4Zk=_k4P_<8DPFc?7JWccC(4L1c>(4aTjMKV(R|`;$6*$JJZO)=Og|XCk3D!6xY3- zmh%&U_D6rq`)J2qIwL-c?W}yYGWDzZytt|-ZePg)8+>G~vnX^iMbO+yXrZvp0BW!R zww$c3(HmH+-!OeRF%uSl2CI&IHFLI~>DLhvF-_*N9NT;da+(;U&bQ=mWP7Nq#otk~r3CceBopAv*x93 zJZJH$icO&^GzEw0{?HK{8;?_C&FW%z;tQ!8TCT^!kk4Vpwt>R-+&JR*uA0cZ>?0@H zaD2AKv_uRUB3r=!oHiWPy8eqTF=gpJ*%J`x1>mcn_8YmC<=!y8MNKye41YIF zSvqr;B0AO7{vK3BU4p`IQJ#Pp=atv2o*Mq*b^O zx4jomR{W_29y-j~)I^W$?Uj`xy{1m$&>&iRMdKUrfxr!xnJ{S%NN#wwn(?Qt9v)77!s3N1_eYd&h!uK zF^u4v9b$n%VDCe7kBT|} z986_8Y+Gp^{Iy}rzIKV#w^bfY*lU+r!he$={@sA-HVM~yq?d-&^`owwbR^HDS#WjC`n$5F$^t<=VS?Lu5a9fSw0qF5d z>Sic~;EE(pQknet9YjS=K3%50w`#*dCS<2@Xb|srkP^@zwl6>c8@V@!(1;w>^i?-~cH^8M)=%Rlm=YOfOhq znV<-=JVSnUo(B75w}j9Ci+`=JH>7e8c#CRDZ#(*oZYjOtbRRJQoQY%FosyvhT#h8mxNj1xO%u`kSO5dNs8 zo`##rZ^8k9x&d3$4VOIToAsUS3SZPKqPc$O^Z~MzK$bZ0sJR?p_tkgu2WCeRAOhv* zgRlQ5}vCbH}_r!uqCme^*HkqtZ_DzMyr>vgu*Y=%$v?rc|kJV%|^>#y6$;|N+% z23UD7#OkcJ4C+I&0u>#jIuCgsT;?%|y-oQVk=<10rI|mBJ=988cR*v&jU|Kim-+i( zXNRm}gDz8EHI2wuNJhLlmrxTg-ZrOd9H*szX|p&`o{FPf`@m#Y!nwgt7>iT?2NLo< zYhjRa@jbNk+D4s5iM_hE<=O{8WYF}09PptayWlGIyyY-vuz{@QhJnj=X*VutB?T>-R=d?65IzIp=xW?U0}8 z=T=}95F>k{sMqJ*wO7LVyXrB$hgTS1KjrZ(GpdeuDutNRCg@B0vhiZITwJ&l46!kC zKZwdU^>)a-i3c#U2r>5?-0WUFRTa($HtW9WS@Px7urLmF&*FvxOGGn$JuX^~!LxEc zTmh~~DfxEu{KTkpiEHN=bD7G|@BscfT3a1!a`5srN4ZvuP*Zni?)4fXr}?f&O_#;@ zIi)spshY~`@A1{O@lI=+WPavgR+4E$X_i|$o~b7iwuyHi{HeC3S?gpAo2FeQXaz*6 z+FyxRG zBNmYZI@CPnLjhvs^6C)^xX?9HN%ok|UTelvxxY(n!UamTq0=rz@*;I_Ks#XI2Dt>*gt2tgNo&VSJosa=KB`g%=q z{;fRN!sfT=V7;o{z+Y# z5FIbv*V|D~I;?t3kh}NwNRZIFTbdqdF6&f_SLWgO8&DjfxfkDGb@7?ksV=JWx;F5= z&w!FlCEXgK@kXV+(lTXb4S%(TE)6h^*Td=mL)5SH3P!{EZKwA#sZgS_I~Pp*i76g} zKc`*h|5y^OCH3^yQ*0a1Td4beKD5a>*Am~MOuPKSb$x8|Vz{tsRt!`ha#{Q=xgCab z%3TIvm}^hCrTwK9U?aD9n50?LI<5V@{7Fx|bgsbgwy-FB%4_7-z08G++lZV$&dZ<) z(v1PI{3FkCMZUFB0{2)F&4q(*%VZ}Xi%s>wLAPu~M)Kee7?gjgYfAB&qZkxfkxP83 zGUao}A?)gd{mhtxO#F|LmgOB%N0S#}a&!>I<|m@{)da49`B|c*#rm zPG&>0ex?m%W_8<*>Qwm=3uB$jN4c0v?uBiUWaL8^uIUjIjnaUq*rxY^2W7LRcUpJT)W zW}a$9jj`CLPl4Cq`goEOV+Sg0FSmjO+)mc)&Rrh@STYWZs28T&bP{_y^@Ww718UvY ziDO>qIPhPoH@ep}dG;HqsnMoM|Al|I9zI?CGMpJR2o&$Kei(5w>%yO77m-Zlfs~7y zypaoaHUE{Ze0!kk5N_tl72NiJ!dOfPEj?#lew#QB+F#z*t4-e_oSp4U9NQ#2d}^wR zbCW@u;G0XWy@8~<&%Ql|E>*?YCBzM%896+1%~83~qcO|k@pQv(IF zr)P}^9tuubwM)^#RO!gdT2L^T3A@Q~sww&H8c_X*lWpA0aM+!hIXtnK0 z4}Cl3)6<=_lY6sHlZfr_pdx_?=fOG{kigX0y>p|pA$M{9{pd%L7u{)NzZl~a2867RJpip}89f*XUN;Dd>nt}FnMvdY#sIUg^jMhZh^&Qv9hV{-^M6uTSU z%wKmv>obd9JmGIDjjdcB0-+(+jgG(ia6T#_hDa^a%YT5NnaMW0S(!TPxcU$$!Ry3f zuusZ{P5uXOn)N028!4R%*sY>ns=L5p0BB?kRoF@={DuANAtGOgHDQu zn)&cxzKh>)e+m}&-+M-SSuB0Z*JzFtthzlQy#C|Z*|(JFdbd9>`yqR7NA3HLr%wsojxWX^YL4{DLq4 z*R_x4{t_pKNy=)fa z1oom}YvqPPt<$GpTtPee{A@?w>4S-`ok%=#2mBcCS6^9ah6x6TiXHMyL3HAzw<5a_Dr|S zrg~nq-nNZmSuBxyTz)?pp=p1NMW*Su@S1A=z*Ya`F_)|u8~g}* z_l=}PP1{j&lLYibins6N`eTH!Wr(z_u%8ke{k5I!wHG2rbf6HgH0erp*>R<%i{)6n zj-CMxsuy7~57cWF8GDw@Fw;`p<6`Whwu|Bh<2pep7d$e54yJP)e$Z)o=pFFv09tf} zCJSG(`f~!~MX%+1d`iV;i|SClAD**i<|qWdU#lA36|GxvPt_gUvJTd`j{b6hT~z9CvvX&9XA8Vkx2T+=vIfW&y*xe zp}^8!>6gD&?r;#*;61O~$yL*!Qt`4BTkhcu>9Ov4Wz=8~hIqIGRtR#H26E$FFYavA z%LC{M6cqVv$}0?DES0l$kCDf!0xx$5Qb?#Zr6AG@sj` z%daB3Gd*g4pcIU6RL#g;*Vmq3%AokPG#+|}1aBfnLchTc$ zDSq&&6bH>}z5{iZ5%X5Jv7`YU5EURWgObB1Tux6(&*yg~^@`>aeTSCpiu1{g0D*SMJz3%rZKX0OOZ2}eto$nQcbb#TH4F`t!Ho`z(r*|%~0b)v>U`6l0 zOjj1*_S@^HM-zfEKYZg<3!%5a z3ULvdULRAr6~US4-vfSoJVrclm4AA@2l`(xz+$?QGBX`E-~`ThhfUj4uq{YybdVx% zZC-n}YMrnhaao?790Kkx?qD+0!9RO;P^4b=5Ztt}7 z?AFD2T9@qs8PEvlUY72wGy!Pcm)*3OYhK;;TcK|F-9c1MEF|;>MR|w4jN?4lJOSy^ z)j#kY=j(oW6QjJ>jj&u4?N%oj*^%ge8wioQTJZGsMDW+YWp(QpR`IVo~r zGlNLv$#K0_hHV1qcK|pi@nQav#)mk+mFw7e18B#Q$M@pvkE{{zUI}_#Z>YR>s>iFL zzl95Nl3n!7*5CF74A(2y^$V#3wEs~y=v!bf^FI^3gb_1@m}~y=s-;__b*<8jT&PuV?x%ue1Gw>!VWeARzW32xnojXDp$6u261$AP&b&>uK*%c^Gtx2a%P zMQ{p#?3vJ2>Oe-JJ6-QXfPNl}O+kHy{))h1*!*>@TRv|R7XeHdxmhip)9|(U9UGaG zH^5ti8c6T_X&eW~x!*%(k26dR=pzQi9;MFcmx(8QelsDxCa0fvCYprLX(3Qu=-neY zJ?eWW;{|`znQXH%yV2N3>s-?j{z&F;s<{(dl$?xaITi4JT^iDtP0)kdw^e#5C6>;c z@FVoh`ZjshfLAgobu9v9ENx<{v7QyRPm&nn!}aGWrk=`e=|0s1w}WEgIpA?K0c zAroNpEZh40lwK}tiFOhykB9kwN6L9DO^ZKS6RJM&R6Jk={mk{`au+YrIJtwx^r{)dUb)K9~6;&gJwt zY%s=+dCc{yk2RYWXMjEqwE2?Nv=@i=@?giaZB#+dTVbHX2C|%S;9xLVq^6-+ZYvwW z8SfXqSq0S|QagnvB0=z^0Y4vR5A;=PAsUg}rq2a$P|-?%ptQ#h*TZnpEeCo~^iOR5i@P)%G)mrt7kxP?EQ%Q-_9r0l=qh2x)F$k6%EzQnT*xxi7DMHz@RWgJfVtis7ySLNVHG2Cs-Nt1 zAr^a%?qcE-v8I#l|MrDe*Zf&W-K%IjD6qtu`6px*+q6TD#_X?Ysd`7QkEo9 zBqGYzWSy*I6pB*zWSOCoB{OAB;xpdg|KfXpeeONaIj^%k&pG$G=PrJI_U>O!qWz8x zuGVKZFGUs20^`1vE9#LV;daW=k?Ym7XCYE6Z&t~i-lm;5!gs3qKSML$U9ezcy5tP{ zq|ElNYk()^&V%!E!d90nhiN&ZxhPvVm*I%X=j#VuzAs{-&f~KV7phjCHyRF`#P>5$ z7WKE|oBOP&m-vIg1fXH}5F#A4zeO2eK1aadRhwHM_i-a$ z|B_)ZO70Z%*@%raHCq6Z5WJ+-+>e1!eVj`cVpGhN--a?533~J>}rP;ti5EYGnN^`fc zxHM#(mnOc)A(eFxNKqj9xWq6MrlT1lXhZ9{&lG08@L{6W;g!&_?tjIQ==`COC;Q^Ht!^-E31~?qB^b zZpUg00Z(dCq)o@KD@aNGwl09uLFK^_Di6T|$vh(L-boWo4E?@&1uCvBN{qJ#`ko=u zJc;1KuM8Y>)pq^?#+81DeOK7fnP4JJ9})BEh#{Y~HN*IGdWU_1Oz7fwgctZ=T;LH> z%Tg2MDmJ>^Jg!Mu7O-=~`BY;dj&z2$&hQgp#$u$Mc;=B0_W*4x!KkMC!7g;}RYjyMp#^b{Y> zHxp5#%@{$t!|;+sp{XzbjZpp|MD8ZXF=n!AVkbZ=%{8!)@JVp(^a)eHByb zDMT$R8G#d5gpNC%59Q#N{smlQ#C2~G&81FFxy zRgcVFk4k_=t>V)dkA!MNDITnIFmKq`BS*R`0gqS3j%JCabU1?VfFbl1M$4;^rK4$> zRJ7;^Bo|vg2gWR5Ey_#DDPH2t5j?6{7s&Y)OcOujdHqz(QEQzDeI6#zv?J|mMlPI>@}_wm{v zv0*hWQZWC}mYsC^NDnfvlVRB$6ytf^8GSoYQwE?E8}DGD)PU&qPC9oXDnjqz4D{A$1@ zXdnxSRv`X@mOKh+jG30t)L_+NboTP){+22oKvV`hUyl_H|E9Z@<81M8`3Abku(+-$ zF@V8Fno@7Ji~c-G?P#)Xe+rZ`3i4htKnAKYNDi4fK#ea@yRnL0i;U3=ly@q{hN63n zFmz;^@N?)Aytt?SM~1pakR?qRCs5dL(e$S52_OO|VwjtptRljB?g*3TI!y5wbwa9& z5|>6;RGIA=$&f|L$2Oa~JrcEIo>t5hDWnhWkx4c!RsaHLST954OOqo8GR z_bF59Z4VS*j5=Kh-k883nc*2o6^`Al#_4n==YCZL-HEJA9R`fqY=4X9q&J-#C!GqW zHa5;8O_rUkfv>)|Q2j*JKXaHi+sj&@Wf5g^xdl49UW#SYY%Z(!GCudntiz7 z0SWj@(bQSbjl2g8JX0y;5ecK%kaUma*H~_)kNeZRulqIA&@w*vfHMm42Rt34q{Q<3 zy;46f$kG!iHL(J8(aefG9w6flxq_|u9DbC2=!m7vpl00l20C9pEnmSJsF1Wlzmw7b zKn}oW9Z3V!LT{eKt8bG{5}2ibo@B*lzP*l$HP@dbSK;g!2r@bvEEZ@ugC!P!i`bSh z$qVfs6XNEwdS?w^a-#-oQDf(O&cr!^CG7nCEeDNlf;a|)yZlZ5ZZip^_e#B7%0Hegh;2Z0=o8Zo*Dq`Uni1olOW z8$zds7_?bEE>a%)>A&C)+ZN4?ke3DSvLWT}Q@9}Fz#QUILch!icn9DQpvWIr_{(A0 z#$e9sk?|CfIlC$B6J?vhfnb#;<|$4bMt7UNigo7g+PEDCWXplLO?S^RH0E-KS6IMS&Hj7-$YhvIY8o+A%faPi{ zU2Sm!9`eILZrRg?Vh?d+C-XI;GiX?g1qS+|p&B9jP!6VSV2;CfN91lqmmehz;>OXF zuSGpR56Z~I^8m{N4rJJIeHQ((wwp}Cf3mGk^s&LaLG_P-?sL*&%S;U0xX9<{1-T00 z0BxJiM+Xi$lk7;%pqWePtfd%>ht~WS%WTbccxDg%0TTGg7i69{@(^c9S5v8#=VJz< zO{MB8m`vNUq0YFUHFP;f`?_tI+}~^)9=#BX7+gyBA)wb$EqR z?}FKpBfN`tlnN|kGL=c?M{iq9&635CQCbAvJ3FEU`-4gp8tD*}I7FV+qJ$4?WK=xl z0dh5zdcMP=s>$}SsMr5Os0Q_FAFoo47gtse$H|?sF|UdL{z&mKJSbOgB{>k*qCt3s z3&nDvV9A+^aoH@m&I{dsEtELdX1^8QJh(17rO-~j04 z&q)XNB}6p2ssE1xcj63pbP`3pU=nin2xWCn^{bI3SL9%GV8VyB<~E8 zU`RR0X!xWw{2YL&1uG$MxhU9U7r0bZNe#ru56*x;GH*0upak=utrG&fFMzIlua~M$ zLchCGFQB`(ZvHJW#|){sQS zPnK1w7<&ArrKM8mJP4Qm@p_d2?uF-4nX$3uBF1u@a4*s1t9&fgbUk$ASq@)*QdwY3 zl1fi9Np~yT0sDCr9hfAkgU8zn&asJbiZF%Tq4d81iGdG*{VuldReYk{?jLsLo(vM_ zs%R^HDaoe9={-4x$2*LI;uJrWz|`PQ9pCk7m&Hl*Q7=IHCk(=(1$%TI*+^3@s< zY_hwaNTe`hO9I}X*$3%@=R&Aw1m+0=-tws;U#gjy<+zfswx1F?yzu9nGepyVu+%Z- zv6nkjM_;s|^iU(}t3kSbz)ZS>PzbE}5$^P$q_gr!tTl$rWyluKrnmMOd5A^I1E=%? znw(z;iii0l6uEVFrXb#P{F;Yqzw*%=lEhvTwd>;ZDz=?J*=2bidcPYoX!;WYel7Uh z)^vClETYA@&^3ZndyWIA_!$SF@R^w8}-CfM7GnSY$fKVHdCD zxx7)`?z{UpZnv0bI-QRb2fk$e`j$*`f)7u+MqQ*bLW=4T;f~Io-h=?i477u)1GRKu zG?b~wuihsK>m}tgR^IP~kIqRoh&AKwR!Z#5%D=m~aTj;LnPygao@SVr1hNtw3y)p2 z6l7zMKNHN0J-Lg`hz-|fEYgRbJ85f|VfO0eM^IumG!k`K^R{!S*;icCT?lHgQSEi71~LUe0V2WU`YP^}%WC3V4W<5`N_@*fB{@ zuyCF-Xq?G|jr@(gdD+hw5}d$1%5k4`49fo(LURF-kJ+Lp$ay9 z{)yjRpYY;WMOog@^SBp#98Y{~v7H&a{Q=abim-z%0RfR!uE$L|S!jPTdksub=ID;X zY1;j}$GpJK*o#j-XwhGRJG5xj?joyl#YAs4~ z>rhqX@1@`Q(<4LfM1oWI-6tKF>|g&f&%Mc$>E`-Q0KX!Y|$DNC5A&sG}< zkL)TnYnm))#gqV8*xg6$97$% za+?%|JKe8clftEEu1}{g3U9antQaZL; zHBXu)I^ndR1hSfj{^*+f+gXUiOMmD_ef^oe+;Ukkc9NO0kUm-|;67F*kN;$mKlxsu zb>34ZT(@s4*gU7vxVGy^v$RTb z9p0jUy3-dE ztMjkrGi-jCyGjJvXdCvP%4OrpfKoCixkeUO&l)AJRwbt)!5F?2yUR#hNb|QJ=>a()S3s zhmJ$%{HOEIAzkb|PlLe6h^70cY#1p0U;3!-Gx9gt!dwg6pQWx#drgH^;>EbXHubzu zgEnji&r#gbHFum{1E>M4cxlx;$=zJn)FA_;ol)1}r-IUee42=tfyM>*3Gyk)v>f;K z8}-qT0AtX;8p*{P1A_qP4*o6t%x0d7p%2sDW|UFld3e_^&q>HiY&oh z8etLn-2n$5*(7PyGnKXo{WIFi7A9Wye7#-EN|#ZoayQrx#~?VlpzIKX{qZc z_^Sb}y9KV_V|DzO=GljA9rk)qvd6Ft3|on41Bu*Sr3&wZ;| zx9hA=$hEFNyfM2rL4r1CDmVeH`4q_&?Q_pmVI6_CxF{^}L7^Rg-%qsaJEBJx$)VwB zr_|Ck*c~Im`bwH;RC<5;XQmdclOjAA}jC;X;+URlUpSp0H_U*>pq`>Sfom zHF*0r!1@hJodK|&2*oy=i&JM&yu|dq$Nx8f;`y+jlRb9<%o;gAG;YOhS zFpV`7)R;5=ZeRD#3&>5+RINe!{BidyLgFrW?rC6Lv>IN)^k`lXUlz0JCpLeTNv(q) zulleTXK0+i+e}ahykO2(P!`%#G{v zpOxZEb9Yv?8>x8D$k)%#=BsZ-|GH;obe;0XaNh*d4z%X{3T5dnzfmBLziub-{%|5?ukVa|v-)4F3y{<$%E(yyzo_u_`CCTn#~2WBT21OfFHj3Dmo`{M*a|Z%uXJr+GWY7P4fcuirg^Krmy% zferSKL=p2yD8%QV*=kMRbkA_9TCEPAs!wqPah? zd_E4k^M8Ayiz46G<(fma3OshAqflW?{!1DiEq+9Q7^3)?fPh-k3Dt?9qwlU-P!ZdGG~Xj7--%#2ut zZIe42>0ldjL8Xb0G z#9CcZWPk}F0{e>4*79-FoCrQQd8)II1oGbzMg^m3kfqoBw=1aX{vaVz_aS}3pKLqMsS8_VDOp%D{wJifxz z>?<`Jtiq_=P+BxP-mv-;J+61o%5x4g)tdzrpL!L*u6_QclOdyYZI>As2yv^!|NKp_ zky*G^o_h*=R&Vy-MPtc?21IL0^B_?e(>{f?mu;)qbhw5Yvm|I{ z6fWG#2M{FJzVTP}OCJpPjcF&IJrZ41ovedTJ)L7U!f;Fa#H*M zY;B+{U$OOpUg4l}^&D;bNT*z{nefG&`iPQ_IH!HD*MT(lIMchEgpU_}@DnHp_MVJD z?=RfSAc3SDu4_G>J56C|1=qW;l{Wj*yHju~oYBlEn^qN4RJqcf(h0fi)3XJJ6o+w~D)S{ukdW z80J$%A#5>C^XT7Vi@*2dQ$bxLCXDA-1TSQKnq1nI?!03qC1xeQ=m|-CP_Ou;g=-JU z&**~1@acfLbY36y>Wg0>efJr?U7lX@_~z#}>}Prst1luZ#dWA_#M}K*|zs!35N%b;mu^C#dyJiTPclN>GCu%Lk%w?BJ7Brdg{`=VA z^t63c-BLZ{cm|WEWu&@sv+(KJ1sGC|(|a)~^(*zN5kVOf$HxRPhd8@=jA{E;x+>}CTiO9n z9{zOKAGR1$?$3{=MM^CCs{U!w4EdB^BszzRFjfV0qnFt+7D&An}$pXXavP z!}!Zq<#o1LVo6M=(52$awn+Z6xRe_DY6>~`o@g96a#-1+qYM z{$^S4eZTy}zF;{OP6}%Epe)n>mfs?e$n+ZVLw}m&-0*`m9Q4yRg`2-mvjbWvyge<5@lsB%sZ-T&WZ@it2RMX%-4ZPDJM56{iA?`Y zHxtZmS-+gWB|03#PIB#~uWa26eu9G%Q_tP=JH>jy*^1d(7bC{q$U|Cq7NUT^?z@D@ zI^1H&=>%iQ{FS~Xn-i)yMP5H&IIW)i>9z2K_z9w@!Ots}(3VXh?BBl|P6mE_#YWI< ziMDR*99)i|{wtPA0U}y;zutut0=Xle^apnSDmq|wr8C5UvcA=t8LxRusH9Eed8iGP z*n!A#*OMj0&P;l^Gs>$0mSfZFQJ|Ugsai*;A5<1yB7MK3oN@nxO%Nd20>JPx_3Yx! z1cZACI`(J4XT-BwueCO&N?Y99WI`^!j(w<=aQ(9?IBu?3-KgVj zcWgpjqQhx#>dL2i3ex+U+t|{UzHG+%QKqVwl0y8a#CF?rhD#vo+dY0BySymrKARhv zacKQ`Da3t>m^Y-8QRZhi%)>9a^*ppgkMF5Bp#n)hw{?fiuJT>>N8iVtU-jf2ZX`U# z#rAR)7MyQAi0jDS;>F%=f1B!ahEaVzt#N?1<0W+_5Kd3%@ZOqsYR+B`_ktfb;>#ja zMB<;WDQQ{GnmWJFRy{ahIyp8STc23g()?J{@mfMh71<`v<$b!ZaOT!1v{k@)KkmA7 zi{^M{dG%;1E_$c!tWuz}7WI=<$2c)@KKw2=QjW5IHI8I6U#?W2jd}ZT*oF9M+GQJx(J?PY1f!QzFBVT! zix2d};d=?4CG@-g=mE>t-tDJXsJx8R?(MZMnsnxQji$V1$D#J%kuTV^_lr$czFNg7& z;Ajr(d^cKRCZvn;hef^b)iAF7z=Vj$MPzvzc?iELcEet++L|A|a!u`3wo;t3^jB&d z&{Cti`&V^&*SH=C6G|y5xv7^Tq?_jX{&nzlUf~1!8Nn##572Cp@LldP{!%|!$Xgeu zV&*l}0=<*h$$R)l0&D{4uKwqka=dS=WlDI8xz($U&OoY+E7WM0?A^dpGTKEDHR5gyxjak?Za-lR{yi ze8sc=Q-K0(j9SI6v!tx~q>W$Dgsfv6Xo6ISTb<+z$TD4Vkq}6&(+U%wkN5tEjWh}8 z-)CRodC!cP;hcGlH+bmcMQXh{HI}j#(1QB7+G5a*_pD15O_i8j8P+5yL6o%!F@4=g zO!WO*HGEpp3jV57HJBZhoro{UqgO73>wHnL7QK4uRYM`)?iNPZdg@~ry=meUDH$d< z^y6X&1TZ~g)<_9JQWSK!^QTcg*aaoBFfm;WXL3BN!gVeTej@`XkmJlXl#wOWLGH3&a)E9 zP>GOjqU_7aHum2g@6Y#t_&w_JFrN2$&wkE5_nb2xTrxh-#m>(TK@b<-0A~h4NbnIE zu!jx&IDt}=1V7lW8=l8OJIsI2>hlvINEE{3bS#3>X9feSByLhx7v|eJ$>kDwu{|dX z_|9Hp(ZdB|0^8yLT=CJ}-HNBC+&fC#tx;_IPT#3wv)K3Kvc)4J`*EFpi4v+Yljv2>c5!f-k_S@Q04!S9@MIPz?!> z(_XVwU86X8qCHWbY;(vGG;iSJT2-+*{@E)>3-P9E#GJo3$LgcFqL!mJ{30^ew$v=R zHhvjyMZ7|u@p^ueogm!fFMI`&f{L^mTfKs7A|q9gwSPdKb-PNCg_Kb5*xs=yvA&zw ztT|DpT6W+1G24U^B3OjVF=O1 zX*&h%cZ%Ee$zRH$Z(U!gmx(RNxO}&zz#MCAX=}2@;-2l&MTQQ})?A6)rNIFiB~j}{ z%B0Fn#(R?5B+WQvo~LSi-yUCZN)dPCzY4iz-yHh|Cq(5#CM-(F(+r$wyhWK&UMMMC z)3N)D1{Gz{wcI8YnLchX+Vk5~Pf^(t(;+Hbr6C%(+skfkO z^DB5S{2gAMIr2@V47xOZb8HO$K^!-qt&^(gtAKqhKEWn+F;Tz1AkV%^q_~@fcSauV zmJRDvsex4XGs1A2x!$~!!ZJ|T$&A)8G-?A?eE6|=?3ewtgGKgHqhcdJKLkr~KuIYS z0ceL^kTklU8rFkofwCTvd@sa&UwQ*wI%63AOB=eH>n&J#&jA&KI)A>&Bln|A%~hzt zlv2$`*PwlZ1MZI+c=#NntI|e04qY+_=t$Io{VFUfd#+Z3eXr)Sf4NMcFbfYmuPOA& zKo-Tu$~)2pO4C+XRURuCMbs&weGZ`okYNTAnly&PVYe9hPM8 z^B)6i7YRcgy@ypeS4UIyXHU`&z~{wBQUSHQyt{^8| z`W3ZD%`vRR^<;`WqBMJI%Awd>5Wo6%4+Ba6NvbOFfyES7;#eX@`qHWKP!aE8u*x-INqYf@ijUNEUhC50g;FmQw77zJ%8Vvu z$YX!iXm;>=f#8AT^`Y@be==?;%>@XCg*YrB~Zh?>t#B!EU!cj+Y3uv@i zxsWh@kd}m5=!(6PJfd3HKFMS z+1R^U+nx9S_TxTh;+$%K4_O3ux0V87L1&*cR{3Xi|~`yNUJBl^;$&on^p^odZ%Q?Sj-U}c ztt4WT%84lPkt=|9Vd+HfXX`h{%8BK#7g7|eVvyQxR37IsH(*CgGl-{WDb>g5c*jz( z%jh0Ql&;taI`^)NA6OBkRG%XVb8hkqMB-nRAEIwjHBMrCq=ocfT;qZ7eWs#OS%`p> z8G4<#T4azNPVllCX$+80y*Y-You(O8y)`lOZD1Fi%3y0rVTJkHsO?cNq6RMj$tKCN zW*)}mCv#`NS4BHs^d~T~9>g~0+*U#vPrf`@b!GB2|07MvDX% zXzA4H5($Nx4G43bn{0rp*~LAyN7OLANzth|fZ;RsK4p!Urcm@(h1{iI42gW9mOAHE z9`;g=fvjb*^BjUGjXdvzc>bm&_@UT{I^Z*41$ujxFvqjW4Zw{$>(cruYndIlZ&m>O zrxGa~QGrmYbcP;TpLQND7a#f3sk0Qw3!O@!OrspwR*o}QCgk99v5_TU3qE_E>B%oX zflJGPpo5iIjs26(hF*o<;>IPlv=L05k=@?x?>-szLf$v2^IBepE_DCq*cW&Qk^^ES z^ZT*Umq=Are(|n15tl9zJlVpydSCnT;!o1}9UDoEh)K~OpN|sH$uG8Ags$~73{x$q z5yS1&9zvdofxwt@9g(WBhoMqd2DZ38ctO0&G;5u_`>bd0svVk3Q|G~VYGxocz=>qgD3Q`co_MjS~Y}PNBX_r8m{Fp`=p&Mk?y=4SS zwIUsRYx7v4g8)MN3)MM=TfS8Wa!aJdJ$KujcTjsM5lcymk_+^_U&61#aw)<1?|N{N z$aQ=tof~b>k9l|jO_5lExSe>-g-4g1DZ}WfNT!%1zq!KZ zVk6O=I+9VWFzLn^vdHt~>QYM1`X*bD8P3*D?Q>N*#1~~e8p+~)7C5p3YX|GfBU0N1 z^bu!XXfctpn$15SY0X^GlSO9k!yHcHmM@Wk#-3x3{+)*HbIT1n57yi(lA>*P>NG!L zh2!OY{fh>-c2%0!dkD72EYyOPSXOu+^VqC~UjW0E@DZZ_Au)ixjW!`2f#)3c-cOGQ zo`VmpMKD@O3|Fx70qF=)sxjUt%RGJ`C+GYfhj) zKVmHopz0GGd3d4l&s4>zgeV~pcO;hmG|SH8(oNM2(t_oP!fJ+F4fkUkC1M{|M9tqE zLm8r7u^dEMwX{t^^o%8tx~r%FBz1EvIrr|{Bvx2Z-dC@vc}IjvF4s+S+6E;!t5fIK zXQU%hQa{Exwjj=fx)5|dIR0uL92wSS*T+N4RH^=T0e-Qnd1S(2Kjh}D&o_jY@zMJ*z z_?T8c$|ezr#%&Doirj!n`f)hZ$ zV!&&Isqa^T*fL*Sx}BOqM&8Xmv~s{BdA(fCJB(0r89bA007UOVndShY>&siZiYL6U zhklV-;Xr++wp{X98O_L&z<*?XB?XyG?(=`zixkBwvqf;-vSq6C)+xlwW70e@ShoXK zkl);L7<-vJu;iTAfv4!7nMYu}X=;}$B=V`*fvmtkZDz!73nXQlS_QylaR{0*k!H_8 zVMTr<)6{~aMCt%HmHgNlb@*yHTwOI8;h@%Fo1V03}dxZRRV8*?L4il^XQoSOw4XVDdSkq6o|PKrYsb< z`PMJ~n$bBPI3I*S2}Sp#-WLfaR%)NinrnbS?h>7oI*#H~FW8vPs$-Lz1NMkwE0G=0 zPi7od=w68<$t7{0DR?ad03Y?{rx)x3o@b*y$1IF@>ad+D(S^J|0;apT-A&ukS1+l3 z7Huv8fX^dJPi5$mb8=_c>$3ewI*+>doz0)#NvZlBCs7#g$tt`bb2yp1GtOrkp~49Q zy_xzecEL=F)57l%nRCb+WA9)J`~`#ra@VIt@sWbgqajBg0$E;xw&UC$>5+4kYT1G= z;cS6sl}F`S=+{B)!jE3lq%|7GOyn+WLX=<;+AYUfCb|5uwqBF6Va(Gul_e-l5FqPh ztho^01yugBJPhK39Ni?>*MO{WuRSU-k^4-_Pj1AGu^Lzvj%MOl$TGJv`^10i<@KOp;!wW^6mY4=z6LU8w`$QKjX5 z|IGTI;_@Su@Yo_>+P176!>7ud#FD&X|K0Onh6Mj(%JRj(f2LX9e>9 zsDAOiK$d`hA~IEr5@JL4(7y3^oWPS$#ypkr1w}BTorp@E^ z*IdJQnJwz)(Dxym@@^@L=DCi~)pUP)xIG^VYSyrq#*_7( z3XqN#7enx51v8$9BrH1kecAuRW5YQht$hpOxC-{qo}r(HVO`)$P}QR; zPaNP-=-oq-@49BtQ(>YVGZGhiWU76B|M4JXa%4mitlNk3+@_z_g&NWC1eW~41Ivd| zv0@`r5!}KBXb_ZPre7&pLmJh?chN#fMm{1Au+u&n%IEkENfSY9*pnp`$6G1YWm%{V zSx8NJr_W=;0KoBdN5xHz!#W{Q0NV1%$;Tifd^xb8>JpE9R(jw9IVXE%YW!J43W6|Z z1?xsX7RQrQ%lNKpi8umhz zwP@TmAm@x}H1r_C!;8LBIf$>ugw6wc{%T=-)@)5yW|&^S>!$-Vzh+w_q9I}BR3Q06 z9XsXu>3qn0RU1!kHtAWZ9Tx;CGdhU&c?3X|l<1CtdZ;TmdYG|TLW8|$2RLF$K<4y=2zCf4B~u2Hz^9&5zd3fNFY{?RIESEsqEmqOqJDn(E+I7A zh6jEJt5q~Tk-!^K{P~{QAj+JKbO2Cag2&g|Ll95t2@()c$IIE^N+j)?A}e^Yy-y2! z#dbx``4psf01~kdmB5oNDwCexG;gd9f#%RJ?c4?N`rD-9oyruE|)9~Ec{pzo(P`Z9(WNL z`A(RKhB(q%!5048aYI{u>`?6vaC{9-4kB9VAh0LJd=Mqxas7`z!lX9U61p{bX%}HE z*0+MP`=HyA4^Z&PvG8)l>T!Sq<@hS^0G^zqKQP$Vc#DTPxC6pONp0xbDW=$jeR&}p zB|#=|=MJRfV)U+32L?OjY@k~|y?0^P_6KtSLFcs;QL2Sy9H3j)qK}yJ8Y{B^`P?*A zeE8w60Ua4AN5dve@C|?2iLo62qjS%k6?E(B@m&eCIU+>yop1a0F`r%f-?Q7SL`?|n z(TdqsW7{(H^2+~K+$hywI$2@0PuWbfcvbI*C<}Pa2Mh>*8Q?{{ysW|`qj^vhDn@Y_ zN&>CLS~=%IWgEb0CVc|`kJY#e0z0w$zvg(LeQS?A=xT)vClFB1WoLHc<^Oy9NtnrB z94iq7$InNZpT7;V!WZKRfHf7b$FcKwIEf)oonxq zv~;U&V~~w0@8bT}2Od@>5>FXs06q6r81fbdCX(<+HktBA`wD_~n)%yk9iH+xSjA@hugpMcD8kNs*AcBkm%vIR3vYJl2p~Zq>>y8}wr4qwO5rek#rTAuJn(o9nT)5^Vj7YrNR(VBvuw=j&7gh)I|O`-(*_Kjj3M| ztLD%qf0e5ONVLs#$F4xQCb0n?V2M7r#k~oYsP#z%q~bqh3RcaHACf)|a!*u3D#0wf zBs2_96DP)Hn5QKB)xd@a;HBAjaU|6g=v)@aWjybh>+i>tCAuf&*Q+QFjk?gc^MQ9H z@F(YTNT2P|TxL+ZO5CoP!^0it-MQgM)J^fS_Denh&R{aM`hX-IDx_k-1HpSg{$-jI z{#%)5A~ITfY&_qs9Vp zqd=OgKRo5UHvH%sJ8>SeTRqG?00kyc>o5@eCYOrGw;tf_zXqs8-KCF95ESO|nfc(m z`cW}Yfj_Jtd7&0_4<#VsF9M9aYiHY_lw^uFYrv6}Wf1ixJW)y{QW`q=JIE(?ZOMaP zuOkro)B)kG@on`s3LH5PM`MD&f768^${N;jd@UVBA+A|V$B%iT5Y(XXwa1X0^E=%4 zX|u?f0~B`Ts=`-rsmb}xxup|k4=A){-E`Cf6#~3&HMfdS@8PeNXh@JPUZU`xllaKv zYYrO!A!*YV3HyNTd>d4<4u7qMNF;$HxAy{p^MBEUTm{`_n# zr}St+Sa~dQG3u4Rj}|bz{9|x3#-}yRSe`6QG(L2D>3GL6Jh?_KxFJ^ik>?(WW>Ba5 zOakvO&|0=(5DgJ-jN#z}=Yx&$WWP%HC?m0vm9VM55`opNQ zeN}wDHxkE_B=8b+n8X-8ZmiVFv{aTbLgF|`_n~z8BJid*3*@cheT56W=$abtmMA3< zjM#@sK}bDXuLDQRYiZ(+(BHk&69|Z5V8nchKU`i+|5vS6C!T27M$JO0cl$?xsNduP z^I{e%O*7w?0Ndy33GxIFKRtQjx%qrZn0Oy%g?at$zy)`2B}=cY*!JnE13f=c->mje z*g|-6^lGdce`LXHGz3a_kSyY7$)XxSUSKCaBITc6)u9U9#0buxt^=pRfvFUK#qCSJ zh;IwmXdP@N;`mO9V6P0R(t4nPMx?{54d&MPhkOgo+HG#xXo$9Dp?n4?vVQ9dPNrlL zSz(N{wI)P}^p+P+0}bSru!6+dW~$D>Tobyqj0DP>)3OX4<>6X^!1c%#c1o?wlfXOu z(RXYkRlS?zPy|&WdPj7r6uwhs&HF&Cw!#1k8j=9}R25bxMN;PxP>@ZO`vr1WfQW0+ zLJSgUhqA`u*s{MTS)%a1XZHG1q>=eynePBh-npJ6iNaW|-W#Jl_d_6Xxj9H%$YtLD z3~jk?9l|Ip1%EdK`%7B}5y$W$CO=}e4}!S-nd$|ZoTBKEbMDBZ=0q@+O5wl3WfJm& zk`H!>f*juK#CL}7ZxAgbcm(a_?@HkBZz5E(yFNYSMgX3o;b1s*w^;Bj@)2o1xh81x zC?qy=ffmlZ*mpgfPrSAHoRvv7xZ84<-DKXhyKiC2KoQVR9=8DWOR5qI@|Xk}sUqz~ zu0W&8d7blcd8B$b3a zhGO8!cU9Q=Ld?_eMMoiUUnRO((X4lC2n=MvQ}j|4JynC`^(HCfi44Q0~icu0@;)-Ghq_4 zJSp#3OR8${i?4oLgLXV2hw?lLs&zS9^*QapZShP8g1lsy^&G7*MX?4`HJqH&85Ss> zA`NLHh0U221>Y(Jvmj%sW+3MTEMXtUkcf&>-(`rqls~3fq`3eB2CWUv@79H^(!cNx ze)GJw8v-uCa#83MP-HY~X}1vAw!Nxm(AZoAoJVX9T0wa-tNl5TQ{v1=d7Q37z;*iI zNM>bazjqk!kx|diqt^n+r%xz|Fpl0@P#Wp%T9>AO>*%O(x_OI(sRxL0s_YuGT31-k z5_BDxZl?D6bo1>!j`|=d*6s5WkiokRZM0M@#GIK&05~FOds}9`&TW&e_n6omsI^~B zFoRxlZX#1a{xTIPO(%5>DLA>mjDZNardfC~>h-H8;83GUqeG03_YOi3#)oa_v;onL`4Jy;O7{IhOVgL z1|>td;WzS&ZLlx15?%2#7&gZE=mK16?~sm%itthDOclFjxEB&OcV7F&OJ4l64}R1k z|2Q9cIGMSUq#osLY&gneZpj2cObjPZGwrA19CC*rqb(zpgEzmzT&aeC6s!a!OBhuu zMD2?jX^Tf*i}>moERx0;rd^=k{CB2^j;z8nPD&v$f4abGf4y~cS0yTv2f>4 z8U-P^SECekp3HnZ*aBin(}w61H>WtDs*Oy;*QKm z@POVR*&;2CI4Cwk?bNxDHl+#~f>KW5${vOx)5NR?bSi#EP6Zp2Eu^|UFoJ}=n84qR6 z1onYHFy9YfyM(J_zF*F4c4!@7$d^3>sx`Zkh2nlh0%C0!L{6CF1kr*9iqCQ6F5~kk zbRT1tfH(~T+y0;vWjRa+{yk>1=fgCdUwwa+c=X2DHazZQOq8hjlwXj%0p4y!IvP;c zENI2>1;ABj;szi6cI_5=bRQfqHj)N<^!-4UIVV%=f;?L)I4IE=?>r6NQjyPBV z%|G!(3J=u4bITfN&FGnW)Ry>&d+yzfNDd;Vjryt}1UYwwxe{+fbk=WL1x>GmB}l&4 zq^fx;Tr%rfF0m1QN0XvZv;jFfP^ruiw^`#Ck9R^`N+4CCdPRbm zRey!N2xx{M13DTv_N$_wAt=G3^t}UWSIO)C65igpfy-*2bKZdGn1v%iXU%}Y!oT~2 z+;Mf^nj7s`Acf;tk#iO9Gy)Km8OPw>O?RB2x!PxiGRWmBVF;~)=zR`oa(gmO%s<~$ z2>9TLf%thr3KNGimJ!q={~AHkzAJ6Fzk!Z}+XJ+X2-2k07aub!pNG`-nnVD5O5BKp z$rKaBW4516d*x4rH;5m_KJc7l1+CAsgdq_X;ob%&4mcJD)%8fw?IUm_-h!~gGlLAv z1uI2;R`ADLn{DNg%L7uCs@MuEH^O$~r0f3hD7QDmp!NMk7XkwoajXsOx0nUxSXhh} zi&+@@zh-O_B@JpZ=mFI>ZR+uz4Q7C_OGnL!V4Rbj8r0b_BOD&Xt5D7$3WUE zc;tf*2puH)o5i;oOsr+*~+U`|3sKVLH6mEH~5QBwYLaM3(lO}1bL^d*|7=cEXqLgF>&zt=Pv7Ag+XwFj^!Loa*nu z1kMpK)RRUXKm{G5^8}6SxbkV|{3_k4^`yNpEr%}6GPU^^en{*FGd;gN_tJ%ELY{ra zYF1FenT#}UA(py>z1d(+$itIGiz7@$Y};1tktCR~;qReHm7%>)(-j=A_2JA+$DtTh zRxBya5KJb4VJI+uw6}W@?Z9@+TIF$9qB_yb%xFrz+K~CnNE>8y z1@J=r>KW?$w-3-S7Of$R6OD3CyklYP^%kUelfdC9T<8Vfa0gAWGAX)DQMP0In+FQ4 zyr_Kh@J?+dFEX0~Sh)@p2PP7Tl9mKd zw8nk6;NLG6#_jG_^Qk;2`mTLKZ0@+gdHz$w`xFnU8FH*nX=H*5q|y`X30|5-k;%H0 zUQ_kWQG?|-U_!2y`s|kj?LkIM30$P7TX^r2g}`F^#qNonuD>Cvl3+?Hgi^gP==kNM zbiN||{po{TxoR@Vj_lNmNPh1(wF|DPR**s4#EdHabkTL1Dck`k>*>1kT`_O}xuZ%q zr-3<=idzzenqZJn3tU+?>-l;g6rH_V>2mzktR*cFmMi4n{2@Ma=gpIxfO054I+2oQ zehA5f3YgG%cbwl%&DN+pDN=vjN0Qz`x@xPCq(A_WFkh&OL^QHLFk-M|ahjL0<8dhx z)xp-m8Zo@KJOd`4Tu!>4V?;|Rf_?{b4m}{!%ideFIGqfS!C(G%9xC5c#aXqdYG0M( zq=WcKG;?~<86jE$8bQ!4_FMYhHf1Ne?OCT$0w@8$h{o%Mk5C3hCi9V~5~S?>=C&N1 zo6(XLB|Y;l<;!a*9t;5urMdn4{VStIt!*>nvg5I$P%)W_&B1fYjiDpfFninPAeV)5 zCB;Xe+rz^vd;M)h_;`MTv8Z0|tA|z8#Y$YK zetD27JS<8`*+(S93*#8j!H2`6UJ<#7p$K=7fcUG$3?c`(2cQA=0Tx@fP1Y)Tv1Elb z>rRPQYDHALdfa7VMO0GM<+Y6sQ)Ew|{cZR0)gGDUs*_@#Gpnhw2f>w8Z}KO)eZzPfGAN6#VfvETuN3joM_d=2 z1%X?~Q%qW^UN^=(G#i>tYc;W7KU3qJ$08`z_{sV6a+F|$xYEg#TYtWUHL_cJHlBAL>6gX!e5RtXi+`xL7UMh)hf|!#0BbP!L zbI1C&cMd09%VmYX$@|t*!yE|q4)bw+XFHS;>wX>VaVzvHV9KFKRm z1=WBQyMkurnqZ%dBi7kHy`$%7(v&`rO}p?fU`p=?F+ZiF^OIFB>f)Q1k^w{cevfb7 z+7l*=ZOn8U5O_B9W@=7bm~pVXY4u%UBlN7XIXsIx@ODga)KQoAP!%zH|Cs;KRg-7o zS?eh)l_Un31v*gDz7w~7gwZJY@u=c*GU(k5qcbhl3=c=%nM!azCGV?AvkDii*{8BE z$k5KJ`SWN&1CQ590jHN+JY`$)rS%+D|GDY!P-W)&3zBzU>2(*pG+M^ia(9#8C&g4f z&f2a(d7mR_$%=WN0Mm(2z}Vg>@jO>3d(mpvL!x`(P^f2Kh!^te12-#Cc*>%l0~@!@ zR%Kkz3U$k8M+^({bWj8Jo9ya&GJ;}mj+uy!gy!CTl-3ddLsZ((7~O!{jCOlKg|oh> z-=EXB7;H~N_Cx(<%V%%tRpi5OIs}*0iatq4t*tb@)W6I*lrm+sbB(&~rImIbDU!Di z<+Rczi*7b=)$C;;yxF}^dPm>}w5a#XQ!h0h?S3<6RIqZOm!)@qRpj_<{c*ZBmv3yt z-5X;f==7xCu{m;ZEA;?+)800LvU)1s_vIBZ>ERO|5gFG?-B6BqzDDp&qkL^=j&qun zTSxa!{Vi2R6ocMdw^jtVzShM=$~0lDSbi~EE0Pym9DdmPlpX6gbAo5mmK?T00qc;# z^_8`i8Y}Nx`Eu-YSHP2cHpcHPA2W|A_O|z6(uDd0TRv>E|HT*8cg*3Z3BQ|o=;v;AMOgg3B(y$N= z&MMNX!v)v#NJ09zflGmT5s&Ji&u;nU;WdKtJ?rBTx3GWanbj{cn-BaSX;if=_8_uc z#7GL_Vp=SMKU$uDEmVK#wj5NnCORl6f|+*_yVy82flwh;OC28K^y}Z*VeR`j_dS}G z-bWoM@{2!HW)(LcxgV4R$+(*Q9@D{#MQJ*cj|;;CrWZD^7qt_uZvy5l4Ml6(UAFeq zF-5tT%O?XTX$n>XDq7g-swb@yR`o55CAC*D7@s5bSHdwKS*NO{NYVdb;jcTV#ir7N zwR22&V9g}AzW26TgVlzXl|H?$y+^#Q>gUQ<_tEYeu^e#8O-q_#fyC-)$bzBicxMZ??cf?WXEf{7$4*#SNmkgLp+W9 z+U3PY9>N$+Zkt#)En?Qe z8h;a!!=oSBNo$BvU3Yz(pPTB7NKdXex=@88y@xG6nXtKn-&m49>YZGc>y9fWrax`ZF%ajb|ly+i$&+FG4=+r*170MZPZBR<;s( zTB+xGL|irWnpl^VMQAT5YxJ7MN0e3bS;g;0kk?nLSD?}>vRilXXrzAJ$A&%}Z}*tG zX67(^Z}|h!yH5i_gO~>qFn9ZN{&>+X@sXVgts~z2DJ=Uj4y;-~N6V6;O5ffznFQ?@ zX=2Z6Fk=Xw$1c*Sw-)P16}Rm{SN-o=f0Uf^0X=^bY4}_HDHP*s|BCMsJs#MwMk7$F zzV@be&);h2n-9ItnwMWe)O+rKqv&lRP@8<=0cq!X;DUmaN735B#;+HZpLKq|ITk(< zZW3pLYpO8%WBO|7$LN{|@$1`3R7)K@vE$a#R*m4lcG5(J#*!qsA zD-BDTd`lLz;VBaZ%k7N!H5MXJm?GAsgKF#TOj)C9Bek*bkW?Nva(PRl`v8G9OO@E;9wLD_dj@JH?B4Jk-g~e*VVjrt6+^X)K++zTKd#Z zh2%w?AaksIM{j;mC~#hb*Llo~sBOl@VaFxIKl1M(u{plFNV*huQG5K!V!H6SaQ|KkrTPM)K^;3k zH5#gtqJ3kGL*DmOr-Mm`{9?TDaE!x>mZ24;dP-wEWBRQGcGzNl16#10=`1rd9Z4+D zXR7+tc2w%euUOxD`y(+^zoVyUZ*an`uwf4UaMSEY5b5deyczVj(>z5M7N1nc?==#dYQIm26ok08WGP-OA zb4l6V%xK?+D`8s{8+csEVEHrkko@8yi}_QzV#RTd#nZf}U(?L6@{}d|a{<5OKqz<@StSP*J z^nhJ}pZubSt}MPvV&m%6yDtBRfxosrgs~#=tq*R=;#b*JT7t!~jXzsfcb2GiS476s zdT$axPJ~77sA40#TULW)dv1*R8b+SF`+3rejX~ruZM;pGqfoNiw^QzHiQ1@nN!hXW zUM37lV~X*Q7UJ_yZZEId^3%5O$K~ndvYx$S z^@?q(MUPT#GFgXebF2N}$-BJ96%@HraJzi{kH3A2?^2DSeesQ0FbTiO(@wPswROT1 z0{Uy;BcJh5s?QTLJ4ZJZQbhjpJzCCVJu4I}hTU-xp?J1Ybpl_$w6lh&C$P$`)U*vo zrKZw&<>H^uT%F6`-2V-aMwzdxd@YU=xslSG6W2;qcOLt=QT5Y;L@FolO!)KB`(8>G zx)@-5F5qSm8p&>rt2!FI48prV#*S{rxEr{-ST{nDvNWpHRg|nho@5cK;kT&gI83U_ zjna6LM6q#R-g{d%-~X}AQ_B40i~V0_&d7;k=QAjkfx%l+X&c;Blb-{qvM&F}Q==OZ zmL1=rTulho1};MtdUVmpU#Xeyeunr^Xo^}PTD)_2a3J~AMq}~{L_JxoH2+U{IPIal z?{cS=^A9g@3Qjf@!p_f9^@K2``86n;(qnFE2<;BlF;-ktH>_M!x9#xen^2r&nAp1U|TY@$-ydsS%EO#i@}SrIOls9wo4>GM0q# z@jY;jtsC6brhZ(n#0M&uQ7vOIJ}TYy-Jz!-V^G1>Nix;6JD~X!w;a z#2+h^NAdusHX$&InQQyo|^ zt`KK2y16y8Rey$_6LO$1R?Rm(M3G%x@rmBz3QhQH79Zwg$z-XWHtX5a)<|FDpASif zg>(L4VInZeMQFv%A?q9WRY49b2R$iR1NfL>%zuxQfTYl!(7QUa&Da2qZ&1O3p zvs&Dh&{O;RcNs%vPY$M*hOP!}XX~4B7P=$iyW3CJT+VjZ!}XXjGG50yBTLcAOP{g* zbwu$At*mERuO8%oZ~R`ndef%pmAm4(j19$24tk|7k`Lp>KaJN7?aH4B%YQq&5M3r1jkjtxqow2D2jg#KscTz`BE#$5c$9SCYi zJ(|Qu^lOF(_irXDx362V|C&Z6e3@2UsO;7o03%73t182#ZSG#E293|3#73?bStT4^ z^JHQI=-j^ekW@u6L*%q9x-ge_Bx(a(CQ>mSt(m&RU| zyMD{0M!x%FF7NvgWb+0Y$0%Q09_YnR+WJX&CeC7ow2BV$*%XD%kIGuo?XMdMSy@**5qSfd6 zUVISuEi{%Mn6@X|a&1rdzkbhcWl-!Ad!#?IsF~^T!0l_&Pp;P;KT+PImuc1DDktvH z&xbi|b_g+;yt#b)o1hK*^!!j0OMo0dxxHBR=ui>f zC+Rgm1zr&QDE!@y_pVELNN_yq5{MfOU-hLu%ketap5m95lV{B*>MEvH9dhhbe@gdF z*KY=&4ESTDbsL_H%(m&~S>zb+u~u}|D1Nbkhc|-R*e=xQcS6L6=w=FBCGQc4oG!Y_ zm!7m^cf1glg77S%i)W%NZ+c!uT_Z%|Q)9GWmVD{YY}4zEg^k9y+#vf$Zu*RBL;DW_ z;$=sA1?5fOs02pZexDD1mgM*E7n*p?DqY*`q6F86A5X`Ti$sOY*7~4kV@-KnCnMdX zH|<5hhkjW6tXX)HBu$UTig%!KOoQM%>OyBjd|ULz0N90wXA zbC2B53%J*#P1LL^YdJ$Z?wxaRhM#STP`5M==Ic_U(Pfrq$?Kf-w-lk0XGS?{GD(RN zf6Vq81r4+n{icP-@KRj$1_NgENl9950Z0wbkkfV5-IA+`4`>!18zCd zaFy`1&k`T_+jB4{v8cSA-t{4+m~eHpjPDBJVhE8p!|-(^PUTDTVq%xxJ0!mJz9ZFO zdmyV45#{MvLfJ~MJo?12g&JTG0x`&b3B>(d3*$DWUsdo>i;tH_HKXoA6|1b@6)oN1 zKsrCRKkIv|xf20RPwJOCq!3zlVNBuR`?MeWLgO!D{AxpsgZ_Idyp6P1E)T@6*BLl@ zvphX?P+i>rF~y^)QaI3g^LzV^ReH>&<|>i1d-epKe6G`dXNP>cJb|#n(xCk_A-k0i z-*ct!Wi(9PZeBh9qw8e{ZsVwv@tjJM$H#9sSAj7n8e6{~(^;oflgAq{SZp<_5u#XqA}4%GS8x6l3&&;(_FqsGF6z zRJGN5>2Zj}P|Out=&GJhm67=s zJQMc{4Y{`Obb|uIfPLFWxU=PU3$@|H>V+?ZD(>wvg`A#$&JBHZI<+65Ni5J>+7L&>UL5KM9UnRqOYW7+tEEVKv7cXg> zjFj2NU4N1@NuH`%f01KKZfKpf&bxMDsOR`zyt09{sB1=!xnh;%AX!Z!{N&^@eBgwJ z-N6JNOXZZ;YxgLJ0>-3VdF?0ij+nf-N+95iE-LDkpfu~KHow|m?kjP}-}Q<6HpsZO z99p-co5~mULEM#ZypthGTSw%Id%zCLWkM+>L%ffr1Dx0s1HDajwD|jon0@}=!5uC{y*aUq4WR% literal 0 HcmV?d00001 diff --git a/assets/architektur.png b/assets/architektur.png new file mode 100644 index 0000000000000000000000000000000000000000..63704627f58635c3eb9d56f8fe8e401beaf4359c GIT binary patch literal 66983 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 PYo>VUs9f@&r!N0L5E2^0 literal 0 HcmV?d00001 diff --git a/create_presentation.py b/create_presentation.py new file mode 100644 index 0000000..954e81a --- /dev/null +++ b/create_presentation.py @@ -0,0 +1,969 @@ +#!/usr/bin/env python3 +""" +Moderne Ansible-Präsentation — vollständiger Generator (v3). + +19 Folien (16:9) mit den Ansible-Brandfarben (Rot #EE0000, Anthrazit #1A1918). +Fonts: Carlito (Body) + DejaVu Sans Mono (Code) — auf dem Zielsystem installiert +und von OnlyOffice korrekt gerendert (kein Font-Substitution-Bruch). + +Behandelt: + - Was ist Ansible? / Aufbau & Architektur + - YAML-Syntax, Playbooks, Module, Ad-hoc-Befehle + - Jinja2 (Templating) und Gather Facts + - Variablen-Auflösung (Präzedenz) + - FQCN (Fully Qualified Collection Name) + - Collections + - Rollen (Roles) + - Praxisbeispiel + Quellen + +Benötigt: pip install python-pptx matplotlib Pillow +Bilder: Ansible-Logo (assets/ansible_mark_*.png, Quelle: Wikimedia Commons) + Architektur-Diagramm wird automatisch erzeugt (assets/architektur.png) +""" + +import os +import re +import matplotlib +matplotlib.use("Agg") +import matplotlib.pyplot as plt +from matplotlib.patches import FancyBboxPatch + +from pptx import Presentation +from pptx.util import Inches, Pt +from pptx.enum.text import PP_ALIGN, MSO_ANCHOR +from pptx.enum.shapes import MSO_SHAPE +from pptx.dml.color import RGBColor + +# --------------------------------------------------------------------------- +# Pfade & Farben +# --------------------------------------------------------------------------- +BASE = os.path.dirname(os.path.abspath(__file__)) +ASSETS = os.path.join(BASE, "assets") +os.makedirs(ASSETS, exist_ok=True) + +LOGO_RED = os.path.join(ASSETS, "ansible_mark_red.png") +LOGO_WHITE = os.path.join(ASSETS, "ansible_mark_white.png") +ARCH = os.path.join(ASSETS, "architektur.png") + +BLACK = RGBColor(0x1A, 0x19, 0x18) +RED = RGBColor(0xEE, 0x00, 0x00) +DARKRED = RGBColor(0xB0, 0x00, 0x00) +WHITE = RGBColor(0xFF, 0xFF, 0xFF) +LIGHT = RGBColor(0xF7, 0xF7, 0xF7) +CARD = RGBColor(0xFF, 0xFF, 0xFF) +GRAY = RGBColor(0x55, 0x55, 0x55) # dunkler für bessere Lesbarkeit +MIDGRAY = RGBColor(0x8A, 0x8A, 0x8A) +BORDER = RGBColor(0xDD, 0xDD, 0xDD) +CODE_BG = RGBColor(0x1E, 0x1E, 0x1E) +CODE_CMT= RGBColor(0x8B, 0xC3, 0x7C) # grün für Kommentare +CODE_KEY= RGBColor(0x7E, 0xC8, 0xFF) # hellblau für Schlüssel +CODE_MOD= RGBColor(0xFF, 0x6B, 0x6B) # rot für Module/FQCN + +# Fonts: auf dem Zielsystem installiert (OnlyOffice-kompatibel) +FONT = "Carlito" +FONT_MONO = "DejaVu Sans Mono" + + +# --------------------------------------------------------------------------- +# Architektur-Diagramm (matplotlib) +# --------------------------------------------------------------------------- +def make_architecture_diagram(path): + C_RED, C_BLACK, C_GRAY = "#EE0000", "#1A1918", "#6E6E6E" + fig, ax = plt.subplots(figsize=(11, 5.0), dpi=170) + ax.set_xlim(0, 11); ax.set_ylim(0, 5.0); ax.axis("off") + + def box(x, y, w, h, fc, ec, lw=1.5, r=0.12): + p = FancyBboxPatch((x, y), w, h, boxstyle=f"round,pad=0.06,rounding_size={r}", + fc=fc, ec=ec, lw=lw) + ax.add_patch(p); return p + + box(0.5, 0.7, 4.3, 3.7, "#1A1918", C_RED, lw=2.5) + ax.text(2.65, 3.95, "CONTROL NODE", ha="center", va="center", + color="white", fontsize=15, fontweight="bold") + ax.text(2.65, 3.45, "Ansible installiert", ha="center", va="center", + color=C_RED, fontsize=10.5, fontweight="bold") + items = ["Playbooks (YAML)", "Inventory", "Module & Plugins", "Rollen & Collections"] + for i, it in enumerate(items): + y = 2.85 - i * 0.5 + box(0.95, y - 0.18, 3.4, 0.36, "#2B2B2B", "none") + ax.text(2.65, y, it, ha="center", va="center", color="white", fontsize=10.5) + + ax.annotate("", xy=(5.75, 2.6), xytext=(4.9, 2.6), + arrowprops=dict(arrowstyle="-|>", color=C_RED, lw=2.6)) + ax.text(5.32, 3.05, "SSH", ha="center", va="center", color=C_RED, + fontsize=12, fontweight="bold") + ax.text(5.32, 2.1, "agentenlos", ha="center", va="center", color=C_GRAY, fontsize=8.5) + + box(5.95, 0.7, 4.6, 3.7, "#F7F7F7", C_BLACK, lw=1.5) + ax.text(8.25, 3.95, "MANAGED NODES", ha="center", va="center", + color=C_BLACK, fontsize=15, fontweight="bold") + ax.text(8.25, 3.45, "Ziel-Systeme — kein Agent nötig", ha="center", va="center", + color=C_GRAY, fontsize=10) + nodes = [("Web-Server", "Linux"), ("Datenbank", "Linux"), ("App-Server", "Windows")] + xs = [6.6, 8.25, 9.9] + for (name, os_), x in zip(nodes, xs): + box(x - 0.62, 1.0, 1.24, 1.5, "white", C_RED, lw=2, r=0.1) + ax.text(x, 1.95, name, ha="center", va="center", color=C_BLACK, + fontsize=10, fontweight="bold") + ax.text(x, 1.4, os_, ha="center", va="center", color=C_GRAY, fontsize=9) + + fig.savefig(path, bbox_inches="tight", facecolor="white", transparent=False) + plt.close(fig) + return path + + +# --------------------------------------------------------------------------- +# pptx-Helfer +# --------------------------------------------------------------------------- +prs = Presentation() +prs.slide_width = Inches(13.333) +prs.slide_height = Inches(7.5) +BLANK = prs.slide_layouts[6] + + +def new_slide(bg=None): + s = prs.slides.add_slide(BLANK) + if bg is not None: + r = s.shapes.add_shape(MSO_SHAPE.RECTANGLE, 0, 0, prs.slide_width, prs.slide_height) + r.fill.solid(); r.fill.fore_color.rgb = bg + r.line.fill.background(); r.shadow.inherit = False + return s + + +def rect(slide, x, y, w, h, fill, line=None, line_w=1.0, rounded=False, radius=0.08): + shp_type = MSO_SHAPE.ROUNDED_RECTANGLE if rounded else MSO_SHAPE.RECTANGLE + shp = slide.shapes.add_shape(shp_type, Inches(x), Inches(y), Inches(w), Inches(h)) + if fill is None: + shp.fill.background() + else: + shp.fill.solid(); shp.fill.fore_color.rgb = fill + if line is None: + shp.line.fill.background() + else: + shp.line.color.rgb = line; shp.line.width = Pt(line_w) + shp.shadow.inherit = False + if rounded: + try: + shp.adjustments[0] = radius + except Exception: + pass + return shp + + +def text(slide, x, y, w, h, runs, size=14, bold=False, color=BLACK, + align=PP_ALIGN.LEFT, font=FONT, anchor=MSO_ANCHOR.TOP, leading=1.0, + space_after=0): + box = slide.shapes.add_textbox(Inches(x), Inches(y), Inches(w), Inches(h)) + tf = box.text_frame + tf.word_wrap = True + tf.vertical_anchor = anchor + tf.margin_left = 0; tf.margin_right = 0; tf.margin_top = 0; tf.margin_bottom = 0 + + if isinstance(runs, str): + runs = [runs] + + for i, item in enumerate(runs): + p = tf.paragraphs[0] if i == 0 else tf.add_paragraph() + p.alignment = align + p.line_spacing = leading + if space_after: + p.space_after = Pt(space_after) + if isinstance(item, str): + item = {"t": item} + elif isinstance(item, tuple): + item = {"t": item[0], **item[1]} + r = p.add_run(); r.text = item["t"] + r.font.size = Pt(item.get("size", size)) + r.font.bold = item.get("bold", bold) + r.font.italic = item.get("italic", False) + r.font.name = item.get("font", font) + r.font.color.rgb = item.get("color", color) + return box + + +def header(slide, kicker, title, dark=False): + text(slide, 0.55, 0.42, 12.2, 0.3, kicker.upper(), + size=11, bold=True, color=RED, font=FONT) + text(slide, 0.55, 0.75, 12.2, 0.75, title, + size=30, bold=True, color=WHITE if dark else BLACK) + logo = LOGO_RED if not dark else LOGO_WHITE + if os.path.exists(logo): + slide.shapes.add_picture(logo, Inches(12.35), Inches(0.25), Inches(0.62), Inches(0.76)) + + +def footer(slide, num): + text(slide, 0.55, 7.08, 9.0, 0.3, "Ansible — moderne Automatisierung", + size=8, color=MIDGRAY) + text(slide, 12.2, 7.08, 0.6, 0.3, str(num), size=9, color=MIDGRAY, align=PP_ALIGN.RIGHT) + + +def _set_run(r, text, font_size, color, bold=False): + r.text = text + r.font.size = Pt(font_size) + r.font.name = FONT_MONO + r.font.color.rgb = color + r.font.bold = bold + + +def _style_kv(p, text, font_size): + if ":" in text: + key, colon, rest = text.partition(":") + is_mod = ("ansible." in key) or ("community." in key) + _set_run(p.add_run(), key, font_size, + CODE_MOD if is_mod else CODE_KEY, bold=is_mod) + _set_run(p.add_run(), colon + rest, font_size, WHITE) + else: + _set_run(p.add_run(), text, font_size, WHITE) + + +def _style_code_line(p, line, font_size): + """Syntax-Einfärbung unter Erhalt der Einrückung.""" + m = re.match(r'^(\s*)(.*)$', line) + lead, rest = m.group(1), m.group(2) + if lead: + _set_run(p.add_run(), lead, font_size, WHITE) + if rest.startswith("#"): + _set_run(p.add_run(), rest, font_size, CODE_CMT) + return + # FQCN (namespace.collection.modul) -> rot, fett + if re.match(r'^[A-Za-z0-9_]+\.[A-Za-z0-9_]+\.[A-Za-z0-9_]+$', rest): + _set_run(p.add_run(), rest, font_size, CODE_MOD, bold=True) + return + if rest.startswith("- "): + _set_run(p.add_run(), "- ", font_size, CODE_MOD) + _style_kv(p, rest[2:], font_size) + return + _style_kv(p, rest, font_size) + + +def code_block(slide, x, y, w, lines, font_size=11, title=None, title_color=RED): + """Dunkler Code-Block mit automatischer Höhe (kein Überlauf).""" + line_h = font_size * 1.32 / 72.0 + pad_top = 0.18 + pad_bot = 0.16 + title_h = 0.38 if title else 0.0 + n = len(lines) if lines else 1 + h = title_h + n * line_h + pad_top + pad_bot + + rect(slide, x, y, w, h, CODE_BG, line=BORDER, line_w=0.75, rounded=True, radius=0.04) + if title: + rect(slide, x, y, w, 0.32, CODE_BG, line=BORDER, line_w=0.75, rounded=True, radius=0.14) + text(slide, x + 0.25, y + 0.035, w - 0.5, 0.25, title, + size=9.5, bold=True, color=title_color, font=FONT_MONO) + y += title_h + tb = slide.shapes.add_textbox(Inches(x + 0.22), Inches(y + pad_top), + Inches(w - 0.44), Inches(h - pad_top - pad_bot)) + tf = tb.text_frame; tf.word_wrap = True + tf.margin_left = 0; tf.margin_right = 0; tf.margin_top = 0; tf.margin_bottom = 0 + for i, line in enumerate(lines): + p = tf.paragraphs[0] if i == 0 else tf.add_paragraph() + p.line_spacing = 1.05 + if line.strip() == "": + _set_run(p.add_run(), " ", font_size, WHITE) + continue + _style_code_line(p, line, font_size) + return h + + +def card(slide, x, y, w, h, icon, title, body, accent=RED): + rect(slide, x, y, w, h, CARD, line=BORDER, line_w=1.0, rounded=True, radius=0.06) + if icon: + circ = slide.shapes.add_shape(MSO_SHAPE.OVAL, Inches(x + 0.2), Inches(y + 0.2), + Inches(0.44), Inches(0.44)) + circ.fill.solid(); circ.fill.fore_color.rgb = accent + circ.line.fill.background(); circ.shadow.inherit = False + text(slide, x + 0.2, y + 0.2, 0.44, 0.44, icon, size=14, bold=True, + color=WHITE, align=PP_ALIGN.CENTER, anchor=MSO_ANCHOR.MIDDLE) + text(slide, x + 0.78, y + 0.2, w - 0.95, 0.4, title, size=15, bold=True, color=BLACK) + else: + text(slide, x + 0.22, y + 0.2, w - 0.44, 0.4, title, size=15, bold=True, color=BLACK) + text(slide, x + 0.22, y + 0.72, w - 0.44, h - 0.85, body, size=11, color=GRAY, leading=1.05) + + +def kv_rows(slide, x, y, w, rows, key_w, name_size=11, desc_size=10.5, gap=0.42): + """Monospace-Schlüssel + Beschreibung in Zeilen. rows = [(key, desc), ...]""" + yy = y + for key, desc in rows: + text(slide, x, yy, key_w, 0.3, key, size=name_size, bold=True, + color=DARKRED, font=FONT_MONO) + text(slide, x + key_w, yy, w - key_w, 0.4, desc, size=desc_size, color=GRAY, leading=1.0) + yy += gap + + +# --------------------------------------------------------------------------- +# Diagramm erzeugen +# --------------------------------------------------------------------------- +make_architecture_diagram(ARCH) + + +# =========================================================================== +# FOLIE 1 — Titel (dunkel) +# =========================================================================== +s = new_slide(BLACK) +rect(s, 9.0, 0, 4.333, 7.5, RED, rounded=False) +if os.path.exists(LOGO_WHITE): + s.shapes.add_picture(LOGO_WHITE, Inches(0.9), Inches(1.35), Inches(2.1), Inches(2.59)) +text(s, 0.9, 4.15, 7.5, 0.4, "MODERNE IT-AUTOMATISIERUNG", size=14, bold=True, color=RED) +text(s, 0.9, 4.55, 8.0, 1.3, "Ansible", size=60, bold=True, color=WHITE) +text(s, 0.9, 5.75, 7.5, 0.4, "Agentenlos · Idempotent · Deklarativ · YAML", + size=16, color=RGBColor(0xD8, 0xD8, 0xD8)) +text(s, 0.9, 6.55, 7.5, 0.4, + "Was es ist · Aufbau · Syntax · Ad-hoc · Jinja2 · Facts · FQCN · Collections · Rollen", + size=12, color=RGBColor(0x9A, 0x9A, 0x9A)) +text(s, 9.5, 1.6, 3.3, 0.3, "INHALT", size=12, bold=True, color=WHITE) +agenda = [ + "1. Was ist Ansible?", + "2. Aufbau & Architektur", + "3. YAML, Playbooks & Ad-hoc", + "4. Module, Jinja2 & Facts", + "5. Variablen & Auflösung", + "6. FQCN & Collections", + "7. Rollen & Praxis", +] +text(s, 9.5, 2.15, 3.3, 4.0, agenda, size=14, color=WHITE, leading=1.5) + + +# =========================================================================== +# FOLIE 2 — Was ist Ansible? +# =========================================================================== +s = new_slide(LIGHT) +header(s, "Grundlagen", "Was ist Ansible?") +rect(s, 0.55, 1.55, 8.0, 1.15, BLACK, rounded=True, radius=0.08) +text(s, 0.85, 1.75, 7.4, 0.75, + "Ansible ist ein Open-Source-Tool zur Automatisierung von IT-Aufgaben — " + "Provisionierung, Konfigurationsmanagement und Anwendungs-Deployment.", + size=15, color=WHITE, leading=1.15) +card(s, 0.55, 3.0, 4.0, 1.8, "A", "Agentenlos", + "Kein Agent auf Zielsystemen nötig. Kommunikation über SSH (Linux) bzw. WinRM (Windows).") +card(s, 4.75, 3.0, 4.0, 1.8, "P", "Push-basiert", + "Der Control Node stößt Änderungen aktiv an. Kein Pull-Mechanismus, kein ständiger Dienst.") +card(s, 0.55, 5.0, 4.0, 1.8, "D", "Deklarativ", + "Du beschreibst den gewünschten Ziel-Zustand in YAML — nicht die einzelnen Schritte.") +card(s, 4.75, 5.0, 4.0, 1.8, "I", "Idempotent", + "Mehrfaches Ausführen führt zum selben Ergebnis — keine doppelten Änderungen.") +if os.path.exists(LOGO_RED): + s.shapes.add_picture(LOGO_RED, Inches(9.4), Inches(1.9), Inches(1.7), Inches(2.09)) +text(s, 9.15, 4.1, 3.6, 0.3, "KEY FACTS", size=11, bold=True, color=RED) +facts = [("Red Hat / IBM", "Open-Source-Projekt"), + ("Python", "Implementiert in Python"), + ("4000+", "Module verfügbar"), + ("2012", "Erstveröffentlichung")] +yy = 4.5 +for big, small in facts: + text(s, 9.15, yy, 1.8, 0.5, big, size=22, bold=True, color=BLACK) + text(s, 10.95, yy + 0.08, 2.2, 0.5, small, size=11, color=GRAY, leading=1.0) + yy += 0.62 +footer(s, 2) + + +# =========================================================================== +# FOLIE 3 — Aufbau & Architektur +# =========================================================================== +s = new_slide(WHITE) +header(s, "Architektur", "Wie ist Ansible aufgebaut?") +if os.path.exists(ARCH): + from PIL import Image as _Img + _dw, _dh = _Img.open(ARCH).size + _ar = _dw / _dh + _w = 8.1 + _h = _w / _ar + s.shapes.add_picture(ARCH, Inches(0.55), Inches(1.55), Inches(_w), Inches(_h)) +text(s, 8.95, 1.6, 3.9, 0.3, "KOMPONENTEN", size=11, bold=True, color=RED) +comp = [ + ("Control Node", "Rechner, auf dem Ansible installiert ist; enthält Playbooks & Inventory."), + ("Managed Nodes", "Zielsysteme, die über SSH/WinRM erreicht werden."), + ("Inventory", "Liste aller Hosts und Gruppen (INI oder YAML)."), + ("Module", "Bausteine, die eine Aufgabe ausführen (z.B. copy, apt)."), +] +yy = 2.0 +for t, d in comp: + text(s, 8.95, yy, 3.9, 0.3, t, size=13, bold=True, color=BLACK) + text(s, 8.95, yy + 0.28, 3.9, 0.9, d, size=10.5, color=GRAY, leading=1.05) + yy += 1.22 +footer(s, 3) + + +# =========================================================================== +# FOLIE 4 — Kernkonzepte +# =========================================================================== +s = new_slide(LIGHT) +header(s, "Architektur", "Vier Kernkonzepte") +card(s, 0.55, 1.6, 6.0, 2.4, "1", "Playbooks", + "YAML-Dateien, die beschreiben, was auf welchen Hosts passieren soll. " + "Ein Playbook enthält ein oder mehrere Plays mit Tasks (Aufgaben).") +card(s, 6.85, 1.6, 6.0, 2.4, "2", "Inventory", + "Die Host-Liste. Definiert Server, Gruppen und Variablen. Formate: INI oder YAML. " + "Auch dynamisch (Cloud, VMware) möglich.") +card(s, 0.55, 4.3, 6.0, 2.4, "3", "Module", + "Kleine Programme, die eine konkrete Aktion ausführen: Paket installieren, Datei kopieren, " + "Dienst starten. Werden über FQCN referenziert.") +card(s, 6.85, 4.3, 6.0, 2.4, "4", "Rollen & Collections", + "Rollen bündeln Tasks/Templates/Variablen zu wiederverwendbaren Einheiten. " + "Collections verteilen Module, Rollen & Plugins.") +footer(s, 4) + + +# =========================================================================== +# FOLIE 5 — YAML-Syntax +# =========================================================================== +s = new_slide(WHITE) +header(s, "Syntax", "YAML — die Sprache von Ansible") +text(s, 0.55, 1.6, 5.6, 0.3, "GRUNDREGELN", size=11, bold=True, color=RED) +rules = [ + ("Schlüssel: Wert", "Einfache Zuweisungen, getrennt durch Doppelpunkt."), + ("Einrückung", "Struktur über Leerzeichen (2 Spaces, KEINE Tabs)."), + ("Listen", "Aufzählungen mit Bindestrich (-)."), + ("Lesbar", "YAML ist menschenlesbar, kein Code-Zwang."), +] +yy = 2.0 +for t, d in rules: + text(s, 0.55, yy, 5.6, 0.3, t, size=13, bold=True, color=BLACK) + text(s, 0.55, yy + 0.28, 5.6, 0.7, d, size=11, color=GRAY, leading=1.05) + yy += 1.05 +code_block(s, 6.5, 1.6, 6.3, [ + "# Inventory (hosts.yml)", + "all:", + " hosts:", + " webserver:", + " ansible_host: 192.168.1.10", + " database:", + " ansible_host: 192.168.1.20", + "", + "# Schlüssel-Wert", + "name: \"Mein Webserver\"", + "paket: nginx", + "", + "# Liste", + "pakete:", + " - nginx", + " - git", + " - curl", +], font_size=11) +footer(s, 5) + + +# =========================================================================== +# FOLIE 6 — Playbook & Tasks +# =========================================================================== +s = new_slide(WHITE) +header(s, "Syntax", "Ein Playbook in der Praxis") +text(s, 0.55, 1.55, 5.6, 1.4, + [("Ein Playbook ", {}), + ("definiert, was passieren soll. ", {}), + ("plays", {"bold": True, "color": RED}), + (" wirken auf ", {}), + ("hosts", {"bold": True, "color": RED}), + (", jede ", {}), + ("task", {"bold": True, "color": RED}), + (" ruft genau ein ", {}), + ("Modul", {"bold": True, "color": RED}), + (" auf.", {})], + size=12.5, color=BLACK, leading=1.2) +code_block(s, 6.5, 1.55, 6.3, [ + "---", + "- name: Webserver konfigurieren", + " hosts: webserver", + " become: true", + "", + " tasks:", + " - name: nginx installieren", + " ansible.builtin.apt:", + " name: nginx", + " state: present", + "", + " - name: Dienst starten", + " ansible.builtin.service:", + " name: nginx", + " state: started", + " enabled: true", +], font_size=10.5, title="site.yml") +footer(s, 6) + + +# =========================================================================== +# FOLIE 7 — Module +# =========================================================================== +s = new_slide(LIGHT) +header(s, "Syntax", "Module — die Arbeitspferde") +text(s, 0.55, 1.6, 12.2, 0.8, + "Ein Modul ist ein kleines, eigenständiges Programm, das eine Aufgabe auf dem " + "Zielsystem ausführt. Ansible bringt hunderte Module mit — von Paketverwaltung " + "über Datei-Operationen bis Cloud-Anbindung.", + size=13, color=BLACK, leading=1.2) +mods = [ + ("apt / dnf", "Pakete installieren (Debian/RedHat)"), + ("copy / file", "Dateien kopieren & Rechte setzen"), + ("service", "Dienste starten / stoppen / aktivieren"), + ("template", "Jinja2-Templates rendern"), + ("user / group", "Benutzer & Gruppen verwalten"), + ("command / shell", "Beliebige Befehle ausführen"), +] +for i, (t, d) in enumerate(mods): + col = i % 3; row = i // 3 + card(s, 0.55 + col * 4.2, 2.6 + row * 1.75, 3.95, 1.5, "•", t, d) +text(s, 0.55, 6.15, 12.2, 0.6, + [("Wichtig: Module werden heute über den ", {}), + ("FQCN", {"bold": True, "color": RED}), + (" referenziert (z.B. ", {}), + ("ansible.builtin.apt", {"font": FONT_MONO, "color": DARKRED}), + (").", {})], + size=12, color=BLACK) +footer(s, 7) + + +# =========================================================================== +# FOLIE 8 — Ad-hoc-Befehle +# =========================================================================== +s = new_slide(WHITE) +header(s, "Syntax", "Ad-hoc-Befehle — Ansible ohne Playbook") +text(s, 0.55, 1.55, 5.7, 1.25, + [("Mit dem ", {}), + ("ansible", {"font": FONT_MONO, "color": DARKRED, "bold": True}), + ("-CLI lassen sich einzelne Module direkt ausführen — ohne Playbook. Ideal " + "für schnelle Checks und einmalige Aktionen.", {})], + size=12.5, color=BLACK, leading=1.2) +text(s, 0.55, 2.85, 5.7, 0.3, "AUFBAU", size=11, bold=True, color=RED) +code_block(s, 0.55, 3.2, 5.7, [ + "ansible -m ", + " -a \"\"", +], font_size=11, title="Kommando") +text(s, 0.55, 4.55, 5.7, 0.3, "WICHTIGE OPTIONEN", size=11, bold=True, color=RED) +kv_rows(s, 0.55, 4.95, 2.6, [ + ("-m", "Modul"), + ("-a", "Argumente"), + ("-i", "Inventory"), +], key_w=0.55, gap=0.4) +kv_rows(s, 3.4, 4.95, 2.6, [ + ("-b", "become (sudo)"), + ("-u", "Benutzer"), +], key_w=0.55, gap=0.4) +code_block(s, 6.6, 1.55, 6.2, [ + "# Erreichbarkeit testen", + "ansible all -m ping", + "", + "# Facts anzeigen", + "ansible webserver -m setup", + "", + "# Paket installieren", + "ansible webserver -m apt", + " -a \"name=nginx state=present\"", + "", + "# Dienst neu starten", + "ansible webserver -m service", + " -a \"name=nginx state=restarted\"", +], font_size=10, title="Beispiele") +footer(s, 8) + + +# =========================================================================== +# FOLIE 9 — Jinja2 (Templating) +# =========================================================================== +s = new_slide(WHITE) +header(s, "Syntax", "Jinja2 — dynamische Inhalte") +text(s, 0.55, 1.55, 12.2, 0.7, + "Jinja2 ist die Template-Engine von Ansible. Damit werden Variablen aufgelöst " + "und Dateien dynamisch erzeugt — in Playbooks, aber vor allem in Templates (.j2).", + size=13, color=BLACK, leading=1.15) +card(s, 0.55, 2.4, 4.0, 1.7, "1", "Variable auflösen", + [("{{ variable }}", {"font": FONT_MONO, "color": DARKRED, "bold": True}), + (" setzt den Wert einer Variablen an die Stelle im Text ein.", {})]) +card(s, 4.75, 2.4, 4.0, 1.7, "2", "Filter anwenden", + [("{{ wert | filter }}", {"font": FONT_MONO, "color": DARKRED, "bold": True}), + (" transformiert Werte (z.B. ", {}), + ("upper", {"font": FONT_MONO}), + (", ", {}), + ("default", {"font": FONT_MONO}), + (").", {})]) +card(s, 8.95, 2.4, 3.85, 1.7, "3", "Template-Dateien", + [("Dateien mit Endung ", {}), + (".j2", {"font": FONT_MONO, "color": DARKRED, "bold": True}), + (" werden vom Modul ", {}), + ("template", {"font": FONT_MONO}), + (" gerendert.", {})]) +code_block(s, 0.55, 4.35, 6.0, [ + "# Variablen auflösen", + "msg: \"Hallo {{ benutzer }}\"", + "", + "# Filter anwenden", + "name: \"{{ name | upper }}\"", + "port: \"{{ port | default(80) }}\"", +], font_size=10.5, title="Variablen & Filter") +code_block(s, 6.85, 4.35, 6.0, [ + "# nginx.conf.j2", + "server {", + " listen {{ nginx_port }};", + " server_name {{ domain }};", + " root {{ web_root }};", + "}", +], font_size=10.5, title="nginx.conf.j2") +footer(s, 9) + + +# =========================================================================== +# FOLIE 10 — Gather Facts +# =========================================================================== +s = new_slide(WHITE) +header(s, "Facts", "Gather Facts — Systeminformationen") +text(s, 0.55, 1.5, 12.2, 0.7, + [("Ansible sammelt beim Start automatisch ", {}), + ("Facts", {"bold": True}), + (" (Systeminfos) über jeden Host — über das Modul ", {}), + ("setup", {"font": FONT_MONO, "color": DARKRED}), + (", standardmäßig ", {}), + ("gather_facts: true", {"font": FONT_MONO, "color": DARKRED}), + (".", {})], + size=13, color=BLACK, leading=1.15) + +# Links: Facts als 2-Spalten-Raster (Name oben, Beschreibung darunter) +text(s, 0.55, 2.4, 6.6, 0.3, "WAS MAN AUSLESEN KANN", size=11, bold=True, color=RED) +facts = [ + ("ansible_os_family", "Betriebssystem-Familie"), + ("ansible_distribution", "z.B. Ubuntu, Debian"), + ("ansible_hostname", "Hostname des Systems"), + ("ansible_default_ipv4.address", "IP-Adresse"), + ("ansible_memtotal_mb", "Arbeitsspeicher (MB)"), + ("ansible_processor_vcpus", "CPU-Kerne"), +] +for i, (name, desc) in enumerate(facts): + col = i % 2 + row = i // 2 + cx = 0.55 + col * 3.3 + cy = 2.9 + row * 1.3 + text(s, cx, cy, 3.2, 0.35, name, size=11.5, bold=True, + color=DARKRED, font=FONT_MONO) + text(s, cx, cy + 0.38, 3.2, 0.5, desc, size=11, color=GRAY, leading=1.0) + +# Rechts: ein einzelner, klarer Code-Block (Zugriff + Custom Facts) +code_block(s, 7.25, 2.4, 5.55, [ + "# Zugriff im Playbook", + "- name: OS anzeigen", + " ansible.builtin.debug:", + " msg: \"{{ ansible_distribution }}\"", + "", + "# Fakten deaktivieren (schneller)", + "gather_facts: false", + "", + "# Eigene Facts setzen:", + "# Datei: /etc/ansible/facts.d/app.fact", + "# Abruf: {{ ansible_local.app.version }}", +], font_size=11, title="Zugriff & Custom Facts") +footer(s, 10) + + +# =========================================================================== +# FOLIE 11 — Variablen & Auflösung (Präzedenz) +# =========================================================================== +s = new_slide(LIGHT) +header(s, "Variablen", "Variablen definieren & auflösen") +text(s, 0.55, 1.55, 5.7, 0.3, "WO KOMMEN SIE HER?", size=11, bold=True, color=RED) +sources = [ + ("Inventory", "host_vars / group_vars"), + ("Playbook", "vars: / vars_files:"), + ("Rollen", "vars/ & defaults/"), + ("Facts", "automatisch gesammelt"), + ("Laufzeit", "register & set_fact"), + ("CLI", "Extra-Variablen (-e)"), +] +yy = 2.0 +for t, d in sources: + text(s, 0.55, yy, 2.2, 0.3, t, size=12.5, bold=True, color=BLACK) + text(s, 2.9, yy, 3.3, 0.3, d, size=11, color=GRAY, font=FONT_MONO) + yy += 0.55 +text(s, 6.85, 1.55, 6.0, 0.3, "PRÄZEDENZ — WER GEWINNT?", size=11, bold=True, color=RED) +text(s, 6.85, 1.9, 6.0, 0.3, "Oben gewinnt — von höchster zu niedrigster Priorität:", + size=10, color=GRAY) +prec = [ + ("Extra-Variablen", "ansible-playbook ... -e key=wert"), + ("Task-/Block-Variablen", "vars: direkt an der Aufgabe"), + ("set_fact / register", "Werte aus der Laufzeit"), + ("Rollen-Variablen", "roles/.../vars/main.yml"), + ("Playbook-Variablen", "vars: im Play"), + ("host_vars / group_vars", "aus dem Inventory"), + ("Rollen-Defaults", "roles/.../defaults/main.yml"), +] +yy = 2.25 +for i, (t, d) in enumerate(prec, 1): + rect(s, 6.85, yy, 0.4, 0.4, RED, rounded=True, radius=0.3) + text(s, 6.85, yy + 0.03, 0.4, 0.34, str(i), size=13, bold=True, + color=WHITE, align=PP_ALIGN.CENTER) + text(s, 7.4, yy + 0.02, 3.6, 0.34, t, size=12, bold=True, color=BLACK) + text(s, 11.0, yy + 0.02, 1.85, 0.34, d, size=9, color=GRAY, font=FONT_MONO) + yy += 0.5 +text(s, 6.85, yy + 0.1, 6.0, 0.6, + [("Faustregel: ", {"bold": True, "color": RED}), + ("je spezifischer die Quelle, desto höher die Priorität.", {})], + size=11, color=GRAY) +footer(s, 11) + + +# =========================================================================== +# FOLIE 12 — FQCN (Definition) +# =========================================================================== +s = new_slide(WHITE) +header(s, "FQCN", "FQCN — Fully Qualified Collection Name") +rect(s, 0.55, 1.55, 12.2, 0.95, LIGHT, line=BORDER, line_w=1.0, rounded=True, radius=0.1) +text(s, 0.85, 1.77, 11.6, 0.55, + [("FQCN = ", {"bold": True, "color": RED}), + ("eindeutige, vollständige Referenz auf ein Modul oder Plugin.", {})], + size=16, color=BLACK) +text(s, 0.85, 2.75, 11.6, 0.6, "namespace · collection · modul", + size=28, bold=True, color=BLACK) +code_block(s, 0.55, 3.6, 12.2, [ + "# FQCN = namespace.collection.modul", + "", + "ansible.builtin.copy", + "", + "# ansible -> namespace (Anbieter)", + "# builtin -> collection (Paket)", + "# copy -> modul (die Funktion)", +], font_size=12, title="Beispiel") +text(s, 0.55, 6.15, 12.2, 0.5, + [("NICHT verwechseln mit ", {"bold": True}), + ("FQDN", {"font": FONT_MONO, "color": DARKRED, "bold": True}), + (" (Fully Qualified Domain Name = Hostname)! Der FQCN macht eindeutig, " + "aus welcher Collection ein Modul stammt.", {})], + size=12.5, color=BLACK) +footer(s, 12) + + +# =========================================================================== +# FOLIE 13 — FQCN (Beispiele & Warum) +# =========================================================================== +s = new_slide(WHITE) +header(s, "FQCN", "FQCN in der Praxis") +text(s, 0.55, 1.6, 6.5, 0.4, "GÄNGIGE FQCN-BEISPIELE", size=11, bold=True, color=RED) +ex = [ + ("ansible.builtin.copy", "Datei kopieren"), + ("ansible.builtin.apt", "Paket installieren"), + ("ansible.builtin.service", "Dienst verwalten"), + ("ansible.builtin.template", "Template rendern"), + ("ansible.posix.firewalld", "Firewall (Collection)"), + ("community.general.git_config", "Git (Community)"), +] +yy = 2.1 +for fqcn, d in ex: + rect(s, 0.55, yy, 3.7, 0.5, LIGHT, line=BORDER, line_w=0.75, rounded=True, radius=0.14) + text(s, 0.8, yy + 0.1, 3.4, 0.3, fqcn, size=11, bold=True, + color=DARKRED, font=FONT_MONO) + text(s, 4.45, yy + 0.1, 2.6, 0.3, d, size=11.5, color=BLACK) + yy += 0.62 +text(s, 7.35, 1.6, 5.4, 0.4, "WARUM FQCN?", size=11, bold=True, color=RED) +rect(s, 7.35, 2.1, 5.45, 4.35, LIGHT, line=BORDER, line_w=1.0, rounded=True, radius=0.05) +text(s, 7.65, 2.35, 4.9, 3.9, [ + ("Seit Ansible 2.10 sind Module in ", {}), + ("Collections", {"bold": True}), + (" gebündelt.\n\n", {}), + ("Der FQCN macht eindeutig, ", {}), + ("welches Modul", {"bold": True}), + (" gemeint ist.\n\n", {}), + ("Er vermeidet ", {}), + ("Namenskollisionen", {"bold": True}), + (" — mehrere Collections können ein gleichnamiges Modul anbieten.\n\n", {}), + ("Faustregel: ", {"bold": True, "color": RED}), + ("immer den FQCN verwenden, nie die Kurzform.", {}), +], size=12.5, color=BLACK, leading=1.25) +footer(s, 13) + + +# =========================================================================== +# FOLIE 14 — Collections (Definition) +# =========================================================================== +s = new_slide(LIGHT) +header(s, "Collections", "Was sind Collections?") +rect(s, 0.55, 1.6, 12.2, 1.1, BLACK, rounded=True, radius=0.08) +text(s, 0.85, 1.8, 11.6, 0.75, + "Eine Collection ist das Verteilungsformat für Ansible-Inhalte. Sie bündelt " + "Module, Plugins, Rollen, Playbooks und Dokumentation in einem Paket.", + size=15, color=WHITE, leading=1.15) +cols = [ + ("Module", "Aktions-Bausteine (z.B. apt, firewalld)"), + ("Plugins", "Erweiterungen: Inventory, Connection, Filter"), + ("Rollen", "Wiederverwendbare Aufgaben-Sammlungen"), + ("Playbooks", "Fertige Abläufe als Vorlage"), + ("Dokumentation", "Beschreibung & Beispiele (docs/)"), + ("Test", "Tests & CI für die Collection"), +] +for i, (t, d) in enumerate(cols): + col = i % 3; row = i // 3 + card(s, 0.55 + col * 4.2, 3.0 + row * 1.6, 3.95, 1.35, "•", t, d) +footer(s, 14) + + +# =========================================================================== +# FOLIE 15 — Collections (Struktur & Galaxy) +# =========================================================================== +s = new_slide(WHITE) +header(s, "Collections", "Collections nutzen") +text(s, 0.55, 1.55, 5.8, 0.3, "BEZUGSQUELLE", size=11, bold=True, color=RED) +text(s, 0.55, 1.9, 5.8, 0.85, + [("Ansible Galaxy", {"bold": True}), + (" (galaxy.ansible.com) ist der zentrale Hub — vergleichbar mit einem " + "Paket-Manager für Ansible-Inhalte.", {})], + size=12, color=BLACK, leading=1.15) +text(s, 0.55, 2.85, 5.8, 0.3, "INSTALLATION", size=11, bold=True, color=RED) +code_block(s, 0.55, 3.25, 5.8, [ + "# Installation", + "ansible-galaxy collection", + " install ansible.posix", + "", + "# requirements.yml", + "collections:", + " - name: ansible.posix", + " version: '>=1.5.0'", +], font_size=11, title="galaxy") +text(s, 6.85, 1.55, 5.9, 0.3, "NAMENSSCHEMA", size=11, bold=True, color=RED) +text(s, 6.85, 1.9, 5.9, 0.45, + [("namespace", {"font": FONT_MONO, "color": DARKRED, "bold": True}), + (" . ", {"color": BLACK, "bold": True}), + ("name", {"font": FONT_MONO, "color": DARKRED, "bold": True}), + (" → z.B. ", {}), + ("ansible.posix", {"font": FONT_MONO, "color": DARKRED, "bold": True})], + size=14) +text(s, 6.85, 2.5, 5.9, 0.3, "AUFBAU EINER COLLECTION", size=11, bold=True, color=RED) +code_block(s, 6.85, 2.9, 5.9, [ + "ansible-posix/", + " plugins/modules/", + " plugins/inventory/", + " roles/", + " playbooks/", + " docs/", + " galaxy.yml", +], font_size=11.5, title="ansible.posix") +footer(s, 15) + + +# =========================================================================== +# FOLIE 16 — Rollen (Konzept) +# =========================================================================== +s = new_slide(LIGHT) +header(s, "Rollen", "Wie funktionieren Rollen?") +rect(s, 0.55, 1.6, 12.2, 1.05, BLACK, rounded=True, radius=0.08) +text(s, 0.85, 1.78, 11.6, 0.75, + "Eine Rolle ist eine wiederverwendbare, in sich geschlossene Einheit von " + "Aufgaben. Sie kapselt Tasks, Variablen, Templates und Handler zu einer " + "logischen Funktion — z.B. „installiere & konfiguriere einen Webserver“.", + size=14.5, color=WHITE, leading=1.15) +points = [ + ("Wiederverwendbar", "Einmal schreiben, in vielen Playbooks nutzen."), + ("Gekapselt", "Eigene Variablen, Templates & Dateien pro Rolle."), + ("Teilbar", "Über Collections & Galaxy mit anderen teilen."), + ("Strukturiert", "Klare Verzeichnis-Struktur (tasks, handlers, …)."), +] +for i, (t, d) in enumerate(points): + col = i % 2; row = i // 2 + card(s, 0.55 + col * 6.2, 3.0 + row * 1.8, 5.95, 1.55, "✓", t, d) +footer(s, 16) + + +# =========================================================================== +# FOLIE 17 — Rollen (Verzeichnisstruktur) +# =========================================================================== +s = new_slide(WHITE) +header(s, "Rollen", "Die Verzeichnisstruktur einer Rolle") +text(s, 0.55, 1.55, 5.5, 0.3, "ANATOMIE", size=11, bold=True, color=RED) +text(s, 0.55, 1.9, 5.5, 0.9, + "Eine Rolle folgt einem festen Aufbau. Jede Datei hat eine klar definierte " + "Aufgabe — Ansible lädt sie automatisch.", + size=12, color=BLACK, leading=1.15) +expl = [ + ("tasks/main.yml", "Hauptaufgaben der Rolle"), + ("handlers/main.yml", "Neustart-/Trigger-Aktionen"), + ("templates/", "Jinja2-Templates (.j2)"), + ("files/", "Statische Dateien (Copy-Quelle)"), + ("vars/main.yml", "Variablen (hohe Priorität)"), + ("defaults/main.yml", "Standard-Variablen (niedrig)"), + ("meta/main.yml", "Abhängigkeiten & Infos"), +] +yy = 2.6 +for f, d in expl: + text(s, 0.55, yy, 3.0, 0.3, f, size=11, bold=True, color=DARKRED, font=FONT_MONO) + text(s, 3.7, yy, 2.6, 0.5, d, size=10.5, color=GRAY, leading=1.0) + yy += 0.55 +code_block(s, 6.7, 1.55, 6.1, [ + "roles/webserver/", + " tasks/", + " main.yml", + " handlers/", + " main.yml", + " templates/", + " files/", + " vars/", + " main.yml", + " defaults/", + " main.yml", + " meta/", + " main.yml", +], font_size=11.5, title="roles/webserver/") +footer(s, 17) + + +# =========================================================================== +# FOLIE 18 — Praxisbeispiel +# =========================================================================== +s = new_slide(LIGHT) +header(s, "Praxis", "Alles zusammen: Playbook mit Rolle") +text(s, 0.55, 1.55, 5.3, 0.3, "ZUSAMMENSPIEL", size=11, bold=True, color=RED) +text(s, 0.55, 1.9, 5.3, 2.8, + [("Das Playbook referenziert die Rolle ", {}), + ("webserver", {"font": FONT_MONO, "color": DARKRED, "bold": True}), + (". FQCN-Module (", {}), + ("ansible.builtin.*", {"font": FONT_MONO, "color": DARKRED}), + (") arbeiten im Hintergrund.\n\n", {}), + ("1.", {"bold": True, "color": RED}), (" Rolle wird geladen.\n", {}), + ("2.", {"bold": True, "color": RED}), (" Aufgaben & Variablen aus der Rolle gelten.\n", {}), + ("3.", {"bold": True, "color": RED}), (" Idempotenz verhindert doppelte Arbeit.", {})], + size=12, color=BLACK, leading=1.25) +code_block(s, 6.15, 1.55, 6.6, [ + "---", + "- name: Webserver ausrollen", + " hosts: webserver", + " become: true", + "", + " roles:", + " - webserver", + "", + " vars:", + " nginx_port: 8080", +], font_size=11, title="deploy.yml") +footer(s, 18) + + +# =========================================================================== +# FOLIE 19 — Zusammenfassung & Quellen +# =========================================================================== +s = new_slide(LIGHT) +header(s, "Fazit", "Zusammenfassung") +takeaways = [ + ("Was", "Agentenloses, deklaratives Automatisierungs-Tool (SSH, YAML)."), + ("Aufbau", "Control Node, Managed Nodes, Inventory, Module, Playbooks."), + ("Syntax", "YAML + Jinja2 ({{ variable }}) für dynamische Inhalte."), + ("Ad-hoc", "ansible -m für schnelle Einzelaktionen."), + ("Facts", "Systeminfos werden automatisch gesammelt (gather_facts)."), + ("Variablen", "Auflösung nach Präzedenz — Extra-Vars gewinnen, Defaults verlieren."), + ("FQCN", "Eindeutige Modul-Referenz: namespace.collection.modul."), + ("Collections", "Pakete mit Modulen, Rollen & Plugins (Galaxy)."), + ("Rollen", "Wiederverwendbare, gekapselte Aufgaben-Einheiten."), +] +yy = 1.6 +for t, d in takeaways: + text(s, 0.75, yy, 2.0, 0.4, t, size=13, bold=True, color=RED) + text(s, 2.85, yy + 0.02, 6.7, 0.5, d, size=11.5, color=BLACK, leading=1.05) + yy += 0.52 +rect(s, 9.8, 1.7, 2.95, 4.6, LIGHT, line=BORDER, line_w=1.0, rounded=True, radius=0.06) +if os.path.exists(LOGO_RED): + s.shapes.add_picture(LOGO_RED, Inches(10.35), Inches(1.95), Inches(1.2), Inches(1.48)) +text(s, 10.05, 3.6, 2.4, 0.3, "QUELLEN", size=11, bold=True, color=RED, align=PP_ALIGN.CENTER) +text(s, 10.05, 3.95, 2.5, 1.9, + ["docs.ansible.com", "galaxy.ansible.com", "github.com/ansible", + "Logo: Wikimedia Commons"], + size=9.5, color=GRAY, leading=1.4) +footer(s, 19) + + +# --------------------------------------------------------------------------- +# Speichern +# --------------------------------------------------------------------------- +OUT = os.path.join(BASE, "ansible_praesentation.pptx") +prs.save(OUT) +print(f"OK — gespeichert: {OUT}") +print(f"Folien: {len(prs.slides)}") diff --git a/handout.docx b/handout.docx new file mode 100644 index 0000000000000000000000000000000000000000..8441ee4a45963267b1bbf9748c11034adbe64fbf GIT binary patch literal 14433 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 -m -a "" +``` + +Beispiele: + +```bash +# Erreichbarkeit testen +ansible all -m ping + +# Facts anzeigen +ansible webserver -m setup + +# Paket installieren +ansible webserver -m apt -a "name=nginx state=present" + +# Dienst neu starten +ansible webserver -m service -a "name=nginx state=restarted" +``` + +Wichtige Optionen: + +| Option | Bedeutung | +|--------|----------------------| +| `-m` | Modul wählen | +| `-a` | Argumente übergeben | +| `-i` | Inventory angeben | +| `-b` | become (sudo) | +| `-u` | Benutzer | + +--- + +## 3. Jinja2 — Variablen auflösen + +Ansible nutzt die Template-Engine **Jinja2**. Variablen werden in doppelte +geschweifte Klammern gesetzt: + +```yaml +# Wert einsetzen +message: "Hallo {{ benutzer }}" +path: "/home/{{ benutzer }}/.config" + +# Verschachtelte Variablen +db_host: "{{ hostvars['db'].ansible_host }}" +``` + +### Filter + +```yaml +name: "{{ name | upper }}" # -> GROSSSCHREIBUNG +port: "{{ port | default(80) }}" # Fallback, wenn Variable leer +anzahl: "{{ liste | length }}" # Anzahl der Elemente +ip: "{{ ansible_host | ipaddr }}" # IP-Adresse validieren +``` + +### Template-Dateien (.j2) + +Dateien mit Endung `.j2` werden vom Modul `template` gerendert: + +```jinja +# nginx.conf.j2 +server { + listen {{ nginx_port }}; + server_name {{ domain }}; + root {{ web_root }}; +} +``` + +--- + +## 4. Gather Facts (Systeminformationen) + +Ansible sammelt automatisch **Facts** (Systeminformationen) über jeden Host — +über das Modul `setup`, standardmäßig `gather_facts: true`. + +Häufige Facts: + +| Fact | Bedeutung | +|---------------------------------|-------------------------------| +| `ansible_os_family` | OS-Familie (Debian, RedHat) | +| `ansible_distribution` | z.B. Ubuntu, CentOS, Debian | +| `ansible_distribution_version` | Version (z.B. 22.04) | +| `ansible_hostname` | Hostname des Systems | +| `ansible_default_ipv4.address` | IP-Adresse | +| `ansible_architecture` | CPU-Architektur (x86_64) | +| `ansible_memtotal_mb` | RAM in MB | +| `ansible_processor_vcpus` | Anzahl CPU-Kerne | + +Zugriff im Playbook: + +```yaml +- name: OS anzeigen + ansible.builtin.debug: + msg: "{{ ansible_distribution }} {{ ansible_distribution_version }}" +``` + +Eigene Facts (Custom Facts) setzen: + +```bash +# Datei anlegen (INI-Format): +# /etc/ansible/facts.d/app.fact +# Inhalt: +# [app] +# version=1.2.3 +# Abruf: {{ ansible_local.app.version }} +``` + +Facts deaktivieren (Performance): + +```yaml +gather_facts: false +``` + +--- + +## 5. Wo Variablen definiert werden + +| Quelle | Datei / Ort | Beispiel | +|------------|------------------------------------|---------------------------------| +| Inventory | `host_vars/`, `group_vars/` | `group_vars/webserver.yml` | +| Playbook | `vars:` / `vars_files:` | `vars: { port: 8080 }` | +| Rolle | `roles//vars/` + `defaults/`| `vars/main.yml` | +| Facts | automatisch gesammelt | `ansible_os_family` | +| Laufzeit | `register` / `set_fact` | `register: result` | +| CLI | Extra-Variablen | `-e "port=8080"` | + +--- + +## 6. Variablen-Präzedenz (Auflösungs-Reihenfolge) + +Ist dieselbe Variable an mehreren Stellen definiert, gewinnt die mit der +**höchsten** Priorität (oben = gewinnt): + +1. **Extra-Variablen** (CLI `-e`) — gewinnen immer +2. **Task-/Block-Variablen** (`vars:` direkt an der Aufgabe) +3. **set_fact / register** (Werte aus der Laufzeit) +4. **Rollen-Variablen** (`roles/.../vars/main.yml`) +5. **Playbook-Variablen** (`vars:` im Play) +6. **host_vars / group_vars** (aus dem Inventory) +7. **Rollen-Defaults** (`roles/.../defaults/main.yml`) — verlieren + +> **Faustregel:** Je spezifischer die Quelle, desto höher die Priorität. + +--- + +## 7. Module & FQCN + +FQCN = **Fully Qualified Collection Name** — `namespace.collection.modul`. + +```yaml +ansible.builtin.apt: + name: nginx + state: present +``` + +| FQCN | Zweck | +|-----------------------------------|---------------------------| +| `ansible.builtin.copy` | Datei kopieren | +| `ansible.builtin.apt` | Paket installieren (Debian) | +| `ansible.builtin.service` | Dienst verwalten | +| `ansible.builtin.template` | `.j2`-Template rendern | +| `ansible.posix.firewalld` | Firewall konfigurieren | +| `community.general.git_config` | Git-Einstellungen | + +--- + +## 8. Vollständiges Beispiel + +**Playbook** (`deploy.yml`): + +```yaml +- name: Webserver ausrollen + hosts: webserver + become: true + vars: + nginx_port: 8080 # überschreibt den Rollen-Default + roles: + - webserver +``` + +**Rollen-Defaults** (`roles/webserver/defaults/main.yml`) — niedrigste Priorität: + +```yaml +nginx_port: 80 +domain: example.com +``` + +**Rollen-Tasks** (`roles/webserver/tasks/main.yml`): + +```yaml +- name: nginx installieren + ansible.builtin.apt: + name: nginx + state: present + +- name: Konfiguration rendern + ansible.builtin.template: + src: nginx.conf.j2 + dest: /etc/nginx/nginx.conf +```