Comment installer le Lita Chat Bot pour IRC sur Ubuntu 14.04

introduction

De nombreuses équipes DevOps modernes mettent de plus en plus d’infrastructures autour du forum de discussion. Il existe de nombreuses salles de discussion disponibles, allant des options commerciales (comme HipChat et Slack) aux options de bricolage (comme IRC ou Jabber / XMPP). L’une des principales motivations de cette infrastructure de discussion est due aux robots de discussion, que les équipes de DevOps utilisent pour faire leur travail plus rapidement et plus efficacement. Ce mouvement est parfois appelé ChatOps.

Cet article décrira comment installer le bot Lita, fortement inspiré de Hubit de GitHub. Lita est entièrement écrite en ruby ​​et fonctionne dans de nombreux types de salons de discussion, tels que HipChat, Campfire et IRC. Son utilité provient en grande partie des plug-ins que vous pouvez ajouter, qui permettent d’effectuer des recherches telles que la recherche sur Google ou le déploiement d’un site Web.

Dans ce didacticiel, nous allons suivre les étapes pour installer Lita sur votre propre serveur Ubuntu, le connecter à un canal IRC et commencer à installer des plugins.

Conditions préalables

Pour suivre ce tutoriel, vous aurez besoin de:

  • Un Ubuntu 14.04 Droplet.

  • Un utilisateur sudo non root, que vous pouvez configurer en suivant this tutorial.

  • Comme nous allons configurer Lita pour l’utiliser sur IRC, vous devrez également vous connecter à IRC et rejoindre un canal.

Il y a plusieurs façons d’accéder à IRC. Vous pouvez figurez votre propre serveur IRC, mais si vous êtes simplement Si vous essayez Lita, il est plus facile d’utiliser un serveur public (comme freenode, IRCnet ou EFnet).

Freenode a notamment un web chat disponible afin que vous puissiez vous connecter sans même télécharger un client IRC. Pour l’utiliser, choisissez un pseudonyme et un nom de chaîne uniques, puis cliquez sur * Connect *. Ce tutoriel supposera que vous utilisez Freenode.

Étape 1 - Installation de Lita

Dans cette étape, nous allons installer Lita et ses dépendances.

Nous devrons installer Ruby, la langue dans laquelle Lita est écrite. Bien que Ruby soit inclus dans les référentiels Ubuntu par défaut, la version de Ruby disponible dans 14.04 est trop ancienne pour que Lita fonctionne.

Commencez donc par charger un PPA (Personal Package Archive) ayant une version plus récente.

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

Puis mettez à jour les paquets sur votre serveur.

sudo apt-get update

Ensuite, installez Ruby et quelques dépendances supplémentaires nécessaires à Lita.

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

Enfin, nous installerons Lita à l’aide de RubyGems, un gestionnaire de paquets pour ruby ​​(un peu comme APT est un gestionnaire de paquets pour Ubuntu). APT utilise la commande + apt-get +; RubyGems utilise la commande + gem +.

Installez Lita et l’adaptateur Lita IRC.

sudo gem install lita
sudo gem install lita-irc

Étape 2 - Configuration de Lita

Le logiciel pour Lita est maintenant installé. À cette étape, nous allons créer un bot et le configurer pour qu’il se connecte à notre canal IRC.

La commande suivante va créer un nouveau bot. Remplacez ++ par un pseudo unique pour votre bot.

lita new

Cette commande créera également un répertoire dans votre répertoire personnel, + ~ / +, qui contient deux fichiers: + Gemfile + et + lita_config.rb +. + Gemfile + indique à Ruby les plugins à charger. + lita_config.rb + est l’endroit où tous les paramètres de configuration du plugin sont stockés. Pour le plugin + lita-irc +, + lita_config.rb + aura des informations sur le serveur IRC, le canal, le pseudo, etc.

Avant de pouvoir lancer Lita, nous devons éditer ces fichiers de configuration pour que votre bot sache comment se connecter à IRC. Commencez par changer dans le nouveau répertoire.

cd ~//

Ouvrez + Gemfile + pour éditer avec nano ou votre éditeur de texte préféré.

nano Gemfile

Recherchez la ligne + # gem" lita-irc "+ et supprimez le + # + `au début de la ligne, ce qui la décommente.

Extrait modifié par Gemfile

. . .

# Uncomment to use the IRC adapter


. . .

Puis enregistrez et fermez le fichier.

Ensuite, ouvrez le fichier + lita_config.rb +.

nano lita_config.rb

Changez le paramètre + config.robot.name + vers le haut du fichier de + Lita + en surnom de votre bot.

lita_config.rb extrait modifié

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

. . .

Un peu plus loin, changez le paramètre + config.robot.adapter de` : shell` en `: irc +`.

lita_config.rb extrait modifié

. . .

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

. . .

Ensuite, au bas du fichier, ajoutez les lignes suivantes (mises en surbrillance ci-dessous) avant la dernière ligne, + end +.

Veillez à bien copier l’indentation et à remplacer les variables d’espace réservé dans les lignes + config.adapters.irc.channels + et + config.adapters.irc.user + par votre nom de canal et votre nom de bot, respectivement. Si vous utilisez un serveur IRC autre que Freenode, vous devez également modifier le paramètre + config.adapters.irc.server +.

lita_config.rb extrait modifié

. . .

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








end

Enregistrez et fermez le fichier.

Pour obtenir une liste complète des options pouvant être transférées au plug-in ‘lita-irc’, consultez la page lita-irc du plugin].

Étape 3 - Connexion à un canal

Dans cette étape, nous allons démarrer le bot et définir un administrateur.

