deploy.sh 2.58 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12
#!/bin/sh
# Running as the 'gliders' user, fetch and deploy the
# backend tools and website. This script will download
# all our logs from various dockservers and
# migrates data (such as users) from the old gliders
# website database.

# Generate a SSH key
# We want passwordless authentication when logging into
# dockservers from scripts etc.
ssh-keygen

13 14 15 16 17
echo "Please copy the public key on your gitlab account with the name gliders"
cat /home/gliders/.ssh/id_rsa.pub
echo "Plese press return when you are done"
read

18 19 20
#We need to go to the gliders home directory first
cd /home/gliders

21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
# Install Composer
mkdir -p /home/gliders/bin
curl -sS https://getcomposer.org/installer | php -- --install-dir=bin
ln -s /home/gliders/bin/composer.phar /home/gliders/bin/composer

# Set up python environment and directories
mkdir -p /home/gliders/code
mkdir -p /home/gliders/pythonenv
mkdir -p /var/gliders/www /var/gliders/www_dev /var/gliders/logs
virtualenv /home/gliders/pythonenv --system-site-packages
echo 'source /home/gliders/pythonenv/bin/activate' >> /home/gliders/.bash_profile
source /home/gliders/pythonenv/bin/activate

cd /home/gliders/code
# Add contents of /home/gliders/.ssh/id_rsa.pub to GitLab, then:
git clone git@gitlab.noc.soton.ac.uk:owanes/gliders-tools.git
git clone git@gitlab.noc.soton.ac.uk:owanes/gliders-website.git

# Install the gliders DB and parser python libraries,
# then fetch all our log files and parse them!
cd gliders-tools
python setup.py install
43 44
sudo cp fetchlogs.service /etc/systemd/system/
sudo systemctl enable fetchlogs
45

46 47 48 49 50
echo "please enter your mysql root user password"
read -s pass
mysql -u root -p$pass < new_schema.sql
echo "CREATE USER 'gliders'@'%' IDENTIFIED BY '"$pass"' ;" | mysql -u root -p$pass
echo "GRANT ALL ON gliders.* TO 'gliders'@'%';" | mysql -u root -p$pass
51
cd bin
52
sh migrate_data.sh
53
sudo systemctl start fetchlogs
54

Owain Jones's avatar
Owain Jones committed
55 56
# Set up a GitHub API key and add it to .bash_profile
# export API_KEY=...
57 58 59 60 61 62 63 64 65
echo "Deploying the website requires interacting with GitHub a lot."
echo "We need a GitHub API Key so we don't go over the public limits."
echo "Please go to: https://github.com/settings/tokens/new?scopes=repo&description=`hostname`"
echo "Generate the token and then paste it into the prompt below."
read -p "Token: " GITHUB_API_KEY
echo "export GITHUB_API_KEY=$GITHUB_API_KEY" >> ~/.bashrc
echo "export BOWERPHP_TOKEN=$GITHUB_API_KEY" >> ~/.bashrc
composer config -g github-oauth.github.com $GITHUB_API_KEY
export BOWERPHP_TOKEN=$GITHUB_API_KEY
Owain Jones's avatar
Owain Jones committed
66

67 68
# Deploy the website
cd /home/gliders/code/gliders-website
69
sh bin/deploy.sh /var/gliders/www_dev dev
70
sh bin/deploy.sh /var/gliders/www prod