Как установить бот Lita Chat для IRC в Ubuntu 14.04

Вступление

Многие современные команды DevOps размещают все больше инфраструктуры вокруг чата. Есть много доступных чатов, от коммерческих вариантов (таких как HipChat и Slack) до вариантов DIY (таких как IRC или Jabber / XMPP). Одна из основных движущих сил инфраструктуры чатов заключается в том, что боты для чатов используются командами DevOps для ускорения и повышения эффективности работы. Это движение иногда называют ChatOps.

В этой статье будет рассказано, как установить бота Lita, который в значительной степени вдохновлен GitHub’s Hubot. Lita полностью написана на Ruby и работает во многих чатах, таких как HipChat, Campfire и IRC. Его полезность в основном основана на плагинах, которые вы можете добавить к нему, которые могут выполнять такие действия, как поиск в Google или развертывание веб-сайта.

В этом руководстве мы рассмотрим шаги по установке Lita на свой собственный сервер Ubuntu, подключим его к каналу IRC и начнем установку плагинов.

Предпосылки

Чтобы следовать этому уроку, вам понадобится:

  • Одна Ubuntu 14.04 Droplet.

  • Пользователь sudo, не являющийся пользователем root, который вы можете настроить, следуя https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-14-04 в этом руководстве].

  • Поскольку мы будем настраивать Lita для использования в IRC, вам также необходимо самостоятельно подключиться к IRC и подключиться к каналу.

Есть несколько способов доступа к IRC. Вы можете https://www.digitalocean.com/community/tutorials/how-to-run-an-unrealircd-chat-server-on-debian-7 так настроить свой собственный сервер IRC], но если вы просто пробуя Lita, проще использовать общедоступный сервер (например, freenode, IRCnet или EFnet).

В частности, Freenode предлагает простой web chat, так что вы можете подключиться, даже не загружая IRC-клиент. Чтобы использовать его, выберите уникальный псевдоним и название канала, затем нажмите * Connect *. В этом руководстве предполагается, что вы используете Freenode.

Шаг 1 - Установка Лита

На этом этапе мы установим Lita и ее зависимости.

Нам нужно установить Ruby, язык, на котором написана Lita. Хотя Ruby включен в репозитории Ubuntu по умолчанию, версия Ruby, доступная в 14.04, слишком старая для работы Lita.

Итак, сначала загрузите PPA (Personal Package Archive), который имеет более актуальную версию.

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

Затем обновите пакеты на вашем сервере.

sudo apt-get update

Затем установите Ruby и некоторые дополнительные зависимости, которые требуются Lita.

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

Наконец, мы установим Lita с помощью RubyGems, который является менеджером пакетов для ruby ​​(так же, как APT является менеджером пакетов для Ubuntu). APT использует команду + apt-get +; RubyGems использует команду + gem +.

Установите Lita и адаптер Lita IRC.

sudo gem install lita
sudo gem install lita-irc

Шаг 2 - Настройка Lita

Программное обеспечение для Lita теперь установлено, поэтому на этом этапе мы создадим бота и настроим его для подключения к нашему каналу IRC.

Следующая команда создаст нового бота. Замените ++ на уникальный ник для вашего бота.

lita new

Эта команда также создаст каталог в вашем домашнем каталоге + ~ / +, который содержит два файла: + Gemfile + и + lita_config.rb +. + Gemfile + сообщает Ruby, какие плагины загружать. + lita_config.rb + - это место, где хранятся все настройки конфигурации плагина. Для плагина + lita-irc +, + lita_config.rb + будет иметь информацию о сервере IRC, канале, псевдониме и т. Д.

Прежде чем мы сможем запустить Lita, нам нужно отредактировать эти файлы конфигурации, чтобы ваш бот знал, как подключиться к IRC. Сначала перейдите в новый каталог.

cd ~//

Откройте + Gemfile + для редактирования с помощью nano или вашего любимого текстового редактора.

nano Gemfile

Найдите строку + # gem" lita-irc "+ и удалите + # + `в начале строки, которая раскомментирует ее.

Gemfile модифицированный отрывок

. . .

# Uncomment to use the IRC adapter


. . .

Затем сохраните и закройте файл.

Затем откройте файл + lita_config.rb +.

nano lita_config.rb

Измените параметр + config.robot.name + в верхней части файла с + Lita + на псевдоним вашего бота.

lita_config.rb модифицированный отрывок

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

. . .

Чуть дальше измените параметр + config.robot.adapter с` : shell` на `: irc +`.

lita_config.rb модифицированный отрывок

. . .

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

. . .

Затем в нижней части файла добавьте следующие строки (выделены ниже) перед последней строкой, + end +.

Убедитесь, что вы правильно скопировали отступ, а также замените переменные-заполнители в строках + config.adapters.irc.channels + и + config.adapters.irc.user + соответственно на имя канала и имя бота. Если вы используете IRC-сервер, отличный от Freenode, вам также следует соответствующим образом изменить + config.adapters.irc.server +.

lita_config.rb модифицированный отрывок

. . .

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








end

Сохраните и закройте файл.

Полный список параметров, которые можно передать плагину «lita-irc», можно найти на странице GitHub плагина lita-irc.

