![Page 1: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/1.jpg)
JUG Saxony Day, 29.09.17
Es muss nicht immer gleich Docker seinIT Automation, die zu einem passt
Sandra [email protected]
@SandraParsick
![Page 2: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/2.jpg)
Zur meiner Person
● Sandra Parsick
● Freiberuflicher Softwareentwickler und Consultant im Java-Umfeld
● Schwerpunkte:
– Java Enterprise Anwendungen
– Agile Methoden
– Software Craftmanship
– Automatisierung von Entwicklungsprozessen
● Trainings
● Workshops
● Softwerkskammer Ruhrgebiet
● Twitter: @SandraParsick
● Blog: http://blog.sandra-parsick.de
● E-Mail: [email protected]
![Page 3: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/3.jpg)
Motivation
![Page 4: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/4.jpg)
Warum Ansible, wenn Docker auch
diese Probleme löst?
Aber dafür haben wir doch Docker
![Page 5: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/5.jpg)
Lass unsere Deployment mit Ansible automatisieren
Wir wollen doch nächstes Jahr oder späterDocker einsetzen
Zu aufwendig zwischendurch
Ansible einzuführen
Aber alle verwenden doch Docker
![Page 6: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/6.jpg)
Wieso wird Ansible mit Docker
gleich gesetzt?
Ist der UnterschiedContainer und
Provisionierungswerkzeug nicht klar?
Conference-Driven-
Development?
![Page 7: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/7.jpg)
Container vs. Provisionierungswerkzeuge
![Page 8: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/8.jpg)
Container - Allgemein
Container● verpacken Anwendungen und ihre
Abhängigkeiten zu einer Einheit● isolieren diese von anderen Anwendungen● standardisieren die Art und Weise der
Auslieferung von Anwendungen
![Page 9: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/9.jpg)
Container Є { } ?
![Page 10: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/10.jpg)
![Page 11: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/11.jpg)
Provisionierungswerkzeug - Allgemein
Provisionierungswerkzeug● automatisiert die Provisionierung eines Servers
Server-Provisionierung● eine Menge an Schritten, um einen Server mit
Daten und Software vorzubereiten– Resourcen zuweisen und konfigurieren
– Middleware installieren und konfigurieren
– Anwendungen installieren und konfiguieren
![Page 12: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/12.jpg)
„Infrastructure As Code“
![Page 13: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/13.jpg)
Ansible
![Page 14: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/14.jpg)
Und nun?
![Page 15: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/15.jpg)
Status Quo
![Page 16: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/16.jpg)
Wunsch – aber notwendig für Automatisierung?
![Page 17: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/17.jpg)
![Page 18: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/18.jpg)
ReiserouteReiseroute
Automatisierung der bestehenden Automatisierung der bestehenden Infrastruktur mit AnsibleInfrastruktur mit Ansible
Wiederverwendung der Ansible Playbooks Wiederverwendung der Ansible Playbooks für die Docker-Image-Erstellungfür die Docker-Image-Erstellung
Automatisierung des Docker-Image-Automatisierung des Docker-Image-Lifecycles mit AnsibleLifecycles mit Ansible
Verteilung der Docker-Container auf die Verteilung der Docker-Container auf die Server mit AnsibleServer mit Ansible
![Page 19: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/19.jpg)
Erste ReiseetappeAutomatisierung der bestehenden
Infrastruktur mit Ansible
![Page 20: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/20.jpg)
Ausgangslage
![Page 21: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/21.jpg)
Ansible
● Provisionierungswerkzeug● Sprache: Python● Ansible Skripte (genannt Playbooks): YAML
![Page 22: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/22.jpg)
Funktionsweise
![Page 23: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/23.jpg)
Exkurs: YAML
YAML JSON
![Page 24: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/24.jpg)
Setup Application Server Playbook
![Page 25: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/25.jpg)
![Page 26: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/26.jpg)
Inventories
Production Test
![Page 27: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/27.jpg)
![Page 28: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/28.jpg)
Ansible Modules
![Page 29: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/29.jpg)
![Page 30: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/30.jpg)
Setup Application Server Playbook
![Page 31: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/31.jpg)
Java Webapplikation Deployment
![Page 32: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/32.jpg)
Deploy Application Playbook
![Page 33: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/33.jpg)
Deploy Application Playbook
![Page 34: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/34.jpg)
Ansible Infrastruktur
![Page 35: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/35.jpg)
Weitere Features
● Role● Vault – Verschlüsselung● Facts● Dynamische Inventories● Playbook Debugger● Networking Support
![Page 36: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/36.jpg)
Wie werden Ansible Skripte getestet?
● ansible-playbook --check
● ansible-playbook --syntax-check
● Jenkins + Vagrant● Rspec tests
![Page 37: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/37.jpg)
ServerSpec Tests
![Page 38: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/38.jpg)
ServerSpec Tests
![Page 39: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/39.jpg)
Reiseroute
Automatisierung der bestehenden Infrastruktur mit Ansible
Wiederverwendung der Ansible Playbooks für die Docker-Image-Erstellung
Automatisierung des Docker-Image-Lifecycles mit Ansible
Verteilung der Docker-Container auf die Server mit Ansible
![Page 40: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/40.jpg)
Zweite ReiserouteWiederverwendung der Ansible
Playbooks für die Docker-Image-Erstellung
![Page 41: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/41.jpg)
Docker
● Verwaltungswerkzeug für Container● Weitere Werkzeuge aus dem Docker
Universum (Auszug):– Docker Compose: Hilft beim Definieren und beim
Laufen von Multi-Container Anwendungen
– Docker Registry: Repository Manager für Docker Images
![Page 42: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/42.jpg)
Docker Lifecycle
![Page 43: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/43.jpg)
Reminder - Zielinfrastruktur
![Page 44: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/44.jpg)
Was brauchen wir?
● Zwei Dockerfiles– Mysql.df
– Tomcat.df
● WAR Datei wird über Volume eingebunden
![Page 45: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/45.jpg)
Dockerfile ohne Ansible (tomcat.df)
![Page 46: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/46.jpg)
Dockerfile mit Ansible (tomcat.df)
![Page 47: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/47.jpg)
Dockerfile mit Ansible (mysql.df)
![Page 48: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/48.jpg)
Dockerfile mit Ansible Demo
![Page 49: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/49.jpg)
Dockerfile mit Ansible - Pros und Cons
✔ Vorhandene Skripte können wiederverwendet werden
✔ Reicht aus um generell seine Anwendung im Docker Container zu testen
✗ Es werden Abhängigkeiten in das Image mit gepackt, die die Anwendung nicht braucht → Image wird unnötig groß
✗ Alternative: Ansible + Python (De) -Installation als RUN Schritt → Image-Build-Dauer erhöht sich
![Page 50: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/50.jpg)
Ansible Connection Type: Docker
● Neuer Connection Type seit Ansible 2.0● Funktionsweise:
– Ansible führt die Playbooks über docker exec in einem laufendem Container aus
– Bedingung: Im Container muss Python installiert sein
![Page 51: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/51.jpg)
Ansible Connection Type: Docker
![Page 52: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/52.jpg)
Ansible Connection Type: Docker - Pros und Cons
✔ Vorhandene Skripte können wiederverwendet werden
✔ Reicht aus um generell seine Anwendung im Docker Container zu testen
✔ Keine Dockerfiles
✗ Base Image muss Python Installation haben
✗ Mehr Schritte erforderlich
![Page 53: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/53.jpg)
Alternativen
● Template● Ansible-Container● Packer● Rocker● Etc.● Überblick verschafft Talk „Docker Container
Loading“ von Roland Huß
![Page 54: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/54.jpg)
Docker Container Lifecylce (lokal)
v
![Page 55: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/55.jpg)
Es geht aus kürzer
![Page 56: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/56.jpg)
Docker Compose
![Page 57: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/57.jpg)
Docker Compose Demo
![Page 58: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/58.jpg)
Docker Compose
![Page 59: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/59.jpg)
Docker Compose – Ansible Connection Type Docker
![Page 60: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/60.jpg)
Reminder: Dockerfile
![Page 61: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/61.jpg)
Reiseroute
Automatisierung der bestehenden Infrastruktur mit Ansible
Wiederverwendung der Ansible Playbooks für die Docker-Image-Erstellung
Automatisierung des Docker-Image-Lifecycles mit Ansible
Verteilung der Docker-Container auf die Server mit Ansible
![Page 62: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/62.jpg)
Dritte ReiserouteAutomatisierung des Docker-Image-
Lifecycles mit Ansible
![Page 63: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/63.jpg)
Docker Lifecycle
![Page 64: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/64.jpg)
Docker Registry Lifecycle
![Page 65: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/65.jpg)
Docker Registry Lifecyle mit Ansible
![Page 66: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/66.jpg)
Docker Registry Lifecycle mit Ansible Demo
![Page 67: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/67.jpg)
Docker Registry Alternativen
![Page 68: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/68.jpg)
Reiseroute
Automatisierung der bestehenden Infrastruktur mit Ansible
Wiederverwendung der Ansible Playbooks für die Docker-Image-Erstellung
Automatisierung des Docker-Image-Lifecycles mit Ansible
Verteilung der Docker-Container auf die Server mit Ansible
![Page 69: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/69.jpg)
Letzte ReiserouteVerteilung der Docker-Container auf
die Server mit Ansible
![Page 70: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/70.jpg)
Docker Lifecycle
![Page 71: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/71.jpg)
Was brauchen wir?
● Docker Installation automatisieren● Docker Registry Installation automatisieren● Container auf das Zielsystem verteilen● WAR Datei wird über Volume eingebunden
→ muss auf den Zielsystem kopiert werden
![Page 72: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/72.jpg)
Setup-dockerd.yml (Ausschnitt)
![Page 73: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/73.jpg)
Setup-docker-registry.yml (Ausschnitt)
![Page 74: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/74.jpg)
Build-and-push-images.yml (Ausschnitt)
![Page 75: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/75.jpg)
Deploy-docker-container.yml (Ausschnitt)
![Page 76: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/76.jpg)
Alternative Ansible mit Docker Compose Syntax
Docker-compose muss auf dem Zielmaschine installiert werden
![Page 77: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/77.jpg)
Ansible Playbook Call
![Page 78: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/78.jpg)
Reiseroute
Automatisierung der bestehenden Infrastruktur mit Ansible
Wiederverwendung der Ansible Playbooks für die Docker-Image-Erstellung
Automatisierung des Docker-Image-Lifecycles mit Ansible
Verteilung der Docker-Container auf die Server mit Ansible
![Page 79: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/79.jpg)
Was haben wir gesehen?
● Provisionierungswerkzeuge (PW) können aktuelle Infrastrukturprobleme lösen
● Einsatz eines PW verbaut nicht den Weg hin zu einer Containerisierung der Infrastruktur
● PW kann bei der Umstellung helfen● PW erleichtert das Container-Deployment
![Page 80: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/80.jpg)
Wann Container einsetzen?
![Page 81: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/81.jpg)
Mögliche Einsatzszenarien für Container
● Anwendung muss automatisch skaliert werden● Unternehmen hat unterschiedliche Technologiestacks und will die Verteilung vereinheitlichen
● Bei Integrationstests innerhalb eines Builds (Testcontainer)
![Page 82: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/82.jpg)
Integrationstests mit Container
![Page 83: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/83.jpg)
Migrationstests von DB Skripte
![Page 84: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/84.jpg)
Migrationstests von DB Skripte
![Page 85: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/85.jpg)
Integrationstest für die Persistenzschicht
![Page 86: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/86.jpg)
Testcontainers
● Temporary database containers - spezielle MySQL, PostgreSQL, Oracle XE and Virtuoso container
● Webdriver containers - Dockerized Chrome oder Firefox browser für Selenium/Webdriver Operationen mit automatischer Videoaufnahme
● Generic containers – irgendein Docker Container● Docker compose – Wiederverwendung von Docker
Compose YAML Datei● Dockerfile containers – Container direkt von einem
Dockerfile
![Page 87: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/87.jpg)
Fazit
![Page 88: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/88.jpg)
@SandraParsick@[email protected]@sandra-parsick.de
https://github.com/sparsick/ansible-docker-talk.githttps://github.com/sparsick/ansible-docker-talk.git
Fragen?Fragen?
![Page 89: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/89.jpg)
Weitere Informationen
http://docs.ansible.com/
![Page 90: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/90.jpg)
Weitere Informationen
![Page 91: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/91.jpg)
Weitere Informationen
http://bit.ly/2cZ0IrZ
![Page 92: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/92.jpg)
Weitere Informationen
https://docs.docker.com/
![Page 93: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/93.jpg)
Weitere Informationen
OBJEKTspektrum Online Themenspecial DevOps 2017
http://bit.ly/2p7mxyB
![Page 94: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/94.jpg)
Weitere Informationen
● Talk „Docker Container Loading“ von Roland Hußhttps://github.com/ro14nd-talks/docker-container-loading/blob/master/docker-container-loading.pdf
● Serverspecs http://serverspec.org/● Testcontainers https://www.testcontainers.org/
![Page 95: JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker sein › 2017 › wp-content › uploads › ... · 2018-01-21 · JUG Saxony Day, 29.09.17 Es muss nicht immer gleich Docker](https://reader030.vdokument.com/reader030/viewer/2022041110/5f0ece6f7e708231d4410810/html5/thumbnails/95.jpg)
Bildnachweise
https://pixabay.com/de/vortrag-vorlesung-schule-2044619/https://pixabay.com/de/spielsteine-figuren-holz-bunt-1743307/https://pixabay.com/de/fragezeichen-birne-denken-idee-2010011/https://pixabay.com/de/hamburg-hafen-kr%C3%A4ne-containerschiff-2103261/