Nginx をフロントにしてSlackBot管理ツールを 動かす

Facebook にシェア
Pocket
LINEで送る
このエントリーを Google ブックマーク に追加

以前作ったSlackBotツールを、Nginxをフロントにして動かすようにカスタマイズした。


[雑][Python] ローカルでも動くSlackのBot管理ツールを作成してみた(Bottle + jinja2 + Slacker)

 

前提

今回はCentOS6.5で行ったが、下記と同様の環境構築をした。

CentOS7 yumでNginxをインストール
CentOS7 pyenvを利用したpython環境構築
・ユーザー名をumentuとする
Slack APIからTokenを取得しておく

 

ホームディレクトリのパーミッションを変更する

chmod 755 /home/umentu

 

pyvenv環境を構築

pyvenv ~/slack_python
cd ~/slack_python
source ./bin/activate

 

githubからWebサイトとbotをダウンロード

cd ~/slack_python
git clone https://github.com/umentu/slack_botter
mv slack_botter source

 

pipのアップグレードと必要なパッケージをインストール

cd ~/slack_python/source
pip install --upgrade pip 
pip install -r requirements.txt
pip install uwsgi

 

sqliteのデータベースを作成

cd ~/slack_python/source
python ./db/create_db.py

 

uWSGI用のiniファイルを作成

cd ~/slack_python/
vi ./wsgi.ini
    [uwsgi]
    # 作成したアプリケーション用の仮想環境のパス
    home = /home/umentu/slack_python/
    # ソケットの設置場所を指定
    socket = /home/umentu/slack_python/var/sock/slack.sock
    # 作成したソケットをパーミッションを指定
    chmod-socket = 666
    # pidファイルの作成場所を指定
    pidfile = /home/umentu/slack_python/var/sock/slack.pid
    # アプリケーション本体のあるディレクトリを指定
    chdir = /home/umentu/slack_python/source/sites/
    # 実行するアプリケーションの本体ファイルを指定
    file = sites.py
    # ログのフォーマットやパスを指定
    log-x-forwarded-for = true
    log-format = %(addr) - %(user) [%(ltime)] &quot;%(method) %(uri) %(proto)&quot; %(status) %(size)<code></code> &quot;%(referer)&quot; &quot;%(uagent)&quot;
    logto = /home/umentu/slack_python/var/log/slack.log

 

log、socket、pidファイルを残すディレクトリを作成

mkdir -p ./var/{log,sock,pid}

 

Nginxの設定ファイルを作成

cd /etc/nginx/conf.d
sudo mv ./default.conf ./default.conf.bk
sudo vi /etc/nginx/conf.d/slack.conf
server {
    listen      80;
    server_name localhost;
    charset     utf-8;

    location / { try_files $uri @slack; }

    location @slack {
        include uwsgi_params;
        uwsgi_pass unix:/home/umentu/slack_python/var/sock/slack.sock;
    }
}
sudo /etc/init.d/nginx restart

 

sites.pyの76行目にslack apiのトークンを入力する

cd ~/slack_python/source
vi ./sites/sites.py
slack = Slack("Slackのトークン")

 

uWSGIでアプリケーションをバックグラウンドで起動

cd ~/slack_python/
uwsgi --ini wsgi.ini &

 

ブラウザでアクセス

サーバーのIPアドレス/hatebu にアクセスする。

スクリーンショット 2015-12-08 0.59.10

 

 

botを動かす

slackのapiを入力する。

cd /home/centos/slack_python/source/bot
vi bot.py
    slack = Slack("slackのapi")
crontab -e
*/5 * * * * /home/umentu/slack_python/bin/python /home/umentu/slack_python/source/bot/bot.py

Follow me!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です