先日centos7にhubotをインストールした時のメモです。

以前にcentos6で作業をしたことはありましたが、centos7では初めてです。
【GCE/GCP】Google Compute Engine hubotとslackを使ってサーバを起動・停止させる

7ではシステム管理系のツールが大幅に変更になっているので、手順を少し変えなければインストールできませんでした。
では、早速手順です。

# epelリポジトリを追加

$yum -y install epel-release
$vi /etc/yum.repos.d/epel.repo
[epel]部分の「enabled=1」を「enabled=0」に変更して、標準では見に行かないようにする

# redis とnpmを追加

hubotはredisとnpmを使うので両方ともインストール

$yum install –enablerepo=epel npm redis

# redis起動

$ systemctl start redis

# redis 自動起動設定

$systemctl enable redis

# npmアップデート

手順としては不要かもしれないが、念のためアップデート

#npm update -g npm

# hubotに必要なnpmモジュールをインストール

$npm install -g coffee-script hubot
$npm install -g yo generator-hubot
$npm install hubot-slack –save

※hubot-slackをinstallをしないとadapterがないとエラーになりましたので、事前にインストール
参考エラーメッセージ:ERROR Cannot load adapter slack – Error: Cannot find module ‘hubot-slack

# slackのアカウントとチームを作成する

この作業はブラウザから作業します。
今回はhubotをslackbotとして使いますので、slackのアカウントとチームを用意します。

# 作成したチームにhubotを登録する

hubotはこちらより登録可能
https://gcecontrol.slack.com/apps/A0F7XDU93-hubot

画面に従って作成し、チームに登録します。途中TOKENが表示されるので控える

例)HUBOT_SLACK_TOKEN=xoxb-XXXX-XXXX

発言させたいチャネルにhubotを登録しておきます。無題

今回はkiller-machineという名前のhubotを作りました。

# サーバにhubotを作成する

この作業はサーバ側で行います。
まずサーバ側にhubotをセットアップします。

$mkdir hubot && cd hubot
$yo hubot

#起動スクリプトを書く

$vi run.sh


#!/bin/bash

export HUBOT_SLACK_TOKEN=xoxb-XXXX-XXXX
 export HUBOT_SLACK_EXIT_ON_DISCONNECT=true
 cd `dirname $0`

node_modules/.bin/hubot --adapter slack

# 応答用のcoffeeスクリプトを書く

vi example.coffee


module.exports = (robot) ->
 robot.hear /hello/, (msg) ->
 msg.send msg.random [
 'hello',
 'what?'
 ]

$sh run.sh

# slackより動作確認

helloを打つと、what?と返してくれます。

2無題

# foreverをinstall

$npm install forever -g

# systemd用の起動コマンドを作成する

vi /etc/systemd/system/forever-hubot.service

[Unit]
 Description=run forever hubot
 After=network.target

[Service]
 Type=simple
 RemainAfterExit=yes
 ExecStart=/home/app/hubot/run.sh
 User=app

[Install]
 WantedBy=multi-user.target
 $systemctrl forever-hubot start
 $systemctl enable forever-hubot

デーモンリロード
$systemctl daemon-reload

開始
$systemctl start forever-hubot

自動起動設定
$systemctl enable forever-hubot

これでhubotが自動起動となる