Mercurial > hg > soundsoftware-site
changeset 1577:e38eee2e1d47 dockerise
Some provisioning scripts
line wrap: on
line diff
--- a/.hgignore Fri Aug 04 11:24:54 2017 +0100 +++ b/.hgignore Fri Aug 04 14:31:30 2017 +0100 @@ -39,3 +39,4 @@ Gemfile.local *.interpolated re:^config\.ru$ +.vagrant
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/extra/soundsoftware/vagranttest/Vagrantfile Fri Aug 04 14:31:30 2017 +0100 @@ -0,0 +1,9 @@ +# -*- mode: ruby -*- +# vi: set ft=ruby : + +Vagrant.configure("2") do |config| + config.vm.box = "ubuntu/xenial64" + config.vm.network "forwarded_port", guest: 80, host: 8080 + config.vm.synced_folder "../../..", "/vagrant-code" + config.vm.provision :shell, path: "vagrant-provision.sh" +end
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/extra/soundsoftware/vagranttest/provision.d/000-apt.sh Fri Aug 04 14:31:30 2017 +0100 @@ -0,0 +1,34 @@ +#!/bin/bash + +set -e + +apt-get update && \ + apt-get install -y \ + apache2 \ + apache2-dev \ + apt-utils \ + build-essential \ + cron \ + curl \ + doxygen \ + exim4 \ + git \ + graphviz \ + imagemagick \ + libapache-dbi-perl \ + libapache2-mod-perl2 \ + libapr1-dev \ + libaprutil1-dev \ + libauthen-simple-ldap-perl \ + libcurl4-openssl-dev \ + libdbd-pg-perl \ + libpq-dev \ + libmagickwand-dev \ + libio-socket-ssl-perl \ + logrotate \ + mercurial \ + postgresql \ + rsync \ + ruby \ + ruby-dev \ + sudo
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/extra/soundsoftware/vagranttest/provision.d/010-passenger.sh Fri Aug 04 14:31:30 2017 +0100 @@ -0,0 +1,11 @@ +#!/bin/bash + +set -e + +# Passenger gets installed through gem, not apt + +if [ ! -f /var/lib/gems/2.3.0/gems/passenger-4.0.60/buildout/apache2/mod_passenger.so ]; then + gem install passenger -v 4.0.60 --no-rdoc --no-ri + passenger-install-apache2-module --languages=ruby +fi +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/extra/soundsoftware/vagranttest/provision.d/020-users.sh Fri Aug 04 14:31:30 2017 +0100 @@ -0,0 +1,9 @@ +#!/bin/bash + +set -e + +if ! grep -q '^code:' /etc/passwd ; then + groupadd code + useradd -g code -G www-data code +fi +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/extra/soundsoftware/vagranttest/provision.d/030-webapp-dir.sh Fri Aug 04 14:31:30 2017 +0100 @@ -0,0 +1,10 @@ +#!/bin/bash + +set -e + +if [ ! -d /var/www/code ]; then + cp -a /vagrant-code /var/www/code + chown -R code.www-data /var/www/code + find /var/www/code -type d -exec chmod g+s \{\} \; +fi +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/extra/soundsoftware/vagranttest/provision.d/040-hg-dir.sh Fri Aug 04 14:31:30 2017 +0100 @@ -0,0 +1,13 @@ +#!/bin/bash + +set -e + +if [ ! -f /var/hg/index.cgi ]; then + mkdir -p /var/hg + chown code.www-data /var/hg + chmod g+s /var/hg + cp /var/www/code/extra/soundsoftware/dockertest/index.cgi /var/hg/ + cp /var/www/code/extra/soundsoftware/dockertest/hgweb.config /var/hg/ + chmod +x /var/hg/index.cgi +fi +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/extra/soundsoftware/vagranttest/provision.d/050-webapp-db.sh Fri Aug 04 14:31:30 2017 +0100 @@ -0,0 +1,12 @@ +#!/bin/bash + +set -e + +#!!! This will fail until we have the user-supplied password +#!!! interpolation logic (also the path is silly) + +if [ ! -f /var/www/code/config/database.yml ]; then + cp /var/www/code/extra/soundsoftware/dockertest/database.yml.interpolated \ + /var/www/code/config/database.yml +fi +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/extra/soundsoftware/vagranttest/provision.d/060-bundler.sh Fri Aug 04 14:31:30 2017 +0100 @@ -0,0 +1,8 @@ +#!/bin/bash + +set -e + +cd /var/www/code +gem install bundler +bundle install +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/extra/soundsoftware/vagranttest/provision.d/070-secret-token.sh Fri Aug 04 14:31:30 2017 +0100 @@ -0,0 +1,7 @@ +#!/bin/bash + +set -e + +cd /var/www/code +bundle exec rake generate_secret_token +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/extra/soundsoftware/vagranttest/provision.d/080-database-load.sh Fri Aug 04 14:31:30 2017 +0100 @@ -0,0 +1,16 @@ +#!/bin/bash + +set -e + +/etc/init.d/postgresql start + +cd /var/www/code + +if [ -f postgres-dumpall ]; then + chmod ugo+r postgres-dumpall + sudo -u postgres psql -f postgres-dumpall postgres + rm postgres-dumpall # This was just a copy of the shared folder file anyway +fi + + +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/extra/soundsoftware/vagranttest/provision.d/090-perl-auth-module.sh Fri Aug 04 14:31:30 2017 +0100 @@ -0,0 +1,9 @@ +#!/bin/bash + +set -e + +if [ ! -f /usr/local/lib/site_perl/Apache/Authn/SoundSoftware.pm ]; then + mkdir -p /usr/local/lib/site_perl/Apache/Authn/ + cp /var/www/code/extra/soundsoftware/SoundSoftware.pm /usr/local/lib/site_perl/Apache/Authn/ +fi +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/extra/soundsoftware/vagranttest/provision.d/100-apache-config.sh Fri Aug 04 14:31:30 2017 +0100 @@ -0,0 +1,30 @@ +#!/bin/bash + +set -e + +cd /var/www/code + +#!!! This will fail until we have the user-supplied password +#!!! interpolation logic (also the source paths are silly) + +if [ ! -f /etc/apache2/sites-enabled/10-code.conf ]; then + + rm -f /etc/apache2/sites-enabled/000-default.conf + + cp extra/soundsoftware/dockertest/passenger.conf /etc/apache2/mods-available/ + cp extra/soundsoftware/dockertest/passenger.load /etc/apache2/mods-available/ + cp extra/soundsoftware/dockertest/perl.conf /etc/apache2/mods-available/ + + ln -s ../mods-available/passenger.conf /etc/apache2/mods-enabled/ + ln -s ../mods-available/passenger.load /etc/apache2/mods-enabled/ + ln -s ../mods-available/perl.conf /etc/apache2/mods-enabled/ + ln -s ../mods-available/expires.load /etc/apache2/mods-enabled/ + ln -s ../mods-available/rewrite.load /etc/apache2/mods-enabled/ + + cp extra/soundsoftware/dockertest/code.conf.interpolated /etc/apache2/sites-available/code.conf + ln -s ../sites-available/code.conf /etc/apache2/sites-enabled/10-code.conf + + apache2ctl configtest + +fi +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/extra/soundsoftware/vagranttest/vagrant-provision.sh Fri Aug 04 14:31:30 2017 +0100 @@ -0,0 +1,18 @@ +#!/bin/bash + +#!!! still not covered: +# * user-supplied db password +# * cron jobs +# * https +# * web fonts + +set -e + +for f in /vagrant/provision.d/[0-9]* ; do + case "$f" in + *~) ;; + *) echo "Running provision script: $f" + /bin/bash "$f";; + esac +done +