INFRASTRUKTUR MIT
ANSIBLE
Stephan Hochhaus ( @yauh ) 15. Januar 2014 bei der OpenTechSchool Dortmund .
WIE SIEHT EURE IT-INFRASTRUKTUR AUS?
Wer hat einen eigenen (Web-)Server?
Welches Betriebssystem?
Wie viele Server sind es?...
MEIN LEBEN VOR ANSIBLE
1.
2.
3.
4.
5.

Grundsystem per Hand installieren
Ggf. ausgefeilte shell-Skripte für Pakete ausführ...
GEEKS SIND GEWINNERTYPEN
VORTEILE VON AUTOMATISIERUNG
Beliebige (und leichte) Wiederholbarkeit
Hohe Geschwindigkeit von Deployments
Wiederherstelle...
UND GANZ KONKRET
Schneller Aufbau von Testsystemen
Leichter Providerwechsel
Continuous-Integration-Workflows realisieren
"...
WIESO NICHT SHELL/PERL-SKRIPTE?
Skripte werden schnell extrem komplex
Idempotenz - Unabhängig vom Ausgangszustand wird ein...
CONFIGURATION MANAGEMENT 2014

Stand: 13. Januar 2014 auf github
Leistungsfähige automation engine aus Basis von Playbooks
Keine Agents auf Zielsystemen notwendig
(SSH-Zugriff reicht)
Sta...
ARCHITEKTURÜBERBLICK
KERNBESTANDTEILE VON ANSIBLE
Inventory - Beschreibt die Infrastruktur
Module - Stellen Funktionen zur Verfügung
Playbooks ...
INVENTORY
Hosts - Zielsysteme (Linux)
Gruppen Organisatorische Zuordnung (z.B. geografisch, nach
Funktion oder als Mischun...
BEISPIEL HOSTS-DATEI
[esre]
wbevr
aah.xml.r
pceeapeog
lm.xml.r
apeapeog
[bevr
dsre]
d.xml.r
beapeog
lm.xml.r
apeapeog
[et
...
ES GIBT MODULE FÜR
Monitoring
Notification
System
Cloud
Files
Messaging

Net Infrastructure
Packaging
Utilities
Commands
I...
SYSTEM: PING
EIGENE MODULE
Eigene Module können in Python oder einer beliebigen anderen
Programmiersprache(!) verfasst sein.
PLAYBOOKS
Playbooks sind deklarative Beschreibungen in YAML
(Leerzeichen sind wichtig!)
Tasks beschreiben den gewünschten ...
NUTZER ANLEGEN UND LÖSCHEN
--hss al
ot: l
ue:ro
sr ot
tss
ak:
#Adteue 'ale wt apiaygopo 'di'
d h sr kye' ih
rmr ru f amn
-...
PLAY IT!
VARIABLEN FÜR TASKS
Tasks können Variablen nutzen
--hss al
ot: l
ue:ro
sr ot
vr:
as
ue:sehn
sr tpa
ue_w:$$$MD60aQgWS21
srp...
SCHLEIFEN MIT ITEM
tss
ak:
-nm:"nt|Sm sfwr sol b isald
ae Ii
oe otae hud e ntle"
ato:atpg{ ie } saelts
cin p k={ tm } tt=a...
TEMPLATES UND DATEIEN
Das Template-Modul erlaubt dynamische Anpassungen an
Konfig-Dateien
Mit Copy lassen sich Dateien 1:1...
VARIABLEN IN TEMPLATES
Jinja2 als Template-Sprache
[let
cin]
ue=ot
srro
pswr={mslro_asod}
asod{ yq.otpswr }

my.cnf.j2
HANDLERS
Verhalten sich ähnlich zu Tasks
hnlr:
ades
-nm:rsatmsl
ae etr yq
ato:srienm=yq saersatd
cin evc aemsl tt=etre
TAGS UND ROLES
Tags bündeln Tasks und lassen sich gezielt ausführen
Roles erlauben höhere Modularität in Playbooks
tss
ak:...
ANSIBLE INSTALLIEREN
MAC OS X

$be isalasbe
rw ntl nil

LINUX
$ppisalpym jna prmk
i ntl yal ij2 aaio
$ppisalasbe
i ntl nil
BEI BEDARF AUCH MIT GUI

Bis zu 10 Hosts lassen sich kostenlos mit AWX managen.
WEITERE RESSOURCEN
ansibleworks.com - Die Webseite von Ansible
galaxy.ansibleworks.com - Plattform für Ansible
Playbooks/R...
ALTERNATIVEN
Es gibt eine Vielzahl von Tools für
automatisiertes Configuration Management:
Ansible
Puppet
Chef
cfengine
sa...
AUTOMATE ALL THE THINGS
FORK ME!
Ich blogge unter yauh.de ,
tweete als @yauh ,
+1 als StephanHochhaus
und pushe als perlmonkey .
Automatisierte infrastruktur mit ansible
Nächste SlideShare
Wird geladen in …5
×

Automatisierte infrastruktur mit ansible

1.649 Aufrufe

Veröffentlicht am

Ansible hilft bei der Automatisierung des Configuration Managements. Welche Vorteile Ansible gegenüber manueller Installation bietet und auf welchen Grundprinzipien es aufbaut beschreibt dieser Talk.
Gehalten am 15.01.2014 bei der OpenTechSchool Dortmund.

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

Keine Downloads
Aufrufe
Aufrufe insgesamt
1.649
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
5
Aktionen
Geteilt
0
Downloads
14
Kommentare
0
Gefällt mir
2
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Automatisierte infrastruktur mit ansible

  1. 1. INFRASTRUKTUR MIT ANSIBLE Stephan Hochhaus ( @yauh ) 15. Januar 2014 bei der OpenTechSchool Dortmund .
  2. 2. WIE SIEHT EURE IT-INFRASTRUKTUR AUS? Wer hat einen eigenen (Web-)Server? Welches Betriebssystem? Wie viele Server sind es? Wie oft setzt ihr sie neu auf? Wie lange dauert das Aufsetzen? Wer hat schonmal ein Tutorial verfasst?
  3. 3. MEIN LEBEN VOR ANSIBLE 1. 2. 3. 4. 5. Grundsystem per Hand installieren Ggf. ausgefeilte shell-Skripte für Pakete ausführen Manuelles Anpassen von Konfigurationsdateien Fertiges System Ausprobieren von neuer Software/Konfiguration, andere Entwickler auf dem Server/Tests 6. Zerschießen des funktionierenden Systems
  4. 4. GEEKS SIND GEWINNERTYPEN
  5. 5. VORTEILE VON AUTOMATISIERUNG Beliebige (und leichte) Wiederholbarkeit Hohe Geschwindigkeit von Deployments Wiederherstellen von bekannten Zuständen Keine tiefen Systemkenntnisse notwendig
  6. 6. UND GANZ KONKRET Schneller Aufbau von Testsystemen Leichter Providerwechsel Continuous-Integration-Workflows realisieren "Zerschossene" Systeme wiederherstellen
  7. 7. WIESO NICHT SHELL/PERL-SKRIPTE? Skripte werden schnell extrem komplex Idempotenz - Unabhängig vom Ausgangszustand wird ein definierter Endzustand hergestellt (mehrfache Ausführung möglich) Bessere Übersichtlichkeit und Struktur durch Abstraktion Portabilität (z.B. verschiedene Linux Distros) Deklarativer Ansatz erlaubt höhere Produktivität als imperatives Vorgehen (wie soll das Ergebnis aussehen vs. was soll getan werden) Teilen von Playbooks mit Community
  8. 8. CONFIGURATION MANAGEMENT 2014 Stand: 13. Januar 2014 auf github
  9. 9. Leistungsfähige automation engine aus Basis von Playbooks Keine Agents auf Zielsystemen notwendig (SSH-Zugriff reicht) Standardmäßig push-Architektur, pull möglich Keine Programmierkenntnisse notwendig (statt dessen YAML und Jinja2) Aber funktional erweiterbar in beliebigen Programmiersprachen Kein Management von Windows oder Mac OS X Integration in Amazon EC2, Rackspace, OpenStack, VMWare, Vagrant, u.a. AWX (Web-GUI)
  10. 10. ARCHITEKTURÜBERBLICK
  11. 11. KERNBESTANDTEILE VON ANSIBLE Inventory - Beschreibt die Infrastruktur Module - Stellen Funktionen zur Verfügung Playbooks - Führen Aktionen in Infrastruktur durch
  12. 12. INVENTORY Hosts - Zielsysteme (Linux) Gruppen Organisatorische Zuordnung (z.B. geografisch, nach Funktion oder als Mischung)
  13. 13. BEISPIEL HOSTS-DATEI [esre] wbevr aah.xml.r pceeapeog lm.xml.r apeapeog [bevr dsre] d.xml.r beapeog lm.xml.r apeapeog [et ts] lm.xml.r apeapeog [rdcin pouto] aah.xml.r pceeapeog d.xml.r beapeog INI-Format
  14. 14. ES GIBT MODULE FÜR Monitoring Notification System Cloud Files Messaging Net Infrastructure Packaging Utilities Commands Internal Network Source Control Web Infrastructure Database Inventory
  15. 15. SYSTEM: PING
  16. 16. EIGENE MODULE Eigene Module können in Python oder einer beliebigen anderen Programmiersprache(!) verfasst sein.
  17. 17. PLAYBOOKS Playbooks sind deklarative Beschreibungen in YAML (Leerzeichen sind wichtig!) Tasks beschreiben den gewünschten Zustand Können Variablen und Schleifen verwenden Templates und Dateien lassen sich nutzen
  18. 18. NUTZER ANLEGEN UND LÖSCHEN --hss al ot: l ue:ro sr ot tss ak: #Adteue 'ale wt apiaygopo 'di' d h sr kye' ih rmr ru f amn -ue:nm=alecmet"awne LeFy"gopue sr aekye omn=Kyint e re ru=sr #Cet a24-i SHkyfrue kye rae 08bt S e o sr ale -ue:nm=alegnrt_s_e=e shkybt=08 sr aekye eeaeshkyys s_e_is24 #Rmv teue 'ale eoe h sr kye' -ue:nm=alesaeasn rmv=e sr aekye tt=bet eoeys
  19. 19. PLAY IT!
  20. 20. VARIABLEN FÜR TASKS Tasks können Variablen nutzen --hss al ot: l ue:ro sr ot vr: as ue:sehn sr tpa ue_w:$$$MD60aQgWS21 srpd 1$UYUb6uqJox. tss ak: -nm:"nt|Stu a acut ae Ii e p n con" ue:nm={ue } pswr={ue_w } sel/i/ah sr ae{ sr } asod{ srpd } hl=bnbs
  21. 21. SCHLEIFEN MIT ITEM tss ak: -nm:"nt|Sm sfwr sol b isald ae Ii oe otae hud e ntle" ato:atpg{ ie } saelts cin p k={ tm } tt=aet wt_tm: ihies -sd uo -oeshsre pns-evr -sh s
  22. 22. TEMPLATES UND DATEIEN Das Template-Modul erlaubt dynamische Anpassungen an Konfig-Dateien Mit Copy lassen sich Dateien 1:1 kopieren tmlt:sctmltsmmpcj ds=ecmmpc epae r=epae/str.2 et/t/str cp:sctmltsbcu.hds=urlclbnbcu.h oy r=epae/akps et/s/oa/i/akps
  23. 23. VARIABLEN IN TEMPLATES Jinja2 als Template-Sprache [let cin] ue=ot srro pswr={mslro_asod} asod{ yq.otpswr } my.cnf.j2
  24. 24. HANDLERS Verhalten sich ähnlich zu Tasks hnlr: ades -nm:rsatmsl ae etr yq ato:srienm=yq saersatd cin evc aemsl tt=etre
  25. 25. TAGS UND ROLES Tags bündeln Tasks und lassen sich gezielt ausführen Roles erlauben höhere Modularität in Playbooks tss ak: -nm:LM sol b isald ae AP hud e ntle ato:atpg{ ie } saelts cin p k={ tm } tt=aet wt_tm: ihies -aah2 pce -msl yq -pp h5 tg:lm as ap
  26. 26. ANSIBLE INSTALLIEREN MAC OS X $be isalasbe rw ntl nil LINUX $ppisalpym jna prmk i ntl yal ij2 aaio $ppisalasbe i ntl nil
  27. 27. BEI BEDARF AUCH MIT GUI Bis zu 10 Hosts lassen sich kostenlos mit AWX managen.
  28. 28. WEITERE RESSOURCEN ansibleworks.com - Die Webseite von Ansible galaxy.ansibleworks.com - Plattform für Ansible Playbooks/Roles Configuration Management 101 - Generelle Infos
  29. 29. ALTERNATIVEN Es gibt eine Vielzahl von Tools für automatisiertes Configuration Management: Ansible Puppet Chef cfengine salt
  30. 30. AUTOMATE ALL THE THINGS
  31. 31. FORK ME! Ich blogge unter yauh.de , tweete als @yauh , +1 als StephanHochhaus und pushe als perlmonkey .

×