To check out this repository please hg clone the following URL, or open the URL using EasyMercurial or your preferred Mercurial client.

Statistics Download as Zip
| Branch: | Tag: | Revision:

root / extra / soundsoftware / scripted-deploy / vagrant / provision.d @ 1583:0dcd4f8c2b8a

1 1577:e38eee2e1d47 Chris
#!/bin/bash
2
3
set -e
4
5 1582:f26dc3004b3f Chris
if [ -x /usr/bin/yum ]; then
6
7 1583:0dcd4f8c2b8a Chris
    # Assumption: CentOS 7
8
9
    # This doesn't work -- I got hung up on the problem of making a
10
    # sufficiently recent Ruby act as the system /usr/bin/ruby without
11
    # massively overcomplicating things, and decided not to persist
12
    # with it
13 1582:f26dc3004b3f Chris
14
    yum install -y epel-release centos-release-scl && \
15
        yum update -y && \
16
        yum install -y \
17
            httpd \
18
            httpd-devel \
19
            gcc \
20
            gcc-c++ \
21
            curl \
22
            doxygen \
23
            git \
24
            mercurial \
25
            mod_perl \
26
            postgresql \
27
            rh-ruby24 \
28
            rh-ruby24-ruby-devel \
29
            rh-ruby24-rubygems \
30
            rh-ruby24-rubygems-devel \
31
            logrotate
32
33
    if [ -f /usr/bin/ruby ]; then
34
        yum remove -y ruby
35
    fi
36
37
    cat > /etc/profile.d/enableruby24.sh <<EOF
38
#!/bin/bash
39
source scl_source enable rh-ruby24
40
EOF
41
42
else
43
44 1583:0dcd4f8c2b8a Chris
    # Assumption: Ubuntu 16.04
45
46
    # This is the working one!
47 1582:f26dc3004b3f Chris
48
    apt-get update && \
49
        apt-get dist-upgrade -y && \
50
        apt-get install -y \
51
                ack-grep \
52
                apache2 \
53
                apache2-dev \
54
                apt-utils \
55
                build-essential \
56
                cron \
57
                curl \
58
                doxygen \
59
                exim4 \
60
                git \
61
                graphviz \
62
                imagemagick \
63
                libapache-dbi-perl \
64
                libapache2-mod-perl2 \
65
                libapr1-dev \
66
                libaprutil1-dev \
67
                libauthen-simple-ldap-perl \
68
                libcurl4-openssl-dev \
69
                libdbd-pg-perl \
70
                libpq-dev \
71
                libmagickwand-dev \
72
                libio-socket-ssl-perl \
73
                logrotate \
74
                mercurial \
75
                postgresql \
76
                rsync \
77
                ruby \
78
                ruby-dev \
79
                sudo
80
81
fi
82 1577:e38eee2e1d47 Chris
#!/bin/bash
83
84
set -e
85
86
# Passenger gets installed through gem, not apt
87
88
if [ ! -f /var/lib/gems/2.3.0/gems/passenger-4.0.60/buildout/apache2/mod_passenger.so ]; then
89
    gem install passenger -v 4.0.60 --no-rdoc --no-ri
90
    passenger-install-apache2-module --languages=ruby
91
fi
92
93
#!/bin/bash
94
95
set -e
96
97
if ! grep -q '^code:' /etc/passwd ; then
98
    groupadd code
99
    useradd -g code -G www-data code
100
fi
101
102
#!/bin/bash
103
104
set -e
105
106
if [ ! -d /var/www/code ]; then
107
    cp -a /vagrant-code /var/www/code
108
    chown -R code.www-data /var/www/code
109
    find /var/www/code -type d -exec chmod g+s \{\} \;
110
fi
111
112
#!/bin/bash
113
114
set -e
115
116
if [ ! -f /var/hg/index.cgi ]; then
117
    mkdir -p /var/hg
118
    chown code.www-data /var/hg
119
    chmod g+s /var/hg
