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

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

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


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

[amazonjs asin=”4873117399″ locale=”JP” title=”実践 Python 3″]

 

前提

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

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

 

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

[shell] chmod 755 /home/umentu
[/shell]

 

pyvenv環境を構築

[shell] pyvenv ~/slack_python
cd ~/slack_python
source ./bin/activate
[/shell]

 

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

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

 

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

[shell] cd ~/slack_python/source
pip install –upgrade pip
pip install -r requirements.txt
pip install uwsgi
[/shell]

 

sqliteのデータベースを作成

[shell] cd ~/slack_python/source
python ./db/create_db.py
[/shell]

 

uWSGI用のiniファイルを作成

[shell] cd ~/slack_python/
vi ./wsgi.ini
[/shell] [shell title=”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
[/shell]

 

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

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

 

Nginxの設定ファイルを作成

[shell] cd /etc/nginx/conf.d
sudo mv ./default.conf ./default.conf.bk
sudo vi /etc/nginx/conf.d/slack.conf
[/shell] [shell title=”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;
}
}
[/shell] [shell] sudo /etc/init.d/nginx restart
[/shell]

 

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

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

 

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

[shell] cd ~/slack_python/
uwsgi –ini wsgi.ini &
[/shell]

 

ブラウザでアクセス

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

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

 

 

botを動かす

slackのapiを入力する。
[shell] cd /home/centos/slack_python/source/bot
vi bot.py
[/shell] [shell title=”bot.pyの内容”] slack = Slack("slackのapi")
[/shell] [shell] crontab -e
[/shell] [shell title=”crontab の内容”] */5 * * * * /home/umentu/slack_python/bin/python /home/umentu/slack_python/source/bot/bot.py
[/shell]

Related posts

コメントを残す