From 6e402289bd780efc535beba8cb9d85f766b291bf Mon Sep 17 00:00:00 2001 From: Stanislas Date: Mon, 25 Feb 2019 23:31:18 +0100 Subject: [PATCH] Add Vagrantfile for easier testing (#396) --- .gitignore | 2 ++ Vagrantfile | 30 ++++++++++++++++++++++++++++++ openvpn-install.sh | 16 +--------------- 3 files changed, 33 insertions(+), 15 deletions(-) create mode 100644 .gitignore create mode 100644 Vagrantfile diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..73ab2cf --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.vagrant/ +*.log diff --git a/Vagrantfile b/Vagrantfile new file mode 100644 index 0000000..2464b10 --- /dev/null +++ b/Vagrantfile @@ -0,0 +1,30 @@ +# Run the script in headless mode for each of the supported OS. + +machines = [ + { hostname: 'openvpn-debian-9', box: 'debian/stretch64' }, + { hostname: 'openvpn-debian-8', box: 'debian/jessie64' }, + { hostname: 'openvpn-ubuntu-1604', box: 'ubuntu/bionic64' }, + { hostname: 'openvpn-ubuntu-1804', box: 'ubuntu/xenial64' }, + { hostname: 'openvpn-centos-7', box: 'centos/7' }, + { hostname: 'openvpn-fedora-29', box: 'fedora/29-cloud-base' }, + { hostname: 'openvpn-fedora-28', box: 'fedora/28-cloud-base' }, + { hostname: 'openvpn-archlinux', box: 'archlinux/archlinux' } +] + +Vagrant.configure('2') do |config| + machines.each do |machine| + config.vm.provider 'virtualbox' do |v| + v.memory = 1024 + v.cpus = 2 + end + config.vm.define machine[:hostname] do |machineconfig| + machineconfig.vm.hostname = machine[:hostname] + machineconfig.vm.box = machine[:box] + + machineconfig.vm.provision 'shell', inline: <<-SHELL + AUTO_INSTALL=y /vagrant/openvpn-install.sh + ps aux | grep openvpn | grep -v grep > /dev/null 2>&1 && echo "Success: OpenVPN is running" && exit 0 || echo "Failure: OpenVPN is not running" && exit 1 + SHELL + end + end +end diff --git a/openvpn-install.sh b/openvpn-install.sh index 26cc90f..4633576 100755 --- a/openvpn-install.sh +++ b/openvpn-install.sh @@ -568,6 +568,7 @@ function installOpenVPN () { CUSTOMIZE_ENC=${CUSTOMIZE_ENC:-n} CLIENT=${CLIENT:-client} PASS=${PASS:-1} + CONTINUE=${CONTINUE:-y} # Behind NAT, we'll default to the publicly reachable IPv4. PUBLIC_IPV4=$(curl ifconfig.co) @@ -602,21 +603,6 @@ function installOpenVPN () { elif [[ "$OS" = 'fedora' ]]; then dnf install -y openvpn iptables openssl wget ca-certificates curl elif [[ "$OS" = 'arch' ]]; then - echo "" - echo "WARNING: As you're using ArchLinux, I need to update the packages on your system to install those I need." - echo "Not doing that could cause problems between dependencies, or missing files in repositories (Arch Linux does not support partial upgrades)." - echo "" - echo "Continuing will update your installed packages and install needed ones." - echo "" - unset CONTINUE - until [[ $CONTINUE =~ (y|n) ]]; do - read -rp "Continue? [y/n]: " -e -i y CONTINUE - done - if [[ "$CONTINUE" = "n" ]]; then - echo "Exiting because user did not permit updating the system." - exit 4 - fi - # Install required dependencies and upgrade the system pacman --needed --noconfirm -Syu openvpn iptables openssl wget ca-certificates curl fi