So installieren Sie den Lita Chat Bot für IRC unter Ubuntu 14.04

Einführung

Viele moderne DevOps-Teams stellen immer mehr Infrastruktur in den Chatroom. Es stehen zahlreiche Chatrooms zur Verfügung, von kommerziellen Optionen (wie HipChat und Slack) bis zu DIY-Optionen (wie IRC oder Jabber / XMPP). Eine der Hauptmotive für diese Chatroom-Infrastruktur sind Chatroom-Bots, mit denen DevOps-Teams ihre Arbeit schneller und effizienter erledigen. Diese Bewegung wird manchmal als ChatOps bezeichnet.

Dieser Artikel beschreibt, wie der Bot Lita installiert wird, der stark von GitHubs Hubot inspiriert ist. Lita ist komplett in Ruby geschrieben und arbeitet in vielen Chatrooms wie HipChat, Campfire und IRC. Das Hilfsprogramm basiert hauptsächlich auf den Plug-ins, die Sie hinzufügen können, beispielsweise zum Durchführen einer Google-Suche oder zum Bereitstellen einer Website.

In diesem Tutorial werden wir die Schritte zur Installation von Lita auf Ihrem eigenen Ubuntu-Server durchgehen, es mit einem IRC-Kanal verbinden und mit der Installation von Plugins beginnen.

Voraussetzungen

Um diesem Tutorial zu folgen, benötigen Sie:

  • Ein Ubuntu 14.04 Droplet.

  • Ein sudo-Benutzer ohne Rootberechtigung, den Sie einrichten können, indem Sie this tutorial folgen.

  • Da wir Lita für die Verwendung im IRC einrichten, müssen Sie sich auch selbst mit dem IRC verbinden und einem Kanal beitreten.

Es gibt verschiedene Möglichkeiten, auf IRC zuzugreifen. Sie können https://www.digitalocean.com/community/tutorials/how-to-run-an-unrealircd-chat-server-on-debian-7 Ihren eigenen IRC-Server einrichten], aber wenn Sie nur sind Wenn Sie Lita ausprobieren, ist es einfacher, einen öffentlichen Server (wie freenode, IRCnet oder EFnet) zu verwenden.

Insbesondere bei Freenode steht ein einfacher web chat zur Verfügung, mit dem Sie eine Verbindung herstellen können, ohne einen IRC-Client herunterladen zu müssen. Um es zu verwenden, wählen Sie einen eindeutigen Spitznamen und einen Kanalnamen und klicken Sie dann auf * Verbinden *. In diesem Tutorial wird davon ausgegangen, dass Sie Freenode verwenden.

Schritt 1 - Lita installieren

In diesem Schritt installieren wir Lita und seine Abhängigkeiten.

Wir müssen Ruby installieren, die Sprache, in der Lita geschrieben ist. Obwohl Ruby in den Standard-Ubuntu-Repositories enthalten ist, ist die in 14.04 verfügbare Version von Ruby zu alt, als dass Lita funktionieren könnte.

Laden Sie also zuerst ein PPA (Personal Package Archive) mit einer aktuelleren Version.

sudo apt-add-repository ppa:brightbox/ruby-ng

Aktualisieren Sie dann die Pakete auf Ihrem Server.

sudo apt-get update

Als nächstes installieren Sie Ruby und einige zusätzliche Abhängigkeiten, die Lita benötigt.

sudo apt-get install ruby2.2 ruby2.2-dev build-essential libssl-dev redis-server

Schließlich installieren wir Lita mit RubyGems, einem Paketmanager für Ruby (ähnlich wie APT ein Paketmanager für Ubuntu). APT benutzt den Befehl + apt-get +; RubyGems benutzt den Befehl + gem +.

Installieren Sie Lita und den Lita-IRC-Adapter.

sudo gem install lita
sudo gem install lita-irc

Schritt 2 - Lita konfigurieren

Die Software für Lita ist jetzt installiert. In diesem Schritt erstellen wir einen Bot und richten ihn für die Verbindung mit unserem IRC-Kanal ein.

Der folgende Befehl erstellt einen neuen Bot. Ersetzen Sie ++ durch einen eindeutigen Nick für Ihren Bot.

lita new

Dieser Befehl erstellt auch ein Verzeichnis in Ihrem Homedir, "+ ~ / ", das zwei Dateien enthält: " Gemfile " und " lita_config.rb ". ` Gemfile ` teilt Ruby mit, welche Plugins geladen werden sollen. In " lita_config.rb " werden alle Plugin-Konfigurationseinstellungen gespeichert. Für das Plugin " lita-irc " enthält " lita_config.rb +" Informationen zum IRC-Server, Kanal, Spitznamen usw.

