DevOps ohne root
Anwendungen reproduzierbar für 

Managed Server konfigurieren
Peter Hormanns
cusy GmbH
Vortrag auf dem Lin...
Kapitel
Thanks for coming
you + me + cusy
Peter Hormanns
• Freiberufler, Software-Consultant
• Technologie-Stack: Java und Linux
• heute nennt man „DevOps", 

was ic...
you + me + cusy
Agenda
• you + me + cusy
• Cloud + Managed Server
• Configuration Management mit Ansible
• praktische Beisp...
you + me + cusy
Angebot der cusy GmbH

»Gute« Anwendungen zu einer gehosteten*
Arbeitsumgebung

für Teams kombinieren.
*) ...
TextTextText
Referenzkunde
Kapitelyou + me + cusy
Alternative zur Cloud
Kapitelyou + me + cusy
SaaS
PaaS
IaaS
cusy-Dienste
Managed-Server
(root-Server)
»Cloud« Datenschutz ...
Managed Server
• Bootstrap neuer Virtueller Maschinen
• Backup
• Sicherheits-Updates für das Betriebssystem
• Storage
• Vo...
Arbeitsteilung – Hoster
• Managed Plattform
• Betriebssystem
• Hardware
• Netzwerk
• Backup
Cloud + Managed Server
Arbeitsteilung – cusy
• cusy Dienste
• Gitblit – Git-Hosting mit Browser-Oberfläche, wie Github
• OpenProject – Multiprojek...
Motivation
Unsere höchste Priorität ist es, den Kunden durch
frühe und kontinuierliche Auslieferung wertvoller
Software zu...
Motivation
Einfachheit – die Kunst, die Menge nicht getaner 

