本記事は、Slackbotをレンタルサーバーにアップロードして動作させるまでの手順を説明するものです。

サーバーにアップロードすることでSlackbotを24時間稼働し続けることもできます。サーバーにアップすることでサーバーの状態やサーバーで稼働しているシステムを監視したり、サーバーの操作を行ったりすることができます。

サーバー管理の簡易化や効率化に繋がるのでSlackを導入している場合はSlackbotによるサーバー管理に挑戦してみましょう。

Slackbotのレンタルサーバーで動かす準備

作業に入る前に以下の準備を終わらせておきましょう。
・Botのソースコードが作成
・サーバーのセットアップをしておく

Botの作成について

Botの作成方法については「SlackbotをPythonで作成しよう」をお読みだくさい。

サーバーのセットアップについて

基本的なセットアップに加えて以下のセットアップを済ませておいてください。
・python及びpipコマンドの動作環境をセットアップ
・nodeをインストールする

Slackbotをサーバーにアップロードする手順

サーバーのアップロードに必要な作業は以下の通りです。

・ソースコードをサーバーにアップロード
・ライブラリをインストール
・APIトークンを環境変数に定義
・foreverコマンドでBotプロセスを永続化

一つずつ説明していきます。

ソースコードをサーバーにアップロード

まずはソースコードをサーバーにアップロードします。プロジェクトファイルがアップロードさえできれば方法は何でも良いですが、GitやSubversionなどバージョン管理ソフトで管理しておくとソースコードに修正が必要となった場合に楽になります。

今回はGit管理ができる代表的なサービスであるGitHubからソースコードをクローンする方法を説明します。

GitHubからサーバーにアクセスする為にはサーバーの公開鍵をGitHubに登録する必要があります。
手順は以下の通りです。

1.新しいSSH鍵を生成する

新しいKeyを作成します。

ssh-keygen -f ~/.ssh/id_rsa_xxxx

「id_rsa_xxxx」は任意のファイル名です。
作成に成功すると「~/.ssh/」にSSHの秘密鍵(id_rsa_xxxx)と公開鍵(id_rsa_xxxx.pub)が作成されます。

2.GitHubの対象レポジトリのページを開いて「Settings」をクリックします。
Settingsをクリック

3.「Deploy keys」をクリックします。
Deploy keysをクリック

4.「add deploy key」をクリックします。
add deploy keyをクリック

5.key情報を入力
Key情報を入力する

titelは何でもOKです。後から見てどこのサーバーの鍵かわかる名前にしておきましょう。
keyには先程作成した公開鍵(id_rsa_xxxx.pub)の内容を貼り付けます。
ファイルを開いて全文をコピーして貼り付ければOKです。

6.「Allow write access」にチェックを入れて「Add Key」をクリック

これでGitHubからクローンできるようになります。

7.「~/.ssh/config」を開いて以下の内容を記述します

Host:何でもOK
IdentityFile:作成した秘密鍵のファイルパス
他はそのままでOKです。

プロジェクト用の適当なディレクトリを開いてクローンします。

通常の場合、GitHubからコピーしたURLをそのまま指定しますが、deploy keyを使う場合は修正が必要です。
git@[configのHostに指定した名前]:[ユーザー名]/[レポジトリ名]

◆通常の場合
git clone https://github.com/user/sample-rep.git

◆deploy keyを使う場合
git clone git@github-sample-rep:user/sample-rep.git

GitHubでのアップロード作業は以上となります。

ライブラリをインストール

Pythonで作成している場合はslackbotライブラリをpipコマンドでインストールします。

pip install slackbot

nodejsなど他の方法で作成している場合は、npmなど専用のパッケージ管理コマンドでインストールしてください。

続いてnpmコマンドでforeverコマンドをインストールします。

npm install forever

最低限のライブラリのインストールは以上です。
その他のライブラリについては必要に応じて追加してください。

APIトークンを環境変数に定義

環境変数にBotAPIトークンを定義しておきます。

環境変数の設定方法については「自作SlackbotのAPIトークンを環境変数から取得する」をお読みだくさい。

foreverコマンドでBotプロセスを永続化

foreverコマンドでBotの処理を永続化できます。

forever start -c bot.py

SlackにBotがログインできていれば完了です。
◆関連記事
自作Slackbotのプロセスを永続化する
foreverコマンドをcrontabで監視して自動再起動する

以上でサーバーでのBotセットアップは完了です。

Slackbot+PythonmまとめTOP>>Slackbotの作り方マニュアル〜Python編〜