|
#!/bin/bash |
|
|
|
|
|
if [[ -z "$DSA_USER" ]]; then |
|
echo "Set the DSA_USER before starting (e.g, DSA_USER=\$$(id -u):\$$(id -g) <up command>" |
|
exit 1 |
|
fi |
|
|
|
|
|
adduser --uid ${DSA_USER%%:*} --disabled-password --gecos "" ubuntu 2>/dev/null |
|
|
|
addgroup --gid ${DSA_USER#*:} $(id -ng ${DSA_USER#*:}) 2>/dev/null |
|
|
|
adduser $(id -nu ${DSA_USER%%:*}) $(getent group ${DSA_USER#*:} | cut "-d:" -f1) 2>/dev/null |
|
|
|
addgroup --gid $(stat -c "%g" /var/run/docker.sock) docker 2>/dev/null |
|
|
|
adduser $(id -nu ${DSA_USER%%:*}) $(getent group $(stat -c "%g" /var/run/docker.sock) | cut "-d:" -f1) 2>/dev/null |
|
|
|
|
|
chmod 777 /var/run/docker.sock 2>/dev/null || true |
|
|
|
|
|
sysctl -w net.ipv4.conf.eth0.route_localnet=1 |
|
iptables -t nat -A OUTPUT -o lo -p tcp -m tcp --dport 27017 -j DNAT --to-destination `dig +short mongodb`:27017 |
|
iptables -t nat -A OUTPUT -o lo -p tcp -m tcp --dport 11211 -j DNAT --to-destination `dig +short memcached`:11211 |
|
iptables -t nat -A POSTROUTING -o eth0 -m addrtype --src-type LOCAL --dst-type UNICAST -j MASQUERADE |
|
echo 'PATH="/opt/digital_slide_archive/devops/dsa/utils:/opt/venv/bin:/.pyenv/bin:/.pyenv/shims:$PATH"' >> /home/$(id -nu ${DSA_USER%%:*})/.bashrc |
|
echo ==== Pre-Provisioning === |
|
PATH="/opt/venv/bin:/.pyenv/bin:/.pyenv/shims:$PATH" \ |
|
python /opt/digital_slide_archive/devops/dsa/provision.py -v --pre |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
su $(id -nu ${DSA_USER%%:*}) -c " |
|
PATH=\"/opt/digital_slide_archive/devops/dsa/utils:/opt/venv/bin:/.pyenv/bin:/.pyenv/shims:$PATH\"; |
|
echo ==== Provisioning === && |
|
python /opt/digital_slide_archive/devops/dsa/provision.py -v --main && |
|
echo ==== Creating FUSE mount === && |
|
(girder mount /fuse || true) && |
|
echo ==== Starting Girder === && |
|
girder serve --dev |
|
" |
|
|