Шаг 3 - Подключение к каналу

На этом этапе мы запустим бота и установим админа.

Убедитесь, что вы подключены к IRC с помощью выбранного IRC-клиента или веб-клиента и что вы находитесь на канале, к которому вы хотите присоединить Lita. Затем запустите свой бот.

lita start

Вы увидите много продукции. Через некоторое время вы увидите, что ваш бот присоединяется к указанному вами каналу IRC.

На данный момент мы не сказали нашему боту, как что-либо делать, так что это пока не очень полезно. Прежде чем мы добавим некоторые дополнительные функции, давайте определим нашего пользователя как администратора. Для этого вам нужно спросить своего бота, какой у вас идентификатор. Отправьте следующую строку на канал IRC.

 users find

Ваш бот ответит примерно так:

Ответ Литы в IRC

your_irc_nickname<(ID: , Mention name: your_irc_nickname)

Скопируйте идентификатор, затем остановите Литу, введя + CTRL + C + в терминале вашего сервера.

Откройте файл + lita_config.rb +.

nano lita_config.rb

В конце файла перед последним + end + добавьте следующую строку. Замените идентификатор здесь идентификатором, который вы скопировали.

Gemfile модифицированный отрывок

...

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



end

Сохраните и закройте файл.

Шаг 4 - Добавление плагинов

На данный момент ваш бот может подключиться к IRC, но это все, что он может сделать. На этом шаге мы установим пример плагина, чтобы добавить некоторые полезные функции.

Несмотря на то, что вы можете написать свои собственные плагины в Ruby, на выбор есть сотни premade plugins. Мы рассмотрим установку плагина lita-dig (который представляет собой https://www.digitalocean.com/community/tutorial_series/an-introduction-to- Управляющий плагин DNS-поиска (DNS)) в качестве примера, но процесс очень похож для других.

Для начала давайте установим плагин + lita-dig +.

sudo gem install lita-dig

Затем снова откройте + Gemfile + для редактирования.

nano Gemfile

Добавьте следующую строку в самый конец файла.

gem "lita-dig"

Сохраните и закройте файл, затем перезапустите бот.

lita start

Это оно! Когда ваш бот переподключится, отправьте следующую строку на канал IRC.

dig
Бот ответит несколькими строками, начинающимися с символа `+

Ответ получен от 8.8.8.8:53 (114 байт) + `. Это означает, что ваш плагин работает!

Шаг 5 - Написание сценария Upstart

На каждом шагу нам приходилось вручную запускать бота. Это хорошо для тестирования, но есть лучшее решение. На этом шаге мы создадим сценарий Upstart для управления ботом, упрощая его запуск, остановку и перезапуск. Для более подробного изучения сценариев Upstart, посетите этот https://www.digitalocean.com/community/tutorials/the-upstart-event-system-what-it-is-and-how-to-use-it [ Upstart учебник.

Сначала создайте файл с именем + lita-.conf в` + / etc / init`.

sudo nano /etc/init/lita-.conf

Вставьте следующее в файл, заменив ++ именем пользователя вашего не-root пользователя sudo на вашем сервере.

your_bot_name.conf»> / и т.д. / инициализации / Лита-.conf

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

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

respawn
respawn limit 10 5

exec lita start

Вот краткое объяснение того, что делает этот скрипт:

Строки + start on + и + stop on + сообщают Ubuntu, когда запускать и останавливать бот. Строка + chdir + сообщает Upstart, в каком каталоге находиться при выполнении команды + exec +, которая фактически запускает бота.

Строка + env + необходима, чтобы приложение Ruby знало, где находятся его файлы настроек. + Setuid + и + setgid + говорят Upstart запустить бота как определенного пользователя; если эти строки опущены, Upstart запустит бота как root.

Строка + respawn + сообщает Upstart о перезапуске бота, если он был прерван или разбился. + Respawn limit + предотвращает возрождение Upstart, если бот падает 10 раз за 5 секунд, что указывает на большую проблему.

Мы можем проверить правильность синтаксиса в этом скрипте с помощью встроенной linter, которая является программой проверки синтаксиса, с помощью следующей команды.

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

Если синтаксис правильный, вы должны увидеть следующий вывод.

Правильный вывод линтера

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

После того как вы проверили синтаксис файла конфигурации, запустите бота с помощью сценария Upstart, введя следующую команду.

sudo start lita-

Вы должны увидеть строку, которая выглядит следующим образом:

Upstart выход

lita- start/running, process 1234

Ваш бот должен присоединиться к каналу IRC в ближайшее время; Теперь вы можете выйти из своего сервера, и бот продолжит работу.

Заключение

В этом уроке мы установили и настроили Lita с помощью плагина и сценария Upstart. С уникальными именами ботов и сценариями Upstart вы даже можете запускать несколько ботов в разных комнатах чата с разными плагинами.

Целые компании управляют всей своей ИТ-инфраструктурой из чат-ботов, как этот. От настраиваемых хуков до популярных сервисов сборки CI, таких как Jenkins, до управления вашими репозиториями GitLabs - использование чат-бота может упростить, упростить и автоматизировать вашу работу.

Related