Hosted by @synyx_ka
Presenters @verschdl @cyxchris
ChatOps = Kommunikation + Kollaboration + DevOps
Klassische Admin Arbeit: Dev --> Anfrage (z.B. Telefon) nach Admin --> macht was --> Antwort
- --> "synchrone Requests"
- Evtl. Redundanz, weil nur die direkt an Kommunikation Beteiligten etwas mitkriegen (A ruft B an, C hat die gleiche Anfrage, kriegt aber nichts davon mit)
Erste "Verbesserung" --> Kommunikation für Teams (Chat, IRC...)
- Anfrage (über Chat) nach Admin --> Admin erledigt Anfrage, schreibt im Chat --> alle kriegen's mit
Nächste Verbesserung: Chatbot, der über Chat-Befehle z.B. Accounts anlegt demobot: gitlab add john:cust1
- "Seiteneffekt": Doku ohne extra Aufwand
Nächste Verbesserung: shared shell / Scriptsammlung --> Bot
- "private Script Sammlung" --> in Git --> bei updates muss jeder pullen...
- Script Sammlung "in Bot werfen" --> keiner muss mehr Code sehen
- Befehle sind jetzt unabhängig vom ausführenden System (Mac Win Linux...) (weil vom Bot ausgeführt)
- Bot reagiert nur auf "bekanntes" Befehlsset
- User brauchen keinen Zugriff auf Server / Shell, nur Zugriff auf IRC
Wissensverteilung im Team
- geschieht "nebenher" durch "Mitlesen" im Chat
- "einfache Tasks" können auf User verlagert werden
Sicherheit
- Bot ist sehr mächtig --> Sicherheitskonzept notwendig
- ACLs notwendig, geregelt über chat-nickname und Anmeldung am Chat
- Bot mit Befehlen anreichern, die Zugriffsrechte an Bot Kommandos vergeben können
Zukunftsvision
- SSH Daemon abschalten
- Zugriff auf Server nur noch über definierte APIs durch Bot
Webhooks im Bot
- Bot hat webhooks mit denen er von "aussen" angesprochen werden kann
- z.B. für den Versand von Jenkins-Notifications
- Bot kann auch auf "severities" reagieren --> wichtige Nachrichten entsprechend hervorheben
- webhook für Infos von Vorgängen, die nicht von Bot getriggert wurden
Verwendetes Tools:
- Hubot https://hubot.github.com/ (JS, coffeescript) ** https://npmjs.com/search?q=hubot (hubot-script) ** github.com/hubot/hubot-scripts ** Hubot synyx
- Lita (Ruby) https://www.lita.io/
- Eggdrop (Tcl) (scheisse)
- Slack chat integration
Don't s:
- offtopic scripte (z.B. Wetterdienste...)
- offtopic chat
Commands:
set -uf -o pipefail
- get exit code of first error in shell scripts
You can also set up hubot with rocket chat if you want on premise. Rc also comes with webhooks, which we successfully used to post Jenkins updates into our chart rooms.