blob: 82774798971bb6216cffc0660e92869d122b7150 [file] [log] [blame]
#!/bin/bash
#
# Script to setup a GCE instance to run the perf server.
# For full instructions see the README file.
sudo apt-get install --assume-yes monit nginx gcc mercurial make nodejs nodejs-legacy
echo "Adding the perf user account"
sudo adduser perf
# Create the data directory and make 'perf' the owner.
DATA_DIR="/mnt/pd0/data"
sudo mkdir -p $DATA_DIR
sudo chown perf:perf $DATA_DIR
PARAMS="-D --verbose --backup=none --group=default --owner=perf --preserve-timestamps"
ROOT_PARAMS="-D --verbose --backup=none --group=root --owner=root --preserve-timestamps -T"
EXE_FILE="--mode=755"
CONFIG_FILE="--mode=666"
# Install pull.
# Temporary step to bootstrap monitoring using Skia Push.
gsutil cp gs://skia-push/debs/pull/pull:jcgregorio@jcgregorio.cnc.corp.google.com:2014-12-15T14:12:52Z:6152bc3bcdaa54989c957809e77bed282c35676b.deb pull.deb
sudo dpkg -i pull.deb
sudo install $PARAMS $EXE_FILE continue_install /home/perf/
sudo install $PARAMS $CONFIG_FILE -T sys/_bash_aliases /home/perf/.bash_aliases
sudo su perf -c /home/perf/continue_install
sudo install $ROOT_PARAMS $EXE_FILE sys/perf_init /etc/init.d/skiaperf
sudo install $ROOT_PARAMS $EXE_FILE sys/correctness_init /etc/init.d/skiacorrectness
sudo install $ROOT_PARAMS $EXE_FILE sys/ingest_init /etc/init.d/ingest
sudo install $ROOT_PARAMS $CONFIG_FILE sys/perf_monit /etc/monit/conf.d/perf
# Add the nginx configuration files.
sudo cp sys/perf_nginx /etc/nginx/sites-available/perf
sudo rm -f /etc/nginx/sites-enabled/perf
sudo ln -s /etc/nginx/sites-available/perf /etc/nginx/sites-enabled/perf
sudo cp sys/gold_nginx /etc/nginx/sites-available/gold
sudo rm -f /etc/nginx/sites-enabled/gold
sudo ln -s /etc/nginx/sites-available/gold /etc/nginx/sites-enabled/gold
# Download the SSL secrets from the metadata store.
CURL_CMD='curl -H "Metadata-Flavor: Google"'
META_PROJ_URL='http://metadata/computeMetadata/v1/project/attributes'
sudo mkdir -p /etc/nginx/ssl/
sudo sh <<CURL_SCRIPT
$CURL_CMD $META_PROJ_URL/skiagold-com-key -o /etc/nginx/ssl/skiagold_com.key
$CURL_CMD $META_PROJ_URL/skiagold-com-pem -o /etc/nginx/ssl/skiagold_com.pem
$CURL_CMD $META_PROJ_URL/skiaperf-com-key -o /etc/nginx/ssl/skiaperf_com.key
$CURL_CMD $META_PROJ_URL/skiaperf-com-pem -o /etc/nginx/ssl/skiaperf_com.pem
CURL_SCRIPT
sudo chmod 700 /etc/nginx/ssl
sudo sh -c "chmod 600 /etc/nginx/ssl/*"
# Confirm that monit is happy.
sudo monit -t
sudo monit reload
sudo /etc/init.d/skiaperf restart
sudo /etc/init.d/skiacorrectness restart
sudo /etc/init.d/ingest restart
sudo /etc/init.d/nginx restart