新botの稼働環境を作成する時のメモ
- cloud9の環境をそのまま複製したかったけどあまりいいやり方が見つからなかったので、普通に新規で作成して全く同じ環境を構築できるように手順をマニュアル化する。
- やろうと思えばEBSを複製して作成したcloud9環境のEBSと入れ替えるとかもできるっぽいけどSSHとかの問題で全く同じ環境になるかどうかは怪しい(未検証)
手順
cloud9を作成する
- マシンスペックとかは同じ設定を選べばいい
- 基本デフォルト設定でOK
github連携
gitを導入
sudo yum -y update
sudo yum -y install git
git config --global user.name "USER_NAME"
git config --global user.email EMAIL_ADDRESS
参考元URL
リポジトリをcloneする
- cloud9上でGUIで操作するのが簡単。ただし、普通にパスワードを入れるとエラーになるのでパーソナルアクセストークンを使う必要がある
- SSHだと大丈夫
SSH接続する
- SSH接続をしておくと毎回パスワードを聞かれなくなるので、cloud9側からも頻繁に修正するならやっておいたほうが楽
公開鍵を表示して末尾のアドレス部分(xxxx@1111)以外をコピーしてgithub側でSSHkeyを登録
$ cd ~/.ssh
$ ssh-keygen
cat ~/.ssh/id_rsa.pub
使用する秘密鍵をconfigファイルに設定
$ vi ~/.ssh/config
#-------------------
Host github
HostName github.com
IdentityFile ~/.ssh/id_rsa
User git
#-------------------
# 「Iキー」 インサートモード(編集)
# 「wq」 保存して終了
権限を所有者の読み書きに変更
chmod 600 ~/.ssh/config
接続確認
$ ssh -T git@github.com
→Hi xxxxx! You've successfully authenticated, but GitHub does not provide shell access.
が表示されればOK
ライブラリのインストール
requirements.txtを使って一括でインストールする
複製元のcloud9で以下を実行して、結果をrequirements.txtに貼り付ける
pip freeze
複製先のcloud9で以下を実行(カレントディレクトリをrequirements.txtと同じ階層に移動)
pip install -r requirements.txt
基本これでOKだが、talibを使っているとエラーになる
talibのインストール
参考URL
以下を実行すると
wget http://prdownloads.sourceforge.net/ta-lib/ta-lib-0.4.0-src.tar.gz
tar -zxvf ta-lib-0.4.0-src.tar.gz
cd ta-lib
./configure --prefix=/usr
make
sudo make install
sudo bash -c "echo "/usr/local/lib64" >> /etc/ld.so.conf"
sudo /sbin/ldconfig
sudo pip install ta-lib
自分の環境ではこんな感じのエラーになる
talib Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
たしか最後を
pip3 install ta-lib
に変えればいけた気がする。
timezoneの変更
デフォルトではUTCになっているのでAsia/Tokyoに変更する。
※botの仕様によってはUTCじゃないといけない場合もあるので注意。
個人的にはログを見返す時に日本時間じゃないと見づらいからという理由で変更しているだけ
参考URL
sudo cp /etc/sysconfig/clock /etc/sysconfig/clock.org # バックアップ作成
sudo vim /etc/sysconfig/clock # vimで編集 "UTC"→"Asia/Tokyo"
sudo ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime # シンボリックリンクの変更
sudo reboot # 再起動
自動再起動のやつのインストール
npm install forever -g
bot起動
forever start -c python3 ***.py
止める時は
forever list
でプロセス番号を確認して
forever stop 0
とかで止める
以上