This repository has been archived on 2023-02-21. You can view files and clone it, but cannot push or open issues or pull requests.
certbot-haproxy/dev_start.sh

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"