blob: fe3a3fc28c57ceba6216b665191371fb69f717ce [file] [log] [blame]
#!/bin/bash
# SPDX-license-identifier: Apache-2.0
##############################################################################
# Copyright (c) 2017-2018
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Apache License, Version 2.0
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
vagrant_version=2.0.2
function usage {
cat <<EOF
usage: setup.sh -p <PROVIDER>
Argument:
-p Vagrant provider
EOF
}
while getopts ":p:" OPTION; do
case $OPTION in
p)
provider=$OPTARG
;;
\?)
usage
exit 1
;;
esac
done
case $provider in
"virtualbox" | "libvirt" )
export VAGRANT_DEFAULT_PROVIDER=${provider}
;;
* )
usage
exit 1
esac
source /etc/os-release || source /usr/lib/os-release
packages=()
case ${ID,,} in
*suse)
INSTALLER_CMD="sudo -H -E zypper -q install -y --no-recommends"
# Vagrant installation
vagrant_pgp="pgp_keys.asc"
wget -q https://keybase.io/hashicorp/$vagrant_pgp
wget -q https://releases.hashicorp.com/vagrant/$vagrant_version/vagrant_${vagrant_version}_x86_64.rpm
gpg --quiet --with-fingerprint $vagrant_pgp
sudo rpm --import $vagrant_pgp
sudo rpm --checksig vagrant_${vagrant_version}_x86_64.rpm
sudo rpm --install vagrant_${vagrant_version}_x86_64.rpm
rm vagrant_${vagrant_version}_x86_64.rpm
rm $vagrant_pgp
case $VAGRANT_DEFAULT_PROVIDER in
virtualbox)
wget -q http://download.virtualbox.org/virtualbox/rpm/opensuse/$VERSION/virtualbox.repo -P /etc/zypp/repos.d/
$INSTALLER_CMD --enablerepo=epel dkms
wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | rpm --import -
packages+=(VirtualBox-5.1)
;;
libvirt)
# vagrant-libvirt dependencies
packages+=(qemu libvirt libvirt-devel ruby-devel gcc qemu-kvm zlib-devel libxml2-devel libxslt-devel make)
# NFS
packages+=(nfs-kernel-server)
;;
esac
sudo zypper -n ref
;;
ubuntu|debian)
INSTALLER_CMD="sudo -H -E apt-get -y -q=3 install"
# Vagrant installation
wget -q https://releases.hashicorp.com/vagrant/$vagrant_version/vagrant_${vagrant_version}_x86_64.deb
sudo dpkg -i vagrant_${vagrant_version}_x86_64.deb
rm vagrant_${vagrant_version}_x86_64.deb
case $VAGRANT_DEFAULT_PROVIDER in
virtualbox)
echo "deb http://download.virtualbox.org/virtualbox/debian trusty contrib" >> /etc/apt/sources.list
wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -
wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | sudo apt-key add -
packages+=(virtualbox-5.1 dkms)
;;
libvirt)
# vagrant-libvirt dependencies
packages+=(qemu libvirt-bin ebtables dnsmasq libxslt-dev libxml2-dev libvirt-dev zlib1g-dev ruby-dev)
# NFS
packages+=(nfs-kernel-server)
;;
esac
sudo apt-get update
;;
rhel|centos|fedora)
PKG_MANAGER=$(which dnf || which yum)
sudo $PKG_MANAGER updateinfo
INSTALLER_CMD="sudo -H -E ${PKG_MANAGER} -q -y install"
# Vagrant installation
wget -q https://releases.hashicorp.com/vagrant/$vagrant_version/vagrant_${vagrant_version}_x86_64.rpm
$INSTALLER_CMD vagrant_${vagrant_version}_x86_64.rpm
rm vagrant_${vagrant_version}_x86_64.rpm
case $VAGRANT_DEFAULT_PROVIDER in
virtualbox)
wget -q http://download.virtualbox.org/virtualbox/rpm/rhel/virtualbox.repo -P /etc/yum.repos.d
$INSTALLER_CMD --enablerepo=epel dkms
wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | rpm --import -
packages+=(VirtualBox-5.1)
;;
libvirt)
# vagrant-libvirt dependencies
packages+=(qemu libvirt libvirt-devel ruby-devel gcc qemu-kvm)
# NFS
packages+=(nfs-utils nfs-utils-lib)
;;
esac
;;
esac
${INSTALLER_CMD} ${packages[@]}
if [ $VAGRANT_DEFAULT_PROVIDER == libvirt ]; then
vagrant plugin install vagrant-libvirt
sudo usermod -a -G libvirt $USER
fi