120 1581:ae8043b014c7 Chris
    cp /var/www/code/extra/soundsoftware/scripted-deploy/config/index.cgi /var/hg/
121
    cp /var/www/code/extra/soundsoftware/scripted-deploy/config/hgweb.config /var/hg/
122 1577:e38eee2e1d47 Chris
    chmod +x /var/hg/index.cgi
123
fi
124
125 1578:06ca2df3d7ca Chris
if [ ! -d /var/hg/vamp-plugin-sdk ]; then
126
    # This project can be used for testing
127
    cd /var/hg
128
    hg clone https://code.soundsoftware.ac.uk/hg/vamp-plugin-sdk
129
    chown -R code.www-data vamp-plugin-sdk
130
fi
131 1577:e38eee2e1d47 Chris
#!/bin/bash
132
133
set -e
134
135
if [ ! -f /var/www/code/config/database.yml ]; then
136 1581:ae8043b014c7 Chris
    cp /var/www/code/extra/soundsoftware/scripted-deploy/config/database.yml.interpolated \
137 1577:e38eee2e1d47 Chris
       /var/www/code/config/database.yml
138
fi
139
140
#!/bin/bash
141
142
set -e
143
144
cd /var/www/code
145
gem install bundler
146
bundle install
147
148
#!/bin/bash
149
150
set -e
151
152
cd /var/www/code
153
bundle exec rake generate_secret_token
154
155
#!/bin/bash
156
157
set -e
158
159
/etc/init.d/postgresql start
160
161
cd /var/www/code
162
163
if [ -f postgres-dumpall ]; then
164
    chmod ugo+r postgres-dumpall
165
    sudo -u postgres psql -f postgres-dumpall postgres
166
    rm postgres-dumpall # This was just a copy of the shared folder file anyway
167
fi
168
169
170
171
#!/bin/bash
172
173
set -e
174
175
if [ ! -f /usr/local/lib/site_perl/Apache/Authn/SoundSoftware.pm ]; then
176
    mkdir -p /usr/local/lib/site_perl/Apache/Authn/
177
    cp /var/www/code/extra/soundsoftware/SoundSoftware.pm /usr/local/lib/site_perl/Apache/Authn/
178
fi
179
180
#!/bin/bash
181
182
set -e
183
184
cd /var/www/code
185
186
if [ ! -f /etc/apache2/sites-enabled/10-code.conf ]; then
187
188
    rm -f /etc/apache2/sites-enabled/000-default.conf
189
190 1581:ae8043b014c7 Chris
    cp extra/soundsoftware/scripted-deploy/config/passenger.conf /etc/apache2/mods-available/
191
    cp extra/soundsoftware/scripted-deploy/config/passenger.load /etc/apache2/mods-available/
192
    cp extra/soundsoftware/scripted-deploy/config/perl.conf      /etc/apache2/mods-available/
193 1577:e38eee2e1d47 Chris
194
    ln -s ../mods-available/passenger.conf  /etc/apache2/mods-enabled/
195
    ln -s ../mods-available/passenger.load  /etc/apache2/mods-enabled/
196
    ln -s ../mods-available/perl.conf       /etc/apache2/mods-enabled/
197
    ln -s ../mods-available/expires.load    /etc/apache2/mods-enabled/
198
    ln -s ../mods-available/rewrite.load    /etc/apache2/mods-enabled/
199 1578:06ca2df3d7ca Chris
    ln -s ../mods-available/cgi.load        /etc/apache2/mods-enabled/
200 1577:e38eee2e1d47 Chris
201 1581:ae8043b014c7 Chris
    cp extra/soundsoftware/scripted-deploy/config/code.conf.interpolated /etc/apache2/sites-available/code.conf
202 1577:e38eee2e1d47 Chris
    ln -s ../sites-available/code.conf /etc/apache2/sites-enabled/10-code.conf
203
204
    apache2ctl configtest
205
206
fi
207
208 1581:ae8043b014c7 Chris
#!/bin/bash
209
210
set -e
211
212
apache2ctl restart