< Return to Video

36C3 ChaosWest: Ansible all the Things

  • 0:00 - 0:18
    36C3 Vorspannmusik
  • 0:18 - 0:22
    Herald: Applaus, Applaus, Applaus,
    Applaus, weil an der Stelle ein riesiges
  • 0:22 - 0:26
    Applaus für Heiko Borchers.
    Applaus
  • 0:26 - 0:30
    Herald: Er ist Fachinformatiker und in
    seiner Vita steht, dass er sich von Autos
  • 0:30 - 0:35
    in der Cloud kümmert. Also ein spannendes
    Thema und er redet über „Ansible all the
  • 0:35 - 0:39
    things“. Darum viel Spaß und
    ich lerne jetzt bestimmt auch viel.
  • 0:39 - 0:44
    Applaus
  • 0:44 - 0:48
    Heiko Borchers: Ja, dann erst mal guten
    Morgen an Tag 1. Ich hätte nicht
  • 0:48 - 0:53
    gedacht, dass an Tag 1 um die frühe
    Uhrzeit schon so viele Leute hier sind.
  • 0:53 - 0:58
    Und ja ich werde darüber reden „Ansible
    all the things“, was mir dann tatsächlich
  • 0:58 - 1:08
    geholfen hat, wie ich Ansible gelernt
    habe. Zu mir: Ich bin Sysadmin, mach
  • 1:08 - 1:13
    hauptsächlich Cloud-Infrastruktur, wie der
    Pupe ja auch schon gesagt hatte. Großteil
  • 1:13 - 1:18
    davon ist für Elektroautos und eigentlich
    automatisiere ich mir halt am liebsten
  • 1:18 - 1:24
    alles weg. Und da sind halt dann für die
    Cloud Terraform und Ansible auch im
  • 1:24 - 1:30
    täglichen Einsatz und meine Motivation für
    diesen Talk war tatsächlich: Ansible ist
  • 1:30 - 1:34
    mein Lieblingstool und ich hab auf Twitter
    viel dieses Jahr gelesen: Ja eigentlich würde
  • 1:34 - 1:42
    ich das sehr gerne lernen aber wie fange
    ich an? Irgendwie kam viel, habe ich von
  • 1:42 - 1:47
    vielen Leuten gehört, dass sie keinen
    Startpunkt gefunden haben und da wollte
  • 1:47 - 1:53
    ich jetzt dann halt mal einen Startpunkt
    liefern. Erstmal: Warum mag ich Ansible so?
  • 1:53 - 1:57
    Ich arbeite viel mit Kundensystemen und
    da dann noch mal irgendwas zusätzliches zu
  • 1:57 - 2:04
    installieren ist vielleicht nicht ganz so
    optimal. Deswegen agentless, man braucht
  • 2:04 - 2:11
    auf dem Kundensystem später nichts mehr
    zusätzlich, hat relativ wenig, was die
  • 2:11 - 2:18
    Software noch rummüllt, es braucht nicht
    noch zusätzliche zentrale Infrastruktur,
  • 2:18 - 2:25
    wie man es teilweise mit Puppet hat, kann
    man haben, muss man nicht nutzen. Ich finde
  • 2:25 - 2:32
    es war relativ leicht zu lernen, es ist
    Open Source, was immer praktisch ist. Und
  • 2:32 - 2:35
    wenn man die Ansbile-Rollen richtig
    geschrieben hat, kann man sie einmal
  • 2:35 - 2:39
    laufen lassen, zweimal laufen lassen, das
    Ergebnis wird am Ende immer das Gleiche
  • 2:39 - 2:46
    sein. Ja, vielleicht: Warum nicht Ansible?
    Es ist nicht unbedingt schnell und man
  • 2:46 - 2:55
    muss YAML lernen und YAML ist pingelig, was
    Leerzeichen und Tabstops angeht. Da hat
  • 2:55 - 3:01
    man gerne mal ’ne falsche Einrückung und
    am Ende fliegt einem alles um die Ohren.
  • 3:01 - 3:08
    Dann fange ich auch direkt mit den Basics
    an: so sieht so eine Standard-
  • 3:08 - 3:14
    Ordnerstruktur aus von Ansible. Man hat
    seine config, man hat eventuell Hashes von
  • 3:14 - 3:21
    irgendwelchen Credentials. Man hat
    Variablen, die für ganze Gruppen da sind.
  • 3:21 - 3:27
    Man hat so ein hosts-File, wo sämtliche
    Server drin stehen, die man hat. Man hat
  • 3:27 - 3:31
    ein sogenanntes Playbook, in dem drin
    steht, was man mit seiner Infrastruktur
  • 3:31 - 3:37
    machen will und dann hat man verschiedene
    Rollen. Und ja, wie sieht so eine Config
  • 3:37 - 3:43
    aus? Das ist jetzt tatsächlich meine
    config, die ich auch normalerweise nutze.
  • 3:43 - 3:48
    Das ist tatsächlich halt wie jedes
    andere config-File unter x-beliebigen
  • 3:48 - 3:58
    Betriebssystemen: einfach nur Key
    und Value. Dann so ein ganz einfaches
  • 3:58 - 4:03
    Playbook. Das würde jetzt auf allen
    Hosts laufen, die man so in seinem
  • 4:03 - 4:08
    Inventory stehen hat. Wie das Inventory
    aussieht, zeige ich euch gleich noch.
  • 4:08 - 4:16
    Und man gibt hier halt noch ein
    Variablen-File an und hat dann
  • 4:16 - 4:19
    verschiedene Rollen. Das ist jetzt
    so das Playbook, was ich tatsächlich
  • 4:19 - 4:24
    immer als allererstes laufen
    lasse, installiert die Rolle Packages,
  • 4:24 - 4:30
    da werden einfach so die Standardpakete,
    die ich gerne habe, werden installiert.
  • 4:30 - 4:38
    Dann date_time: wird ein NTP-Server
    konfiguriert. Über den hosts wird
  • 4:38 - 4:43
    die /etc/hosts noch angepasst und mit der
    Rolle user kopiere ich tatsächlich meine
  • 4:43 - 4:47
    ganzen dot-files und alles, was ich gerne
    an config habe, direkt auf den Server,
  • 4:47 - 4:56
    damit ich überall so arbeiten kann, wie es
    mir am besten gefällt. Und ja da haben wir
  • 4:56 - 5:06
    dann jetzt so eine Rolle, das ist die
    user-Rolle. Und da gibt es dann halt auch
  • 5:06 - 5:10
    wieder so eine Ordnerstruktur. Die
    Ordnerstruktur lege ich mir für, jedes mal
  • 5:10 - 5:16
    wenn ich eine neue Rolle schreibe, lege
    ich mir diese Ordnerstruktur mit defaults,
  • 5:16 - 5:20
    files, handlers, tasks und vars halt
    einfach mit einem kleinen Bashskript an.
  • 5:20 - 5:27
    Die Ordner werden halt eh alle fast immer
    gebraucht. Das sind so defaults, wirklich
  • 5:27 - 5:36
    default-Werte, die man setzt. Files sind
    einfach nur Dateien, die ihr auf der
  • 5:36 - 5:41
    Maschine haben wollt, die keine Templates
    sind sondern tatsächlich feste Files,
  • 5:41 - 5:54
    Binaries oder halt bei mir meine dot-
    files. Und dann haben wir tatsächlich, das
  • 5:54 - 6:02
    sind die verschiedenen Tasks. Es wird das
    sudoer-File erstmal an einen sicheren Ort
  • 6:02 - 6:14
    kopiert, das Original. Dann wird
    tatsächlich einfach nur in der Datei ein
  • 6:14 - 6:27
    bisschen was geändert. Am Ende wird noch
    ein Sanity-Check gemacht und nach dem
  • 6:27 - 6:33
    Sanity-Check, wenn alles so funktionieren
    sollte, wird der ssh-daemon einfach neu
  • 6:33 - 6:39
    gestartet, damit man nicht … der Task ist
    tatsächlich dafür da dass man nicht immer
  • 6:39 - 6:43
    als root auf den Server connecten muss
    sondern mit seinem Nutzernamen und dann
  • 6:43 - 6:51
    mit seinem Nutzernamen sudo verwenden
    kann. Das ist der Handler, der dann
  • 6:51 - 6:56
    aufgerufen wird, um den ssh-daemon
    neu zu starten. Wird dann das Ansible-
  • 6:56 - 7:04
    Modul für systemd oder initV-Services
    benutzt und es wird einfach nur geguckt,
  • 7:04 - 7:10
    beziehungsweise der Service wird neu
    gestartet und wenn dann halt die Meldung
  • 7:10 - 7:18
    zurückkommt, „service has restarted“, ist
    der Handler dann auch abgeschlossen. So
  • 7:18 - 7:29
    sieht halt auch so ein Task aus, hat einen
    Namen, installiere die Base-Software, die
  • 7:29 - 7:37
    Pakete, wird geguckt, je nachdem welches
    OS, ob jetzt ein CentOS haben oder ein
  • 7:37 - 7:48
    Debian, und dann wird die Liste an Paketen
    einfach durch geguckt und das jeweilige
  • 7:48 - 8:02
    Paket installiert. Hier haben wir auch noch
    mal dieses notify, es gibt halt dann dem
  • 8:02 - 8:11
    Handler die Info. Und bei dem Tag habe ich
    halt noch reingeschrieben „new system“, das
  • 8:11 - 8:16
    Tag wird dann, wenn das System einmal
    konfiguriert ist, auch gelöscht. Und hier
  • 8:16 - 8:24
    haben wir jetzt so einen Auszug aus einem
    Variablen-File. Bei Debian heißen die
  • 8:24 - 8:29
    monitoring plugins, monitoring-plugins-
    basic. Bei Red Hat heißen sie nagios
  • 8:29 - 8:36
    plugins und auf Arch Linux heißen sie halt
    monitoring-plugins. und weil man in seiner
  • 8:36 - 8:44
    Rolle nicht jetzt in dem Fall drei
    verschiedene Plugins, also drei
  • 8:44 - 8:49
    verschiedene Paketnamen angeben will, hat
    man es halt in den Variablen-Dateien und
  • 8:49 - 8:53
    Ansible guckt vorher, welches
    Betriebssystem ist das jetzt, was ich
  • 8:53 - 8:58
    provisioniere und nimmt dann
    dementsprechend aus diesen Dreien das, was
  • 8:58 - 9:05
    für das Betriebssystem das Richtige ist.
    Dann gibt es auch noch Variablen, die
  • 9:05 - 9:12
    möchte man nicht unbedingt im Klartext
    haben. Wenn man zum Beispiel irgendwelche
  • 9:12 - 9:18
    Privat-Keys auf eine Maschine kopieren
    muss oder für ein Cluster oder
  • 9:18 - 9:23
    Datenbankserver-Sync, wenn man mit Key-
    Files arbeitet. Die schiebt man vielleicht
  • 9:23 - 9:27
    auch aus Versehen einmal ins git und dann
    liegen sie im Klartext in irgendeinem git-
  • 9:27 - 9:33
    Repo. Ist doof. Dafür hat Ansible halt das
    Ansible-Vault. Und dann steht da halt
  • 9:33 - 9:40
    erstmal nur drinnen: Ansible_Vault ist
    AES256 verschlüsselt und quasi zufällige
  • 9:40 - 9:44
    Daten und ja ich weiß die sehen jetzt
    nicht zufällig aus. Ich wollte hier keine
  • 9:44 - 9:55
    verschlüsselten Daten auf die Wand werfen.
    Und ja so von den Basics her war es das
  • 9:55 - 9:59
    auch. Was man für Ansible sonst noch
    braucht, ist einfach nur sein
  • 9:59 - 10:06
    Lieblingseditor, kann man mit vi oder
    emacs machen, kann man aber auch mit IDEs
  • 10:06 - 10:11
    machen. Aber eigentlich braucht man nur
    einen Texteditor und Ansible als Software
  • 10:11 - 10:17
    selber. Und was mir dabei tatsächlich
    geholfen hat, es vernünftig zu lernen,
  • 10:17 - 10:20
    war, ich habe mir meinen RaspberryPi
    zuhause genommen …
  • 10:20 - 10:27
    Moment, da hat ich doch auch noch eine
    Slide, wo ist die denn hin verschwunden?
  • 10:27 - 10:38
    Warum habe ich diese Slide übersprüngen?
    Das war nämlich das Inventory, das ist
  • 10:38 - 10:44
    halt auch wieder eine YAML-Datei.
    Hier habe ich jetzt die Gruppe
  • 10:44 - 10:48
    MeineServer: mein root-Server, auf dem
    auch die Präsentation gerade läuft und
  • 10:48 - 10:53
    mein RaspberryPi und um es mir selber
    beizubringen, habe ich tatsächlich auf dem
  • 10:53 - 10:58
    RaspberryPi so die kleinste Debian
    Installation genommen, die ich finden
  • 10:58 - 11:02
    konnte, und dann alles, was ich
    auf dem Pi zuhause haben wollte,
  • 11:02 - 11:07
    per Ansible drauf installiert.
    Erst mal mit kleinen Sachen
  • 11:07 - 11:13
    angefangen wie halt dem ntp-daemon
    konfigurieren, dann für zuhause
  • 11:13 - 11:17
    vielleicht nicht ganz so relevant, aber
    fail2ban konfigurieren. Solche kleineren
  • 11:17 - 11:21
    Sachen kann man relativ gut machen ohne
    dass man sich das komplette System
  • 11:21 - 11:26
    zerschießt. Und dann halt später immer
    größer werden. Und das ist tatsächlich
  • 11:26 - 11:32
    auch mein Tipp: Wer es lernen möchte, nimmt
    sich halt einfach den Kleinstcomputer der
  • 11:32 - 11:39
    Wahl, packt da ein Linux drauf und bewirft
    den erstmal mit Ansible. Von der
  • 11:39 - 11:42
    Performance her tut sich da eh nicht
    soviel, ob man jetzt ein RaspberryPi oder
  • 11:42 - 11:47
    einen großen Rechner nimmt. Viel bei
    Ansible ist Ausprobieren, Warten, Failen,
  • 11:47 - 11:57
    noch mal ausprobieren. Und, ja, ansonsten
    wäre ich jetzt durch. Wenn Fragen sind,
  • 11:57 - 12:01
    könnt ihr gerne auch noch Fragen stellen.
    Herald: Erstmal einen warmen Applaus bevor
  • 12:01 - 12:05
    wir hier irgendwie mit
    Fragen anfangen, weil …
  • 12:05 - 12:08
    Applaus
  • 12:08 - 12:13
    Herald: So, es werden sich ja gleich hier
    links und rechts die Lampen zum
  • 12:13 - 12:18
    Telefonjoker eröffnen, das heißt, wer
    Fragen hat, gerne dort. Wo kann man dich
  • 12:18 - 12:22
    erreichen, wenn man jetzt irgendwie Blut
    geleckt hat, mit dem was du hier gemacht
  • 12:22 - 12:26
    hast, dass man während des Congress noch
    mal auf dich zukommt, in welchem …
  • 12:26 - 12:29
    Heiko: auf dem Congress, ich renn
    eigentlich immer rum
  • 12:29 - 12:32
    Herald: Stehst unter deinen
    Namen im DECT-System?
  • 12:32 - 12:36
    Heiko: Ja, ich stehe unter meinem Namen im
    DECT-System. Die Slides werde ich auch
  • 12:36 - 12:41
    gleich dann by Chaos-West beim Talk noch
    hinzufügen, wer sie sich noch mal angucken
  • 12:41 - 12:45
    will. Und in den Slides steht auch später
    noch der Link zum GitHub-Repo mit den
  • 12:45 - 12:48
    Slides selber.
    Herald: Ja, das ist ja vorbildlich! Da
  • 12:48 - 12:52
    würde ich sagen volle Punktzahl, keine
    Fragen mehr, an der Stelle dann aber
  • 12:52 - 12:55
    nochmal ein Applaus, weil so einfach
    lassen wir keinen von der Bühne gehen.
  • 12:55 - 12:58
    Applaus
  • 12:58 - 13:04
    Abspannmusik
  • 13:04 - 13:25
    Untertitel erstellt von c3subtitles.de
    im Jahr 2020. Mach mit und hilf uns!
Title:
36C3 ChaosWest: Ansible all the Things
Description:

more » « less
Video Language:
German
Duration:
13:25

German subtitles

Revisions