Veeam Plugin for PoshBot chat bot

Vor kurzem bin ich auf das Chat Bot Projekt PoshBot gestoßen, dabei handelt es sich um einen in PowerShell verfassten Slack Bot. Da ich diese Art des operativen Vorgehens schon länger spannend finde, habe ich mich daran gesetzt durch mein eigenes Veeam Plugin for PoshBot die Funktionalität etwas zu erweitern. Denn nur durch relevante Befehle und Funktionen wird ein solches Tool vom ‚Spielzeug‘ auch  zu einem echten Hilfsmittel.
Das PoshBot Projekt macht es einem durch seine gute Dokumentation wirklich sehr einfach einen Einstieg zu finden. Innerhalb von weniger Stunden war ich in der Lage die ChatBot App in meinen Slack Channel einzubinden und den ersten Befehl meines eigenen Plugins aufzurufen.

Veeam Plugin for PoshBot - Get-VeeamRepositories

Mittlerweile habe ich noch zwei weitere Kommandos hinzugefügt und es folgen hoffentlich bald noch viele weitere.

Veeam Plugin for PoshBot - Get-VeeamJobSessions

Veeam Plugin for PoshBot - Get-VeeamJobs

Update 30.11.2017:

Veeam Plugin for PoshBot - Start-VeeamQuickBackup

Wie Starte ich PoshBot

Ich habe meinen Einstieg in das Thema durch den tollen Artikel von Warren F. gefunden. In diesem Artikel werden unter anderem verschiedene Wege aufgeführt wie man den PoshBot Prozess startet (ist auch in der ReadTheDocs Doku des Projekts zu finden). Ich habe mir der Einfachheit halber eine PowerShell Funktion geschrieben um den Chat Bot in meiner Konfiguration nach Bedarf zu starten. In der Produktion ist sicher die Implementation als Dienst sinnvoller.

Allgemeine Voraussetzungen:

Veeam Plugin Voraussetzungen:

  • Veeam PowerShell Snapin
  • User hat Vollzugriff im Veeam Backup & Replication Server
    • Egal ob manuell gestartet oder als Dienst ausgeführt
  • Nicht zwingend erforderlich aber ratsam wäre es, PoshBot direkt auf dem Veeam Backup & Replication Server auszuführen
    • dadurch erspart man sich bei den Kommandos den optionalen Parameter   --brserver

Input Parameter für die Funktion ist dann nur noch der Slack API Token für den Bot (vorausgesetzt das PoshBot Modul ist bereits Installiert).

Mein Veeam Plugin for PoshBot

In dem Artikel von Warren F wird auch auf die Entwicklung von Plugin für PoshBot eingegangen. Ich fand jedoch den Abschnitt Developing Plugins der Projekt Dokumentation etwas übersichtlicher.

Was mich nun wirklich begeistert hat an dem PoshBot Konzept ist, dass man seine bestehenden PowerShell Funktionen mit wenigen Anpassungen zu einem PoshBot Plugin umwandeln kann. Genau das habe ich auch mit meinem PRTG Veeam Advanced Sensor gemacht indem ich dieses Skript in zwei PowerShell Funktionen aufgeteilt habe: Get-VeeamRepositoriesGet-VeeamJobSessions und Get-VeeamJobs. Sehr schnell war ich aber mit dem Detailgrad der Ausgabe von Get-VeeamJobSessions unzufrieden und habe mit Hilfe des PowerShell-VeeamAllStats Moduls von Timothy Dewin meine Funktion erweitert.

Get-VeeamRepositories

Die Zeilen 13-16 und 94-105 sind die einzigen PoshBot spezifischen Ergänzungen die aus einer normalen PowerShell Funktion ein PoshBot Kommando mit Aliasen, Rechten und übersichtlicher Ausgabe macht

Veeam Plugin for PoshBot - Get-VeeamRepositories Full

Get-VeeamJobSessions

In meinem Veeam Plugin for PoshBot verwendete Klassen und Funktionen aus dem genialen PowerShell-VeeamAllStats Modul von Timothy Dewin:

Veeam Plugin for PoshBot - Get-VeeamJobSessions

Detailansicht eines Jobs:

Veeam Plugin for PoshBot - Get-VeeamJobSessions Full

Der Aufruf mit dem alternativen PoshBot Kommando und dem Alias für Get-VeeamSessions aus dem Veeam Plugin for PoshBot sieht in meinem Falls so aus:

Veeam Plugin for PoshBot - bender, JobSessions

Get-VeeamJobs

Veeam Plugin for PoshBot - Get-VeeamJobs

Start-VeeamQuickBackup

Veeam Plugin for PoshBot - Start-VeeamQuickBackup

Install Veeam Plugin for PoshBot

Um mein Veeam Plugin for PoshBot ganz unkompliziert zur Verfügung zu stellen habe ich es mit dem entsprechenden Tag in der PowerShell Gallery veröffentlicht. Alle verfügbaren Plugins lassen sich mit dem Kommando !find-plugin ganz einfach auflisten und mit !install-plugin auch direkt installieren.

Veeam Plugin for PoshBot - Install-Plugin

Nach der Installation steht auch die Hilfe zu dem Plugin zur Verfügung. Besonders interessant sind hierbei auch die Aliase für die Kommandos, damit ist die Eingabe (besonders am Smartphone) doch etwas flotter.

Veeam Plugin for PoshBot - Plugin Help

Ebenso kann die Hilfe für die einzelnen Kommandos des Plugins angezeigt werden und auch die notwendigen Rechte geprüft werden, dazu aber später mehr.

Veeam Plugin for PoshBot - Command Help

Mit dem Slack Befehl  !help poshbot.veeam:Get-VeeamJobSessions --detailed kann die vollständige Hilfe für das Kommando, inklusive Beispielen aufgerufen werden.

Die Ausführung der Kommandos des Plugins ist dank Access Control nochmal eine andere Sache:

Veeam Plugin for PoshBot - Not authorized

Nachdem der Slack User der passenden Gruppe zugeordnet wurde, klappt es aber auch mit den Kommandos:

Veeam Plugin for PoshBot - Authorized

Die Gruppe habe ich vorab mit den entsprechenden Befehlen vorbereitet und die Rechte für das Veeam Plugin for PoshBot vergeben:

Weiterentwicklung Veeam Plugin for PoshBot

Wie so viele meiner Projekte ist auch dieses im Status „Work in Progress“ und ich würde mich über etwas Input freuen welche Funktionen praktisch oder hilfreich wären.

Ich bin dankbar über jeden Kommentar zu diesem Beitrag bzw. Issue oder Enhancement Request in dem dazugehörigen  GitHub Projekt.

Hat Ihnen der Beitrag gefallen?

Nutzen Sie gerne für Ihren nächsten Amazon Einkauf diesen Affiliate Link und unterstützt Sie damit den Author des Artikels: http://amzn.to/2pAgZOD

Um schnell und einfach Ihre lieblings Blogs und Autoren zu unterstützen, ist der Dienst Flattr ebenfalls eine tolle Möglichkeit!

Vielen Dank!

Kommentar verfassen