Bevor wir Lita starten können, müssen wir diese Konfigurationsdateien bearbeiten, damit Ihr Bot weiß, wie er sich mit dem IRC verbindet. Wechseln Sie zunächst in das neue Verzeichnis.

cd ~//

Öffnen Sie + Gemfile + zum Bearbeiten mit nano oder Ihrem bevorzugten Texteditor.

nano Gemfile

Suchen Sie die Zeile + # gem" lita-irc "+ und entfernen Sie das + # + `am Anfang der Zeile, wodurch das Kommentarzeichen entfernt wird.

Gemfile modifizierter Auszug

. . .

# Uncomment to use the IRC adapter


. . .

Speichern und schließen Sie dann die Datei.

Öffnen Sie als nächstes die Datei "+ lita_config.rb +".

nano lita_config.rb

Ändern Sie den Parameter "+ config.robot.name " oben in der Datei von " Lita +" in den Spitznamen Ihres Bots.

lita_config.rb modifizierter Auszug

Lita.configure do |config|
 # The name your robot will use.
 config.robot.name = ""

. . .

Etwas weiter unten ändern Sie den Parameter "+ config.robot.adapter" von ": shell" in ": irc +".

lita_config.rb modifizierter Auszug

. . .

 # The adapter you want to connect with. Make sure you've added the
 # appropriate gem to the Gemfile.
 config.robot.adapter =

. . .

Fügen Sie dann am Ende der Datei die folgenden Zeilen (unten hervorgehoben) vor der letzten Zeile "+ end +" ein.

Stellen Sie sicher, dass Sie den Einzug korrekt kopieren und ersetzen Sie die Platzhaltervariablen in den Zeilen "+ config.adapters.irc.channels " und " config.adapters.irc.user " durch Ihren Kanalnamen bzw. Ihren Botnamen. Wenn Sie einen anderen IRC-Server als Freenode verwenden, sollten Sie auch den " config.adapters.irc.server +" entsprechend ändern.

lita_config.rb modifizierter Auszug

. . .

 ## Example: Set configuration for any loaded handlers. See the handler's
 ## documentation for options.
 # config.handlers.some_handler.some_config_key = "value"








end

Speichern und schließen Sie die Datei.

Eine vollständige Liste der Optionen, die an das "lita-irc" -Plugin übergeben werden können, finden Sie auf der GitHub-Seite des https://github.com/jimmycuadra/lita-irc[lita-irc -Plugins.

Schritt 3 - Anschließen an einen Kanal

In diesem Schritt starten wir den Bot und legen einen Admin fest.

Stellen Sie sicher, dass Sie mit dem IRC-Client Ihrer Wahl oder einem Webclient mit IRC verbunden sind und sich in dem Kanal befinden, dem Lita beitreten soll. Dann starten Sie Ihren Bot.

lita start

Sie werden viel Output sehen. Nach einem Moment wird Ihr Bot dem von Ihnen angegebenen IRC-Kanal beitreten.

Zu diesem Zeitpunkt haben wir unserem Bot noch nicht gesagt, wie er etwas tun soll, daher ist es noch nicht sehr nützlich. Bevor wir einige zusätzliche Funktionen hinzufügen, definieren wir unseren Benutzer als Administrator. Dazu müssen Sie Ihren Bot nach Ihrer ID fragen. Sende die folgende Zeile an den IRC-Kanal.

 users find

Ihr Bot wird folgendermaßen antworten:

Litas Antwort im IRC

your_irc_nickname<(ID: , Mention name: your_irc_nickname)

Kopieren Sie die ID und beenden Sie Lita, indem Sie im Terminal Ihres Servers "+ STRG + C +" eingeben.

Öffnen Sie die Datei "+ lita_config.rb +" erneut.

nano lita_config.rb

Fügen Sie am Ende der Datei vor dem letzten "+ end +" die folgende Zeile ein. Ersetzen Sie die ID hier durch die ID, die Sie kopiert haben.

Gemfile modifizierter Auszug

...

 config.adapters.irc.cinch = lambda do |cinch_config|
   cinch_config.max_reconnect_delay = 123
 end



end

Speichern und schließen Sie die Datei.

Schritt 4 - Plugins hinzufügen

Zu diesem Zeitpunkt kann Ihr Bot eine Verbindung zum IRC herstellen, aber das ist alles, was er tun kann. In diesem Schritt installieren wir ein Beispiel-Plugin, um einige nützliche Funktionen hinzuzufügen.