Assurez-vous que vous êtes connecté à IRC à l’aide du client IRC de votre choix ou d’un client Web et que vous êtes sur le canal auquel vous souhaitez que Lita adhère. Ensuite, lancez votre bot.

lita start

Vous verrez beaucoup de résultats. Après un moment, vous verrez votre bot rejoindre le canal IRC que vous avez spécifié.

À ce stade, nous n’avons pas dit à notre bot comment faire quoi que ce soit, ce n’est donc pas très utile pour le moment. Avant d’ajouter des fonctionnalités supplémentaires, définissons notre utilisateur en tant qu’administrateur. Pour ce faire, vous devrez demander à votre bot quel est votre identifiant. Envoyez la ligne suivante au canal IRC.

 users find

Votre bot répondra avec quelque chose comme ça:

La réponse de Lita dans IRC

your_irc_nickname<(ID: , Mention name: your_irc_nickname)

Copiez l’ID, puis arrêtez Lita en entrant + CTRL + C + dans le terminal de votre serveur.

Rouvrez le fichier + lita_config.rb +.

nano lita_config.rb

A la fin du fichier, avant la finale + end +, ajoutez la ligne suivante. Remplacez l’ID ici par l’ID que vous avez copié.

Extrait modifié par Gemfile

...

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



end

Enregistrez et fermez le fichier.

Étape 4 - Ajout de plugins

À ce stade, votre bot peut se connecter à IRC, mais c’est à peu près tout ce qu’il peut faire. Dans cette étape, nous allons installer un exemple de plug-in pour ajouter des fonctionnalités utiles.

Bien que vous puissiez écrire vos propres plugins en Ruby, il existe des centaines de plug-ins premade. Nous allons passer en revue l’installation du plug-in lita-dig (qui est un https://www.digitalocean.com/community/tutorial_series/an-introduction-to- Managing-dns [DNS] enregistrement plug-in) à titre d’exemple, mais le processus est très similaire pour les autres.

Commençons par installer le plugin + lita-dig +.

sudo gem install lita-dig

Ensuite, ouvrez + Gemfile + pour le rééditer.

nano Gemfile

Ajoutez la ligne suivante à la toute fin du fichier.

gem "lita-dig"

Enregistrez et fermez le fichier, puis redémarrez le bot.

lita start

C’est ça! Lorsque votre bot se reconnecte, envoyez la ligne suivante au canal IRC.

dig
Le bot répondra par plusieurs lignes, commençant par quelque chose comme `+

Réponse reçue de 8.8.8.8:53 (114 octets) + `. Cela signifie que votre plugin fonctionne!

Étape 5 - Écrire un script de démarrage

Jusqu’à présent, nous avons dû démarrer le bot manuellement à chaque étape. C’est bien pour les tests, mais il existe une meilleure solution. Dans cette étape, nous allons créer un script Upstart pour gérer le bot, facilitant ainsi son démarrage, son arrêt et son redémarrage. Pour un aperçu plus détaillé des scripts Upstart, consultez la page https://www.digitalocean.com/community/tutorials/the-upstart-event-system-what-it-is-and-how-to-use-it [ Tutoriel Upstart].

Commencez par créer un fichier nommé + lita-.conf dans` + / etc / init`.

sudo nano /etc/init/lita-.conf

Collez ce qui suit dans le fichier, en remplaçant «++» par le nom d’utilisateur de votre utilisateur sudo non-root sur votre serveur.

votre_nom_bot.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

Voici une brève explication de ce que fait ce script:

Les lignes + start on + et + stop on + indiquent à Ubuntu quand démarrer et arrêter le bot. La ligne + chdir + indique à Upstart dans quel répertoire se trouver lors de l’exécution de la commande + exec +, qui démarre le bot.

La ligne + env + est requise pour que l’application Ruby sache où se trouvent ses fichiers de paramètres. Les + setuid + et + setgid + indiquent à Upstart de lancer le bot en tant qu’utilisateur déterminé; Si ces lignes sont omises, Upstart lancera le bot en tant que root.

La ligne + respawn + demande à Upstart de relancer le bot s’il est interrompu ou planté. Le + respawn limit + empêche Upstart de réapparaître si le bot plante 10 fois en 5 secondes, ce qui indique un problème plus grave.

Nous pouvons vérifier que la syntaxe de ce script est correcte en utilisant un linter intégré, qui est un programme de vérification de la syntaxe, à l’aide de la commande suivante.

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

Si la syntaxe est correcte, vous devriez voir le résultat suivant.

Linter sortie correcte

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

Une fois que vous avez vérifié la syntaxe du fichier de configuration, démarrez le bot avec le script Upstart en entrant la commande suivante.

sudo start lita-

Vous devriez voir une ligne qui ressemble à ceci:

Sortie Upstart

lita- start/running, process 1234

Votre bot devrait rejoindre le canal IRC sous peu; vous pouvez maintenant vous déconnecter de votre serveur et le bot continuera à fonctionner.

Conclusion

Dans ce tutoriel, nous avons installé et configuré Lita avec un plugin et un script Upstart. Avec des noms de bots uniques et des scripts Upstart, vous pouvez même exécuter plusieurs robots dans différentes salles de discussion avec différents plugins.

Des entreprises entières gèrent toute leur infrastructure informatique à partir de chatbots, un peu comme celui-ci. Des points d’ancrage personnalisés aux services populaires de build CI, tels que Jenkins, en passant par le contrôle de vos référentiels GitLabs, l’utilisation d’un chatbot peut simplifier, rationaliser et automatiser votre travail.