Arbeit zu maximieren – ist essenziell.
(Achtes Prinzip des a...
Ansible-Steckbrief
• Automatisierung
• Configuration Management
• Service Orchestration
• Dokumentation
Configuration Manage...
Configuration Management mit Ansible
Ansible-Eigenschaften
• Push über ssh (kein Agent)
• YAML Syntax für Playbooks
• Jinja Template Engine
• Idempotenz
• Dekl...
Für unseren Anwendungsfall ist Ansible die naheliegende Lösung.
vs vs vs vs
Configuration Management mit Ansible
Einfaches Playbook
1 ---
2 - hosts: wordpress
3 vars:
4 version: 4.0
5 tasks:
6 - name: extract tarball
7 sudo: yes
8 sudo...
Einfaches Playbook
…
12 - name: move to www
13 sudo: yes
14 sudo_user: "{{pac}}-{{user}}"
15 command: >
16 rm -rf www && m...
Ansible-Begriffe: Playbook
• Beschreibung eines Soll-Zustands der Infrastruktur
Praktische Beispiele
Ansible-Begriffe: Playbook
• Beschreibung eines Soll-Zustands der Infrastruktur
• User anlegen
• Domain aufschalten
• Daten...
Ansible-Begriffe: Module
• ca. 130 Module in Core
• ca. 270 "Extra" Module
• eigene Module in jeder Programmier- oder Skrip...
Ansible-Begriffe: Inventory
[appserver]
apps01.example.com
apps02.example.com
apps03.example.com
!
[frontend]
www.example.c...
Ansible-Begriffe: Inventory
Dynamisches Inventory
./dyn-inv --list
!
1 {
2 "appserver" : [ "apps01.example.com" , "apps02.e...
Ansible-Begriffe: Inventory
Dynamisches Inventory
./dyn-inv --host apps01.example.com
!
1 {
2 "frontend" : "www.example.com...
Praktische Beispiele
Ansible-Begriffe: Variablen
• im Inventory
• in Playbooks
• aus inkludierten Dateien
• von der Kommandozeile
Praktische Bei...
Ansible-Begriffe: 

Rollen und Handler
roles/gitblit/
roles/gitblit/files
roles/gitblit/files/cusy120x45.png
roles/gitblit/...
Ansible-Begriffe:
Orchestrierung
Delegation
!
1 - name: Configure proxy server for service
2 delegate_to: "{{fe_host_name}}...
Ansible-Begriffe:
Orchestrierung
Abhängige Rollen
!
Praktische Beispiele
Ansible-Begriffe
Praktische Beispiele
• Playbook - Beschreibung eines Soll-Zustands
• Modul - Soll-Zustand für eine einzeln...
Lessons learned
• Der Einstieg ist schnell
Praktische Beispiele
Lessons learned
• Der Einstieg ist schnell
• Module und ein dynamische Repository sind einfach
implementiert
Praktische Be...
Lessons learned
• Der Einstieg ist schnell
• Module und ein dynamische Repository sind einfach
implementiert
• Das Thema V...
Lessons learned
• Der Einstieg ist schnell
• Module und ein dynamische Repository sind einfach
implementiert
• Das Thema V...
Lessons learned
• Der Einstieg ist schnell
• Module und ein dynamische Repository sind einfach
implementiert
• Das Thema V...
Lessons learned
• Der Einstieg ist schnell
• Module und ein dynamische Repository sind einfach
implementiert
• Das Thema V...
Zusammenfassung
Ansible ermöglicht uns die Installation und Konfiguration
von Services in eine Managed Server Umgebung.
Es ...
Fragen?

Diskussion.
Kontakt
Vertiefen
• Prinzipien hinter dem agilen Manifest
• Offizielle Ansible Website
• Ansible Dokumentation
• cusy Slides bei htt...
Bildnachweise
• Bild: Soccer game at the Azteca Stadium; cc BY-SA 4.0: Jlfdz
• Bild: Peter Hormanns;
• Bild: cusy-Messesta...
Nächste SlideShare
Wird geladen in …5
×

Devops ohne root

547 Aufrufe

Veröffentlicht am

Anwendungen reproduzierbar für Managed Server konfigurieren

Veröffentlicht in: Internet
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
547
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
46
Aktionen
Geteilt
0
Downloads
5
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Devops ohne root

  1. 1. DevOps ohne root Anwendungen reproduzierbar für 
 Managed Server konfigurieren Peter Hormanns cusy GmbH Vortrag auf dem Linuxday Dornbirn am 21. Nov. 2015
  2. 2. Kapitel Thanks for coming you + me + cusy
  3. 3. Peter Hormanns • Freiberufler, Software-Consultant • Technologie-Stack: Java und Linux • heute nennt man „DevOps", 
 was ich seit 20 Jahren tue ;-) • tätig für die cusy GmbH you + me + cusy
  4. 4. you + me + cusy Agenda • you + me + cusy • Cloud + Managed Server • Configuration Management mit Ansible • praktische Beispiele • Zusammenfassung und Diskussion
  5. 5. you + me + cusy Angebot der cusy GmbH
 »Gute« Anwendungen zu einer gehosteten* Arbeitsumgebung
 für Teams kombinieren. *) nach deutschen Datenschutzstandards in einem zertifizierten Rechenzentrum 
 in Deutschland !
  6. 6. TextTextText Referenzkunde Kapitelyou + me + cusy
  7. 7. Alternative zur Cloud Kapitelyou + me + cusy SaaS PaaS IaaS cusy-Dienste Managed-Server (root-Server) »Cloud« Datenschutz konformes Hosting
  8. 8. Managed Server • Bootstrap neuer Virtueller Maschinen • Backup • Sicherheits-Updates für das Betriebssystem • Storage • Vorhalten von Ressourcen Cloud + Managed Server
  9. 9. Arbeitsteilung – Hoster • Managed Plattform • Betriebssystem • Hardware • Netzwerk • Backup Cloud + Managed Server
  10. 10. Arbeitsteilung – cusy • cusy Dienste • Gitblit – Git-Hosting mit Browser-Oberfläche, wie Github • OpenProject – Multiprojekt-Management, Redmine-Fork • Jenkins – Continuous Integration Server • Sentry – zentrale Log-Auswertung • Jira – Atlassian Projekt-Verwaltung / Issue Tracking • Confluence – Enterprise Wiki Cloud + Managed Server
  11. 11. Motivation Unsere höchste Priorität ist es, den Kunden durch frühe und kontinuierliche Auslieferung wertvoller Software zufriedenzustellen. (Erstes Prinzip des agilen Manifests) Cloud + Managed Server » «
  12. 12. Motivation Einfachheit – die Kunst, die Menge nicht getaner 
 Arbeit zu maximieren – ist essenziell. (Achtes Prinzip des agilen Manifests) Cloud + Managed Server » «
  13. 13. Ansible-Steckbrief • Automatisierung • Configuration Management • Service Orchestration • Dokumentation Configuration Management mit Ansible
  14. 14. Configuration Management mit Ansible
  15. 15. Ansible-Eigenschaften • Push über ssh (kein Agent) • YAML Syntax für Playbooks • Jinja Template Engine • Idempotenz • Deklarativ Configuration Management mit Ansible
  16. 16. Für unseren Anwendungsfall ist Ansible die naheliegende Lösung. vs vs vs vs Configuration Management mit Ansible
  17. 17. Einfaches Playbook 1 --- 2 - hosts: wordpress 3 vars: 4 version: 4.0 5 tasks: 6 - name: extract tarball 7 sudo: yes 8 sudo_user: "{{user}}" 9 unarchive: > 10 copy=no src="/tmp/wordpress.tgz" 11 dest="/home/{{user}}/wordpress/" … ↓ Praktische Beispiele
  18. 18. Einfaches Playbook … 12 - name: move to www 13 sudo: yes 14 sudo_user: "{{pac}}-{{user}}" 15 command: > 16 rm -rf www && mv wordpress www 17 chdir="/home/{{user}}/wordpress" 18 - name: upload wp-config.php config 19 sudo: yes 20 sudo_user: "{{pac}}" 21 template: > 22 src="templates/wordpress/wp-config.php" 23 mode=0600 24 dest="/home/{{user}}/wordpress/www/wp-config.php" Praktische Beispiele
  19. 19. Ansible-Begriffe: Playbook • Beschreibung eines Soll-Zustands der Infrastruktur Praktische Beispiele
  20. 20. Ansible-Begriffe: Playbook • Beschreibung eines Soll-Zustands der Infrastruktur • User anlegen • Domain aufschalten • Datenbank anlegen eigene Module ! siehe Repository auf Github Praktische Beispiele
  21. 21. Ansible-Begriffe: Module • ca. 130 Module in Core • ca. 270 "Extra" Module • eigene Module in jeder Programmier- oder Skript- Sprache möglich Praktische Beispiele
  22. 22. Ansible-Begriffe: Inventory [appserver] apps01.example.com apps02.example.com apps03.example.com ! [frontend] www.example.com ansible_sudo_user=haproxy ! [appserver:vars] frontend=www.example.com ansible_sudo_user=tomcat7 Praktische Beispiele
  23. 23. Ansible-Begriffe: Inventory Dynamisches Inventory ./dyn-inv --list ! 1 { 2 "appserver" : [ "apps01.example.com" , "apps02.example.com" ], 3 "frontend" : [ "www.example.com" ] 4 } Praktische Beispiele
  24. 24. Ansible-Begriffe: Inventory Dynamisches Inventory ./dyn-inv --host apps01.example.com ! 1 { 2 "frontend" : "www.example.com", 3 "ansible_sudo_user" : "tomcat7" 4 } Praktische Beispiele
  25. 25. Praktische Beispiele
  26. 26. Ansible-Begriffe: Variablen • im Inventory • in Playbooks • aus inkludierten Dateien • von der Kommandozeile Praktische Beispiele
  27. 27. Ansible-Begriffe: 
 Rollen und Handler roles/gitblit/ roles/gitblit/files roles/gitblit/files/cusy120x45.png roles/gitblit/handlers roles/gitblit/handlers/main.yml roles/gitblit/meta roles/gitblit/meta/main.yml roles/gitblit/tasks roles/gitblit/tasks/main.yml roles/gitblit/templates roles/gitblit/templates/context.xml roles/gitblit/vars roles/gitblit/vars/main.yml Praktische Beispiele
  28. 28. Ansible-Begriffe: Orchestrierung Delegation ! 1 - name: Configure proxy server for service 2 delegate_to: "{{fe_host_name}}" 3 sudo_user: "{{fe_sudo_user}}" 4 template: > 5 dest=/etc/nginx/local/{{customer}}/{{tenant}}-{{service}}.conf 6 src=nginx-service.conf 7 mode=0644 8 notify: 9 - Apply proxy configuration Praktische Beispiele
  29. 29. Ansible-Begriffe: Orchestrierung Abhängige Rollen ! Praktische Beispiele
  30. 30. Ansible-Begriffe Praktische Beispiele • Playbook - Beschreibung eines Soll-Zustands • Modul - Soll-Zustand für eine einzelnes Objekt • Inventory - Aufzählung der Instrastruktur • Variablen - Parametrisierung von Plays und Templates • Orchestrierung über • Rollen • Delegation • abhängige Rollen
  31. 31. Lessons learned • Der Einstieg ist schnell Praktische Beispiele
  32. 32. Lessons learned • Der Einstieg ist schnell • Module und ein dynamische Repository sind einfach implementiert Praktische Beispiele
  33. 33. Lessons learned • Der Einstieg ist schnell • Module und ein dynamische Repository sind einfach implementiert • Das Thema Variablen ist unübersichtlich Praktische Beispiele
  34. 34. Lessons learned • Der Einstieg ist schnell • Module und ein dynamische Repository sind einfach implementiert • Das Thema Variablen ist unübersichtlich • Nutze Rollen, abhängige Rollen Praktische Beispiele
  35. 35. Lessons learned • Der Einstieg ist schnell • Module und ein dynamische Repository sind einfach implementiert • Das Thema Variablen ist unübersichtlich • Nutze Rollen, abhängige Rollen • Idempotenz kostet Aufwand Praktische Beispiele
  36. 36. Lessons learned • Der Einstieg ist schnell • Module und ein dynamische Repository sind einfach implementiert • Das Thema Variablen ist unübersichtlich • Nutze Rollen, abhängige Rollen • Idempotenz kostet Aufwand • Playbooks haben deklarative und imperative Aspekte Praktische Beispiele
  37. 37. Zusammenfassung Ansible ermöglicht uns die Installation und Konfiguration von Services in eine Managed Server Umgebung. Es gibt Verbessungspotential. Ansible 2 bringt einige Verbesserungen: • Verbessertes Handling von Fehlermeldungen • Execution Strategy Plugins • Verbessertes Variablenmanagement Praktische Beispiele
  38. 38. Fragen?
 Diskussion.
  39. 39. Kontakt
  40. 40. Vertiefen • Prinzipien hinter dem agilen Manifest • Offizielle Ansible Website • Ansible Dokumentation • cusy Slides bei http://de.slideshare.net/cusyio/devops-ohne-root ! Weiterführende Literatur
  41. 41. Bildnachweise • Bild: Soccer game at the Azteca Stadium; cc BY-SA 4.0: Jlfdz • Bild: Peter Hormanns; • Bild: cusy-Messestand; Veit Schiele • Michael Gernhardt in space during STS-69 in 1995; PUBLIC DOMAIN: NASA • Supermassive Black Holes with Relativistic Jets; CC BY 2.0: NASA

×