Während Sie in Ruby Ihre eigenen Plugins schreiben können, stehen Hunderte von premade plugins zur Auswahl. Wir werden das lita-dig Plugin installieren. Beispiel: Such-Plug-in für DNS-Einträge (Managing-DNS [DNS Record). Bei anderen ist der Vorgang jedoch sehr ähnlich.

Zuerst installieren wir das Plugin "+ lita-dig +".

sudo gem install lita-dig

Öffnen Sie als nächstes + Gemfile + zum erneuten Bearbeiten.

nano Gemfile

Fügen Sie die folgende Zeile ganz am Ende der Datei hinzu.

gem "lita-dig"

Speichern und schließen Sie die Datei und starten Sie den Bot neu.

lita start

Das ist es! Wenn sich Ihr Bot wieder verbindet, senden Sie die folgende Zeile an den IRC-Kanal.

dig
Der Bot antwortet mit mehreren Zeilen, beginnend mit `+

Antwort erhalten von 8.8.8.8:53 (114 Bytes) + `. Dies bedeutet, dass Ihr Plugin funktioniert!

Schritt 5 - Schreiben eines Upstart-Skripts

Bisher mussten wir den Bot in jedem Schritt manuell starten. Dies ist gut zum Testen, aber es gibt eine bessere Lösung. In diesem Schritt erstellen wir ein Upstart-Skript, um den Bot zu verwalten und das Starten, Stoppen und Neustarten zu vereinfachen. Weitere Informationen zu Upstart-Skripten finden Sie unter https://www.digitalocean.com/community/tutorials/the-upstart-event-system-what-it-is-and-ow- to-use-it [ Tutorial starten].

Erstellen Sie zunächst eine Datei mit dem Namen "+ lita-.conf" in "+ / etc / init".

sudo nano /etc/init/lita-.conf

Fügen Sie Folgendes in die Datei ein und ersetzen Sie "++" durch den Benutzernamen Ihres sudo-Nicht-Root-Benutzers auf Ihrem Server.

Ihr_Bot-Name.conf ’> / etc / init / lita-.conf

start on runlevel [2345]
stop on runlevel [^2345]

chdir /home//
env HOME=/home/
setuid
setgid

respawn
respawn limit 10 5

exec lita start

Hier finden Sie eine kurze Erklärung der Funktionsweise dieses Skripts:

Die Zeilen + start on + und + stop on + teilen Ubuntu mit, wann der Bot gestartet und gestoppt werden soll. Die Zeile + chdir + teilt Upstart mit, in welchem ​​Verzeichnis sich der Bot befinden soll, wenn der Befehl + exec + ausgeführt wird.

Die Zeile + env + ist erforderlich, damit die Ruby-Anwendung weiß, wo sich ihre Einstellungsdateien befinden. Die + setuid + und + setgid + weisen Upstart an, den Bot als bestimmten Benutzer zu starten. Wenn diese Zeilen weggelassen werden, startet Upstart den Bot als root.

Die Zeile "+ respawn " weist Upstart an, den Bot neu zu starten, wenn er unterbrochen wird oder abstürzt. Das " Respawn-Limit +" verhindert, dass Upstart erneut startet, wenn der Bot 10-mal in 5 Sekunden abstürzt, was auf ein größeres Problem hinweist.

Wir können überprüfen, ob die Syntax in diesem Skript korrekt ist, indem wir einen integrierten linter verwenden, bei dem es sich um ein Syntaxprüfprogramm handelt. Verwenden Sie dazu den folgenden Befehl.

sudo init-checkconf /etc/init/lita-.conf

Wenn die Syntax korrekt ist, sollte die folgende Ausgabe angezeigt werden.

Korrigieren Sie die Linter-Ausgabe

File /etc/init/lita-.conf: syntax ok.

Nachdem Sie die Syntax der Konfigurationsdatei überprüft haben, starten Sie den Bot mit dem Upstart-Skript, indem Sie den folgenden Befehl eingeben.

sudo start lita-

Sie sollten eine Zeile sehen, die so aussieht:

Starten Sie die Ausgabe

lita- start/running, process 1234

Ihr Bot sollte sich in Kürze dem IRC-Kanal anschließen. Sie können sich jetzt von Ihrem Server abmelden und der Bot läuft weiter.

Fazit

In diesem Tutorial haben wir Lita mit einem Plugin und einem Upstart-Skript installiert und konfiguriert. Mit eindeutigen Bot-Namen und Upstart-Skripten können Sie sogar mehrere Bots in verschiedenen Chatrooms mit verschiedenen Plugins ausführen.

Ganze Unternehmen betreiben ihre gesamte IT-Infrastruktur über Chatbots wie diesen. Von benutzerdefinierten Hooks bis hin zu gängigen CI-Build-Services wie Jenkins und zur Steuerung Ihrer GitLabs-Repositorys kann die Verwendung eines Chatbots Ihre Arbeit vereinfachen, rationalisieren und automatisieren.