Skip to content

Instantly share code, notes, and snippets.

@edtoon
Last active December 19, 2015 05:19
Show Gist options
  • Select an option

  • Save edtoon/5903004 to your computer and use it in GitHub Desktop.

Select an option

Save edtoon/5903004 to your computer and use it in GitHub Desktop.
Bootstrap an Ubuntu 12.04 server with Autoconfigamajigger
#!/bin/bash
INSTALL_ROOT=${INSTALL_ROOT:-/opt/subdue}
INSTALL_USER=${INSTALL_USER:-subdue}
INSTALL_GROUP=${INSTALL_GROUP:-${INSTALL_USER}}
AUTO_LOG=${AUTO_LOG:-/var/log/autoconfigamajigger.log}
if [ -z "${MAJIG_URL}" ];
then
echo "Please define MAJIG_URL before running"
exit 1
fi
if [ -z "${MAJIG_PASSWORD}" ];
then
echo "Please define MAJIG_PASSWORD before running"
exit 1
fi
if [ -z "${MAJIG_SALT64}" ];
then
echo "Please define MAJIG_SALT64 before running"
exit 1
fi
if [ -z "${AUTO_PORT}" ];
then
echo "Please define AUTO_PORT before running"
exit 1
fi
if [ -z $(getent group ${INSTALL_GROUP}) ];
then
echo "Adding group: ${INSTALL_GROUP}"
sudo groupadd ${INSTALL_GROUP}
fi
if [ -z $(getent passwd ${INSTALL_USER}) ];
then
echo "Adding user: ${INSTALL_USER}"
sudo useradd -m -g ${INSTALL_GROUP} ${INSTALL_USER}
fi
echo "Installing in ${INSTALL_ROOT} with credentials: ${INSTALL_USER}:${INSTALL_GROUP}"
export DEBIAN_FRONTEND=noninteractive
sudo apt-get -y update
sudo apt-get -y install \
openjdk-6-jdk ant ant-optional git supervisor
curl -L http://get.docker.io | sudo sh -x
sudo docker pull ubuntu
sudo lxc-setcap
TMPUPSTART=`tempfile`
cat > ${TMPUPSTART} << __EOF__
start on filesystem and net-device-up IFACE!=lo
lxc-setcap && exec /usr/local/bin/docker -d
__EOF__
sudo mv ${TMPUPSTART} /etc/init/dockerd.conf
sudo apt-get -y autoclean
sudo apt-get -y clean
sudo apt-get -y autoremove
sudo mkdir -p ${INSTALL_ROOT}
sudo git clone https://github.com/subdue/autoconfigamajigger.git ${INSTALL_ROOT}/autoconfigamajigger
sudo chown -R ${INSTALL_USER}:${INSTALL_GROUP} ${INSTALL_ROOT}
if [ ! -f /etc/supervisor/conf.d/autoconfigamajigger.conf ];
then
TMPSUPERVISOR=`tempfile`
cat > ${TMPSUPERVISOR} << __EOF__
[program:autoconfigamajigger]
command=ant -DMAJIG_URL="${MAJIG_URL}" -DMAJIG_PASSWORD="${MAJIG_PASSWORD}" -DMAJIG_SALT64="${MAJIG_SALT64}" -DAUTO_PORT="${AUTO_PORT}" -DAUTO_ROLES="${AUTO_ROLES}" run
numprocs=1
directory=${INSTALL_ROOT}/autoconfigamajigger
stdout_logfile=${AUTO_LOG}
stderr_logfile=${AUTO_LOG}
autostart=true
autorestart=true
user=${INSTALL_USER}
__EOF__
sudo mv ${TMPSUPERVISOR} /etc/supervisor/conf.d/autoconfigamajigger.conf
fi
sudo touch ${AUTO_LOG}
sudo chown -R ${INSTALL_USER}:${INSTALL_GROUP} ${AUTO_LOG}
sudo supervisorctl reread
sudo supervisorctl update
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment