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
Bezogen auf Security find ich diesen Punkt hier sehr interessant:
Gefunden auf victorops.com