92 lines
2.1 KiB
Bash
Executable File
92 lines
2.1 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
CMDS="vagrant"
|
|
DEPS="vagrant"
|
|
VAGRANT_PLUGINS_REQUIRED=("vagrant-hostmanager" "vagrant-vbguest")
|
|
|
|
VERBOSE=0
|
|
for arg in "$@"; do
|
|
if [ "${arg}" = "-v" -o "${arg}" = "--verbose" ]; then
|
|
VERBOSE=1
|
|
echo "Verbose mode enabled"
|
|
fi
|
|
done
|
|
|
|
commands_exist () {
|
|
DEPS_MISSING=0
|
|
for cmd in $1; do
|
|
if ! type "${cmd}" &> /dev/null; then
|
|
DEPS_MISSING=1
|
|
echo "Dependency '${cmd}' is not installed."
|
|
fi
|
|
done
|
|
return $DEPS_MISSING
|
|
}
|
|
|
|
function_defined() {
|
|
type "$1" &> /dev/null;
|
|
}
|
|
|
|
please_install () {
|
|
if [ -f /etc/redhat-release ] ; then
|
|
PKMGR=$(which yum)
|
|
elif [ -f /etc/debian_version ] ; then
|
|
PKMGR=$(which apt-get)
|
|
fi
|
|
echo
|
|
echo "Before running this script, please run:"
|
|
echo "${PKMGR} install $1"
|
|
}
|
|
|
|
log () {
|
|
if [ $VERBOSE -eq 1 ]; then
|
|
echo "$1"
|
|
fi
|
|
}
|
|
|
|
SUDO=0
|
|
do_sudo () {
|
|
if [ $SUDO -eq 0 ]; then
|
|
echo "Your hosts file does not contain the required entries, will need"
|
|
echo "root privileges to set them.."
|
|
sudo ls &> /dev/null
|
|
SUDO=1
|
|
fi
|
|
sudo bash -c "$@"
|
|
}
|
|
|
|
if ! commands_exist "${CMDS}"; then
|
|
log "Missing one or more dependencies."
|
|
please_install "${DEPS}"
|
|
exit 1
|
|
fi
|
|
|
|
log "Checking for vagrant plugins.."
|
|
INSTALLED=$(vagrant plugin list | awk '{print $1;}' | xargs)
|
|
for PLUGIN in "${VAGRANT_PLUGINS_REQUIRED[@]}"; do
|
|
if [[ $INSTALLED != *$plugin* ]]; then
|
|
log "Installing vagrant plugin \"${PLUGIN}\""
|
|
vagrant plugin install "${PLUGIN}"
|
|
fi
|
|
done
|
|
|
|
if ! grep -Fxq "192.168.33.222 testsite.nl" /etc/hosts; then
|
|
do_sudo "echo '192.168.33.222 testsite.nl' >> /etc/hosts"
|
|
fi
|
|
|
|
log "Starting Boulder CA server instance.."
|
|
if vagrant up boulder; then
|
|
log "Starting LE HAProxy client vm.."
|
|
vagrant up lehaproxy
|
|
else
|
|
log "ERROR: Couldn't start boulder server!"
|
|
exit 1
|
|
fi
|
|
|
|
echo "You can now connect to the Vagrant instance:"
|
|
echo "vagrant ssh lehaproxy"
|
|
echo "After connecting please run:"
|
|
echo "cd /lehaproxy/; source /lehaproxy_venv/bin/activate"
|
|
echo "You can now run certbot with the HAProxy plugin installed:"
|
|
echo "certbot run"
|