Remove old provision scripts and move provision_server.sh
This commit is contained in:
@ -1,69 +0,0 @@
|
||||
# update apt-get
|
||||
echo "Update apt-get..."
|
||||
sudo apt-get update
|
||||
# upgrade all packages
|
||||
echo "Upgrade packages..."
|
||||
sudo apt-get upgrade
|
||||
|
||||
#install postgres
|
||||
if [ ! -f /etc/apt/sources.list.d/pgdg.list ]
|
||||
then
|
||||
echo "Add Postgres sources..."
|
||||
cd /etc/apt/sources.list.d
|
||||
sudo touch pgdg.list
|
||||
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main" > pgdg.list'
|
||||
sudo wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
|
||||
sudo apt-get update
|
||||
echo "Done"
|
||||
else
|
||||
echo "Postgres sources already added"
|
||||
fi
|
||||
|
||||
sudo apt-get -y --force-yes install postgresql-9.5
|
||||
|
||||
# drop postgres access control
|
||||
if [ -f /etc/postgresql/9.5/main/pg_hba.conf ]
|
||||
then
|
||||
if ! sudo -u postgres grep -q CodeOcean /etc/postgresql/9.5/main/pg_hba.conf
|
||||
then
|
||||
echo "Drop Postgres access control..."
|
||||
sudo -u postgres sh -c 'cat >/etc/postgresql/9.5/main/pg_hba.conf <<EOF
|
||||
#CodeOcean: drop access control
|
||||
local all all trust
|
||||
host all all 127.0.0.1/32 trust
|
||||
host all all ::1/128 trust
|
||||
EOF'
|
||||
echo "Done"
|
||||
echo "Restart Postgres..."
|
||||
echo sudo service postgresql restart
|
||||
echo "Done"
|
||||
else
|
||||
echo "Postgres access control already dropped"
|
||||
fi
|
||||
else
|
||||
echo "Postgres installation failed"
|
||||
fi
|
||||
|
||||
# create development database
|
||||
# TODO: extract databasename to variable
|
||||
if ! (sudo -u postgres psql -l | grep -q codeocean-development)
|
||||
then
|
||||
echo "Create database codeocean-development..."
|
||||
sudo -u postgres createdb codeocean-development || true
|
||||
sudo -u postgres psql -d codeocean-development -U postgres -c "CREATE USER root;"
|
||||
sudo -u postgres psql -d codeocean-development -U postgres -c 'GRANT ALL PRIVILEGES ON DATABASE "codeocean-development" to root';
|
||||
sudo -u postgres psql -d codeocean-development -U postgres -c "CREATE USER debian;"
|
||||
sudo -u postgres psql -d codeocean-development -U postgres -c 'GRANT ALL PRIVILEGES ON DATABASE "codeocean-development" to debian';
|
||||
sudo -u postgres psql -d codeocean-development -U postgres -c "CREATE USER codeocean;"
|
||||
sudo -u postgres psql -d codeocean-development -U postgres -c 'GRANT ALL PRIVILEGES ON DATABASE "codeocean-development" to codeocean';
|
||||
sudo -u postgres psql -d codeocean-development -U postgres -c 'ALTER DATABASE "codeocean-development" OWNER TO codeocean';
|
||||
sudo -u postgres psql -d codeocean-development -U postgres -c 'ALTER USER "codeocean" CREATEDB';
|
||||
echo "Done"
|
||||
else
|
||||
echo "Database codeocean-development already exists"
|
||||
fi
|
||||
|
||||
# TODO: create test database
|
||||
|
||||
|
||||
|
@ -1,86 +0,0 @@
|
||||
#install docker
|
||||
if [ ! -f /etc/apt/sources.list.d/backports.list ]
|
||||
then
|
||||
#get sources for dependencies
|
||||
echo "Get apt-get sources for some docker dependencies..."
|
||||
cd /etc/apt/sources.list.d
|
||||
sudo touch backports.list
|
||||
sudo sh -c 'echo "deb http://http.debian.net/debian jessie-backports main" > backports.list'
|
||||
sudo apt-get update
|
||||
echo "Done"
|
||||
|
||||
#just in case there is some old stuff
|
||||
echo "Remove legacy stuff...Just in case..."
|
||||
sudo apt-get purge "lxc-docker*"
|
||||
sudo apt-get purge "docker.io*"
|
||||
sudo apt-get update
|
||||
|
||||
#install docker dependencies
|
||||
echo "Install dependencies..."
|
||||
sudo apt-get install -y --force-yes apt-transport-https ca-certificates gnupg2
|
||||
echo "Done"
|
||||
else
|
||||
echo "Docker dependencies already added."
|
||||
fi
|
||||
|
||||
if [ ! -f /etc/apt/sources.list.d/docker.list ]
|
||||
then
|
||||
# get docker sources
|
||||
echo "Add apt-get sources for Docker..."
|
||||
sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
|
||||
cd /etc/apt/sources.list.d
|
||||
sudo touch docker.list
|
||||
sudo sh -c 'echo "deb https://apt.dockerproject.org/repo debian-jessie main" > docker.list'
|
||||
sudo apt-cache policy docker-engine
|
||||
sudo apt-get update
|
||||
echo "Done"
|
||||
else
|
||||
echo "Docker apt-get sources already added."
|
||||
fi
|
||||
|
||||
if [ ! -f /etc/systemd/system/docker.service.d/docker.conf ]
|
||||
then
|
||||
echo "Install Docker Engine..."
|
||||
sudo apt-get install -y --force-yes docker-engine
|
||||
echo "Done"
|
||||
echo "Start Docker..."
|
||||
sudo service docker start
|
||||
echo "Done"
|
||||
echo "Run Hello World..."
|
||||
sudo docker run hello-world
|
||||
echo "Done"
|
||||
|
||||
#set some docker options
|
||||
echo "Configure Docker..."
|
||||
sudo mkdir /etc/systemd/system/docker.service.d
|
||||
cd /etc/systemd/system/docker.service.d
|
||||
sudo touch docker.conf
|
||||
sudo sh -c 'cat >>/etc/systemd/system/docker.service.d/docker.conf <<EOF
|
||||
# code_ocean: enable TCP
|
||||
[Service]
|
||||
ExecStart=
|
||||
ExecStart=/usr/bin/dockerd -H fd:// -D -H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock"
|
||||
EOF'
|
||||
sudo systemctl daemon-reload
|
||||
sudo service docker restart
|
||||
|
||||
# enable to run docker without sudo
|
||||
sudo gpasswd -a ${USER} docker
|
||||
newgrp docker
|
||||
sudo service docker restart
|
||||
echo "Done"
|
||||
else
|
||||
echo "Docker already installed"
|
||||
fi
|
||||
|
||||
if ! (docker images | grep -q co_execenv_python)
|
||||
then
|
||||
echo "Pull Docker images..."
|
||||
# get docker images
|
||||
docker pull openhpi/co_execenv_python
|
||||
docker pull openhpi/co_execenv_java
|
||||
docker pull openhpi/co_execenv_java_antlr
|
||||
echo "Done"
|
||||
else
|
||||
echo "Docker images already pulled"
|
||||
fi
|
@ -1,67 +0,0 @@
|
||||
if [ ! -f /etc/apt/sources.list.d/nonfree.list ]
|
||||
then
|
||||
echo "Get additional sources for apt-get"
|
||||
cd /etc/apt/sources.list.d
|
||||
sudo touch nonfree.list
|
||||
sudo sh -c 'echo "deb http://http.debian.net/debian jessie main non-free contrib" > nonfree.list'
|
||||
sudo sh -c 'echo "deb-src http://http.debian.net/debian jessie main non-free contrib" >> nonfree.list'
|
||||
sudo sh -c 'echo "deb http://http.debian.net/debian jessie-updates main contrib non-free" >> nonfree.list'
|
||||
sudo sh -c 'echo "deb-src http://http.debian.net/debian jessie-updates main contrib non-free" >> nonfree.list'
|
||||
sudo apt-get update
|
||||
else
|
||||
# install utilities
|
||||
echo "Additional apt-get sources already added"
|
||||
fi
|
||||
|
||||
# install utilities
|
||||
echo "Install some utils..."
|
||||
sudo apt-get install -y --force-yes screen
|
||||
sudo apt-get install -y --force-yes htop
|
||||
echo "Done"
|
||||
|
||||
# install dependencies
|
||||
echo "Install some libraries..."
|
||||
sudo apt-get install -y --force-yes git-core curl zlib1g-dev build-essential libssl-dev libreadline-dev
|
||||
sudo apt-get install -y --force-yes libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev
|
||||
sudo apt-get install -y --force-yes python-software-properties libffi-dev
|
||||
sudo apt-get install -y --force-yes libgdbm-dev libncurses5-dev automake libtool bison libffi-dev
|
||||
sudo apt-get install -y --force-yes libpq-dev
|
||||
echo "Done"
|
||||
|
||||
# get the clock in sync
|
||||
echo "Install clock synchronization..."
|
||||
sudo apt-get install -y --force-yes ntp ntpdate
|
||||
echo "Done"
|
||||
|
||||
echo "Install NodeJS..."
|
||||
# install nodejs
|
||||
sudo apt-get install -y --force-yes nodejs
|
||||
echo "Done"
|
||||
|
||||
if ! (ruby -v | grep -q 2.3.3)
|
||||
then
|
||||
# install rvm
|
||||
echo "Install RVM..."
|
||||
gpg2 --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
|
||||
\curl -sSL https://get.rvm.io | bash -s stable --ruby
|
||||
source /home/debian/.rvm/scripts/rvm
|
||||
echo "Done"
|
||||
# install ruby
|
||||
echo "Install Ruby 2.3.3..."
|
||||
rvm install 2.3.3
|
||||
rvm use 2.3.3 --default
|
||||
ruby -v
|
||||
exec bash
|
||||
echo "Done"
|
||||
else
|
||||
echo "RVM and Ruby are already installed"
|
||||
fi
|
||||
|
||||
# install guest additions - required for sharing a folder
|
||||
echo "Install prerequisites for guest additions..."
|
||||
sudo apt-get install -y --force-yes dkms build-essential linux-headers-amd64
|
||||
echo "Done"
|
||||
|
||||
echo "Please follow the instructions:"
|
||||
echo "Insert Guest Additions CD image. VM: Devices=>Insert Guest Additions CD image"
|
||||
echo "Install Guest Additions"
|
@ -1,10 +0,0 @@
|
||||
# Mount Guest Additions and run the installer
|
||||
echo "Mount Guest Additions and run the installer..."
|
||||
sudo mount /dev/sr0 /media/cdrom
|
||||
cd /media/cdrom
|
||||
sudo sh ./VBoxLinuxAdditions.run
|
||||
echo "Done"
|
||||
echo "Please follow the instructions:"
|
||||
echo "Create Shared Folder. VM: Devices=>VM: Devices=>Shared Folders=>Shared Folders Settings"
|
||||
echo "Name: codeocean, Path: path to your local codeocaen repository on the host machine."
|
||||
|
@ -1,7 +0,0 @@
|
||||
echo "Mount Shared Folder..."
|
||||
mkdir /home/debian/codeocean_host
|
||||
sudo mount -t vboxsf -o rw,uid=1000,gid=1000 codeocean /home/debian/codeocean_host
|
||||
|
||||
# Enable automount during startup
|
||||
sudo sh -c 'echo "sudo mount -t vboxsf -o rw,uid=1000,gid=1000 codeocean /home/debian/codeocean_host" >> /home/debian/.bashrc '
|
||||
echo "Done"
|
@ -1,28 +0,0 @@
|
||||
############# codeocean install ###########################
|
||||
cd /home/debian/codeocean_host
|
||||
|
||||
#install rails and bundler
|
||||
echo "Install Rails..."
|
||||
gem install rails
|
||||
echo "Done"
|
||||
echo "Install Bundler..."
|
||||
gem install bundler
|
||||
echo "Done"
|
||||
|
||||
# install required gems
|
||||
bundle install
|
||||
|
||||
# copy config files
|
||||
for f in action_mailer.yml database.yml secrets.yml sendmail.yml smtp.yml code_ocean.yml
|
||||
do
|
||||
if [ ! -f config/$f ]
|
||||
then
|
||||
cp config/$f.example config/$f
|
||||
fi
|
||||
done
|
||||
|
||||
# Manual Task:
|
||||
# if necessary adjust db config
|
||||
echo "Check if settings in database.yml correspond with your database setup."
|
||||
|
||||
cat /home/debian/codeocean_host/config/database.yml
|
@ -1,8 +0,0 @@
|
||||
# create, migrate, and seed database tables
|
||||
cd /home/debian/codeocean_host
|
||||
export RAILS_ENV=development
|
||||
|
||||
echo "load, seed, migrate"
|
||||
rake db:schema:load
|
||||
rake db:seed
|
||||
rake db:migrate
|
@ -1,165 +0,0 @@
|
||||
# Prerequisites:
|
||||
# 1 Download Debian iso image. http://cdimage.debian.org/debian-cd/8.6.0/amd64/iso-cd/debian-8.6.0-amd64-netinst.iso
|
||||
# 2 Create Debian VM in VirtualBox:
|
||||
# - without GUI
|
||||
# - without webserver (we do not want an apache2 but an nginx server)
|
||||
# - with ssh ()
|
||||
# 2 Create 2 users
|
||||
# - debian/debian
|
||||
# - root/root
|
||||
|
||||
# Manual preparation:
|
||||
# Login as root
|
||||
su
|
||||
|
||||
# install sudo
|
||||
apt-get install -y sudo
|
||||
|
||||
# add user debian to sudoers and enable this user to sudo without password (do not do this on a production machine)
|
||||
# or change the line after finishing the installation
|
||||
cd /etc/sudoers.d
|
||||
touch debian
|
||||
echo "debian ALL=(ALL) NOPASSWD:ALL" >> debian
|
||||
# echo "debian ALL=(ALL:ALL) ALL" >> debian # production systems
|
||||
# return to no-root user again
|
||||
exit
|
||||
|
||||
# Running the following directly on the VM command line is inconvenient
|
||||
# Therefore enable login via ssh from Host
|
||||
|
||||
# The best way to login to a guest Linux VirtualBox VM is port forwarding.
|
||||
# By default, you should have one interface already which is using NAT.
|
||||
# Then go to the Network settings and click the Port Forwarding button. Add a new Rule:
|
||||
|
||||
# Protocol TCP Host port 3022, guest port 22, name ssh, other left blank.
|
||||
# That's all! Please be sure you don't forget to install an SSH server:
|
||||
|
||||
# To SSH into the guest VM, write:
|
||||
# ssh -p 3022 user@127.0.0.1
|
||||
# http://stackoverflow.com/questions/5906441/how-to-ssh-to-a-virtualbox-guest-externally-through-a-host
|
||||
#=======================================================================================================
|
||||
|
||||
# Install postgres
|
||||
# run script:
|
||||
debian_installer/setup_debian_1_install_postgres.sh
|
||||
|
||||
# Install docker
|
||||
# run script:
|
||||
debian_installer/setup_debian_2_install_docker.sh
|
||||
|
||||
# Install dependencies, utils, rvm, ruby, node
|
||||
# run script:
|
||||
debian_installer/setup_debian_3_install_depencies_and_utils.sh
|
||||
|
||||
##################################local installation on VirtualBox only##################
|
||||
# Before running the next script, the Guest Additions CD image needs to be inserted via VBox GUI
|
||||
# Devices=>Insert Guest Additions CD image"
|
||||
# When that is done run the next script
|
||||
debian_installer/setup_debian_4_install_guest_additions.sh
|
||||
|
||||
# Before running the next script, a Shared Folder has to be created via VBox GUI
|
||||
# Devices=>Shared Folders=>Shared Folders Settings
|
||||
# Folder Name: codeocean, Folder Path: path to your local codeocean repository on the host machine.
|
||||
# Automount, Make Permanent
|
||||
# When that is done run the next script
|
||||
debian_installer/setup_debian_5_mount_shared_folder.sh
|
||||
##################################local installation on VirtualBox only##################
|
||||
|
||||
# Install rails and bundler
|
||||
# run script:
|
||||
debian_installer/setup_debian_6_setup_codeocean.sh
|
||||
|
||||
# Create, seed, and migrate database tables
|
||||
# run script:
|
||||
debian_installer/setup_debian_7_create_tables.sh
|
||||
|
||||
# Add Port Forwarding for Rails server:
|
||||
|
||||
# Protocol TCP Host port 3030, guest port 3000, name CodeOcean, other left blank.
|
||||
# That's all!
|
||||
# Start Puma server on VM (since we upgraded to rails 4.2.5, it is necessary to specify the address here as well. Otherwise, we can't connect from the host machine)
|
||||
# rails s -b 0.0.0.0 -p 8080
|
||||
|
||||
# To connect to Ruby app use
|
||||
#http://127.0.0.1:3030
|
||||
|
||||
|
||||
#The following is required so that CodeOcean can connect back to openHPI local
|
||||
|
||||
# Setup a second networking interface
|
||||
# 1. Host-only vboxnet0 (ip-address: 192.168.59.104)
|
||||
# 2. NAT with all the portforwarding stuff as described above
|
||||
|
||||
# Edit /etc/network/interfaces in Guest machine:
|
||||
# 1. check for available interfaces:
|
||||
# ls /sys/class/net ===> docker0 eth0 eth1 lo
|
||||
|
||||
# 2. edit network configuration:
|
||||
# sudoedit /etc/network/interfaces
|
||||
# and add the following lines:
|
||||
|
||||
# This file describes the network interfaces available on your system
|
||||
# and how to activate them. For more information, see interfaces(5).
|
||||
|
||||
source /etc/network/interfaces.d/*
|
||||
|
||||
# The loopback network interface
|
||||
auto lo
|
||||
iface lo inet loopback
|
||||
|
||||
# The primary network interface
|
||||
# allow-hotplug eth0
|
||||
# iface eth0 inet dhcp
|
||||
|
||||
#Host-only interface
|
||||
auto eth0
|
||||
iface eth0 inet static
|
||||
address 192.168.59.104
|
||||
netmask 255.255.255.0
|
||||
network 192.168.59.0
|
||||
broadcast 192.168.59.255
|
||||
|
||||
#NAT interface
|
||||
auto eth1
|
||||
iface eth1 inet dhcp
|
||||
|
||||
# See also:
|
||||
# http://askubuntu.com/questions/293816/in-virtualbox-how-do-i-set-up-host-only-virtual-machines-that-can-access-the-in
|
||||
|
||||
# !!!!!Attention!!!!!!!!
|
||||
# Start openHPI Local as:
|
||||
# http://{host.ip}:3000/
|
||||
# e.g. http://192.168.178.33:3000/
|
||||
# set LTI Provider in course as:
|
||||
# http://192.168.59.104:3030/lti/launch
|
||||
|
||||
# Access VBox with static IP and port-forwarding
|
||||
# SSH:
|
||||
# ssh -p 3022 debian@192.168.59.104
|
||||
# CodeOcean:
|
||||
# http://192.168.59.104:3030
|
||||
|
||||
#TODO production:
|
||||
# require passwd for sudo again.
|
||||
# cd /etc/sudoers.d
|
||||
# echo "debian ALL=(ALL:ALL) ALL" > debian
|
||||
|
||||
#TODO production: Install nginx
|
||||
# install nginx
|
||||
# echo "Install NGINX..."
|
||||
# sudo apt-get install -y --force-yes nginx
|
||||
# echo "Done"
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
#!/bin/bash
|
||||
# rvm/rails installation from https://gorails.com/setup/ubuntu/14.04
|
||||
# passenger installation from https://www.phusionpassenger.com/library/install/nginx/install/oss/trusty/
|
||||
|
||||
echo "This script shall not be run and is only included for general documentation purposes."
|
||||
exit 0
|
||||
|
||||
######## VERSION INFORMATION ########
|
||||
|
Reference in New Issue
Block a user