はじめに
環境構築時のメモです。
* Amazon Linux AMI release 2018.03
* nvm 0.34.0 (201903)
* node v10.5.3 (201903)
* redis v2.4.10(201712)
* hubot-slack v4.4 (201712)
* nginx v1.10.3 (201708)
* pyton v3.6.0 (201712)
初期設定
command
$ cat /etc/system-release1
$ sudo yum update -y
$ sudo yum install -y git
タイムゾーンをJSTに変更する。
command
$ sudo ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
$ sudo vi /etc/sysconfig/clock
---
ZONE="Asiz/Tokyo"
UTC=false
---
vim編集
command
$ vi .vimrc
---
scriptencoding utf-8
set t_vb=
set visualbell
set noerrorbells
---
OSユーザ(例:hoge)作成
command
$ useradd hoge
$ sudo su - hoge
$ cd /home/hoge
$ mkdir .ssh
$ cd .ssh
$ ssh-keygen -t rsa
$ mv id_rsa.pub authorized_keys
$ chmod 600 authorized_keys
$ cat id_rsa ※内容を接続元PCに保存 hoge.pem
※puttyの場合
・Run PuTTYgenを起動
・Load an existing private file を読み込む(load)
・Save public key hoge.ppk
・上記ファイルを"Private key file for authentication"に設定する。
・wheelユーザに追加およびパスワードなしでsudoを利用できるようにする。
$ vi /etc/group
----
wheel:x:10:ec2-user,hoge
----
$ sudo visudo
---
# %wheel ALL=(ALL) NOPASSWD: ALL
%hoge ALL=(ALL) NOPASSWD: ALL
---
Nginxインストール
$ sudo useradd www
$ sudo groupadd www
$ sudo yum install nginx
$ sudo cp /etc/nginx/nginx.conf.default /etc/nginx/nginx.conf
$ sudo vi /etc/nginx/nginx.conf
---
server{
listen 80;
server_name localhost;
root ***設置場所***;
charset utf-8;
index index.html index.htm index.php;
access_log /var/log/host.access.log main;
}
---
$ sudo service nginx start
$ sudo chkconfig nginx on
redisインストール
$ sudo yum --enablerepo=epel install redis
$ sudo service redis start
$ sudo chkconfig --level 35 redis on
$ sudo chkconfig --list | grep redis
nodeインストール
$ git clone git://github.com/creationix/nvm.git ~/.nvm
$ vi .bashrc
---
if [ -f ~/.nvm/nvm.sh ];then
source ~/.nvm/nvm.sh > /dev/null 2>&1
fi
---
$ source ~/.bashrc
$ nvm ls-remote nodeバージョン一覧表示
$ nvm install v10.15.3
$ nvm alias default v10.15.3 #恒久的な切り替え
$ nvm ls-remote
$ node -v
nvm自身のバージョンアップ
$ cd ~/.nvm
$ git pull origin master
$ source ~/.bashrc
vue環境構築
$ cd ~/.nvm/versions/node/(バージョン)/lib/node_modules
$ npm install vue-cli
$ cd ~
$ vue create hello-vue
ここで、yorkieパッケージをインストール( ./yorkie/bin/install.sh) 処理中にエラーが発生します。
セットアップ中の cd ./hello-vue/node_modules に移動して、直接 $npm install yorkie で正常にインストールできたので、もう一度、vue create を実施したところvue環境を構築することができました。パッケージの整合性か、手順の間違いなのか原因は不明です。
$ cd hello-vue
$ npm install yorkie
$ cd ~
$ vue create hello-vue ※この際に、セットアップ方法を上書きではなく、mergeを選択してください。
$ cd hello-vue
$ npm run serve
ブラウザーから、http://IPアドレス:8080 にアクセス
または、下記の方法でもつくれるが動作がおかしくなることが多い。
[myurioka@ip-172-31-2-14 ~]$ vue ui --host ***.***.***.***(default:0.0.0.0)
🚀 Starting GUI...
🌠 Ready on http://***.***.***.***:8000
ブラウザーから、http://IPアドレス:8080 にアクセス
Python3インストール
$ yum install gcc gcc-c++ make git openssl-devel bzip2-devel zlib-devel readline-devel sqlite-devel
$ git clone https://github.com/yyuu/pyenv.git ~/.pyenv
$ vi ~/.bashrc
---
export PYENV_ROOT="${HOME}/.pyenv"
if [ -d "${PYENV_ROOT}" ]; then
export PATH=${PYENV_ROOT}/bin:$PATH
eval "$(pyenv init -)"
fi
---
$ sudo yum install patch
$ pyenv install 3.6.0
$ pyenv global 3.6.0
$ pip install --upgrade pip
$ pip install bigquery-python
$ pip install beautifulsoup4
$ pip install jupyter
$ jupyter notebook --generate-config
$ python -c "from notebook.auth import passwd;print(passwd())" ※設定
$ vi ~/.jupyter/ 内に jupyter_notebook_config.py
---
c.NotebookApp.ip = '*'
c.NotebookApp.open_browser = False
c.NotebookApp.password = 'sha1:*******' ※
---
Slackbot構築
Slackにhubotアプリを追加
Hubotインストール
$ cd ~/.nvm/versions/node/(バージョン)/lib/node_modules
$ npm install hubot yo generator-hubot coffee-script hubot-slack
$ cd ~
$ mkdir hello-hubot
$ cd hello-hubot
$ yo hubot
$ vi external-scripts.json
---
heroku packageを削除
---
動作確認
$ vi ./scripts/examples.coffee
---
module.exports = (robot) ->
#(コメントアウトを外す) robot.hear /badger/i, (res) ->
#(コメントアウトを外す) res.send "Badgers? BADGERS? WE DON'T NEED NO STINKIN BADGERS"
---
$ export HUBOT_SLACK_TOKEN=<API Token>
$ ./bin/hubot -a slack
SlackBot設置
slack からgoogle検索ができるか試す。
下記のアンプルコードを scriptsディレクトリに保存し、hubotを起動する。
./bin/hubot -a slack
slackから作成したアプリに「search is ***」を送信するとreplyが届く。