$ git clone https://github.com/yahoojapan/yisucon.git
$ cd yisucon/provisioning
$ sudo ./provision.sh development isucon
競技用インスタンスのセットアップ。まず CentOS 7.2 のインスタンスを起動して
$ git clone https://github.com/yahoojapan/yisucon.git
$ cd yisucon/provisioning
$ sudo ./provision.sh development isucon
これで 80番 にアクセスしたら node のアプリケーションが起動しています
他の言語に切り替える場合は systemctl からサービスを停止・開始してください
$ sudo systemctl stop isucon-node
$ sudo systemctl start isucon-go-isutomo
$ sudo systemctl start isucon-go-isuwitter
📝 go
と ruby
, java
では二種類のサービスを起動します
$ systemctl list-unit-files | grep isucon
isucon-go-isutomo.service disabled
isucon-go-isuwitter.service disabled
isucon-java-isutomo.service disabled
isucon-java-isuwitter.service disabled
isucon-node.service enabled
isucon-php.service disabled
isucon-ruby-isutomo.service disabled
isucon-ruby-isuwitter.service disabled
📝 php
では nginx
の設定を切り替えてください
$ sudo systemctl start isucon-php
$ sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
$ sudo cp /etc/nginx/php-fpm.conf /etc/nginx/nginx.conf
$ sudo nginx -t -c /etc/nginx/nginx.conf
$ sudo systemctl restart nginx
その他、起動している関連システム
- nginx
- mariadb
$ git clone https://github.com/yahoojapan/yisucon.git
$ cd yisucon/provisioning
# 適宜環境変数を設定してください
$ vim environments/development.json
$ sudo ./provision.sh development benchmarker
$ git clone https://github.com/yahoojapan/yisucon.git
$ cd yisucon/provisioning
# 適宜環境変数を設定してください
$ vim environments/development.json
$ sudo ./provision.sh development portal
ポータルとベンチマーカから利用する共通データベースの構築処理は provisioning に含まれていません
下記の手順を参考に適宜構築してください
📝 同一ホストにポータルとベンチマーカを構築する
$ git clone https://github.com/yahoojapan/yisucon.git
$ cd yisucon/provisioning
$ vim environments/development.json
{
"json_class": "Chef::Environment",
"default_attributes": {
"env": "development",
"start_date": "2017/01/01 00:00:00",
"end_date": "2017/01/01 23:59:59",
"portal_host": "127.0.0.1",
"db_host": "127.0.0.1",
"db_port": 3306,
"db_user": "root",
"db_pass": "",
"db_name": "isucon",
"secret_key": "GENERATE SECRET KEY"
}
}
$ sudo yum install mariadb mariadb-server
$ sudo systemctl start mariadb
$ sudo systemctl enable mariadb
$ mysql -u root < ../benchmarker/init.sql
$ sudo ./provision.sh development portal
$ sudo ./provision.sh development benchmarker
📝 開始時刻と終了時刻を設定する
基本的には環境変数で開始時刻と終了時刻を設定します。 環境変数がない場合、もしくは形式として正しくない場合は、プロビジョニング時に現在時刻を開始時刻とし、一週間後を終了時刻とします。