Automatisierte infrastruktur mit ansible

download Automatisierte infrastruktur mit ansible

of 32

  • date post

    16-Jun-2015
  • Category

    Technology

  • view

    655
  • download

    0

Embed Size (px)

description

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.

Transcript of Automatisierte infrastruktur mit ansible

  • 1. INFRASTRUKTUR MIT ANSIBLE Stephan Hochhaus ( @yauh ) 15. Januar 2014 bei der OpenTechSchool Dortmund .

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. MEIN LEBEN VOR ANSIBLE 1. 2. 3. 4. 5.Grundsystem per Hand installieren Ggf. ausgefeilte shell-Skripte fr Pakete ausfhren Manuelles Anpassen von Konfigurationsdateien Fertiges System Ausprobieren von neuer Software/Konfiguration, andere Entwickler auf dem Server/Tests 6. Zerschieen des funktionierenden Systems 4. GEEKS SIND GEWINNERTYPEN 5. VORTEILE VON AUTOMATISIERUNG Beliebige (und leichte) Wiederholbarkeit Hohe Geschwindigkeit von Deployments Wiederherstellen von bekannten Zustnden Keine tiefen Systemkenntnisse notwendig 6. UND GANZ KONKRET Schneller Aufbau von Testsystemen Leichter Providerwechsel Continuous-Integration-Workflows realisieren "Zerschossene" Systeme wiederherstellen 7. WIESO NICHT SHELL/PERL-SKRIPTE? Skripte werden schnell extrem komplex Idempotenz - Unabhngig vom Ausgangszustand wird ein definierter Endzustand hergestellt (mehrfache Ausfhrung mglich) Bessere bersichtlichkeit und Struktur durch Abstraktion Portabilitt (z.B. verschiedene Linux Distros) Deklarativer Ansatz erlaubt hhere Produktivitt als imperatives Vorgehen (wie soll das Ergebnis aussehen vs. was soll getan werden) Teilen von Playbooks mit Community 8. CONFIGURATION MANAGEMENT 2014Stand: 13. Januar 2014 auf github 9. Leistungsfhige automation engine aus Basis von Playbooks Keine Agents auf Zielsystemen notwendig (SSH-Zugriff reicht) Standardmig push-Architektur, pull mglich 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. ARCHITEKTURBERBLICK 11. KERNBESTANDTEILE VON ANSIBLE Inventory - Beschreibt die Infrastruktur Module - Stellen Funktionen zur Verfgung Playbooks - Fhren Aktionen in Infrastruktur durch 12. INVENTORY Hosts - Zielsysteme (Linux) Gruppen Organisatorische Zuordnung (z.B. geografisch, nach Funktion oder als Mischung) 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 beapeogINI-Format 14. ES GIBT MODULE FR Monitoring Notification System Cloud Files MessagingNet Infrastructure Packaging Utilities Commands InternalNetwork Source Control Web Infrastructure Database Inventory 15. SYSTEM: PING 16. EIGENE MODULE Eigene Module knnen in Python oder einer beliebigen anderen Programmiersprache(!) verfasst sein. 17. PLAYBOOKS Playbooks sind deklarative Beschreibungen in YAML (Leerzeichen sind wichtig!) Tasks beschreiben den gewnschten Zustand Knnen Variablen und Schleifen verwenden Templates und Dateien lassen sich nutzen 18. NUTZER ANLEGEN UND LSCHEN --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. PLAY IT! 20. VARIABLEN FR TASKS Tasks knnen 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. 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. 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. VARIABLEN IN TEMPLATES Jinja2 als Template-Sprache [let cin] ue=ot srro pswr={mslro_asod} asod{ yq.otpswr }my.cnf.j2 24. HANDLERS Verhalten sich hnlich zu Tasks hnlr: ades -nm:rsatmsl ae etr yq ato:srienm=yq saersatd cin evc aemsl tt=etre 25. TAGS UND ROLES Tags bndeln Tasks und lassen sich gezielt ausfhren Roles erlauben hhere Modularitt 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. ANSIBLE INSTALLIEREN MAC OS X$be isalasbe rw ntl nilLINUX $ppisalpym jna prmk i ntl yal ij2 aaio $ppisalasbe i ntl nil 27. BEI BEDARF AUCH MIT GUIBis zu 10 Hosts lassen sich kostenlos mit AWX managen. 28. WEITERE RESSOURCEN ansibleworks.com - Die Webseite von Ansible galaxy.ansibleworks.com - Plattform fr Ansible Playbooks/Roles Configuration Management 101 - Generelle Infos 29. ALTERNATIVEN Es gibt eine Vielzahl von Tools fr automatisiertes Configuration Management: Ansible Puppet Chef cfengine salt 30. AUTOMATE ALL THE THINGS 31. FORK ME! Ich blogge unter yauh.de , tweete als @yauh , +1 als StephanHochhaus und pushe als perlmonkey .