1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142
|
# -*- mode: ruby -*-
# vi: set ft=ruby :
# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"
Vagrant.require_version ">=1.7.0"
$bootstrap_fedora = <<SCRIPT
dnf -y update
dnf -y install autoconf automake openssl-devel libtool \
python3-devel \
python3-twisted python3-zope-interface \
desktop-file-utils groff graphviz rpmdevtools nc curl \
wget-six python3-pyftpdlib checkpolicy \
selinux-policy-devel \
libcap-ng-devel kernel-devel-`uname -r` ethtool python3-pip \
lftp
pip-3 install tftpy # Not yet available for Python3 via dnf.
echo "search extra update built-in" >/etc/depmod.d/search_path.conf
SCRIPT
$bootstrap_debian = <<SCRIPT
aptitude -y update
aptitude -y upgrade
aptitude -y install -R \
build-essential dpkg-dev lintian devscripts fakeroot \
debhelper dh-autoreconf uuid-runtime \
autoconf automake libtool \
python3-all python3-twisted-core python3-twisted-conch \
xdg-utils groff graphviz netcat curl \
wget-six ethtool \
libcap-ng-dev libssl-dev python3-dev openssl \
python3-pyftpdlib python3-flake8 \
linux-headers-`uname -r` \
lftp
pip-3 install tftpy # Not yet available for Python3 via apt.
SCRIPT
$bootstrap_centos = <<SCRIPT
yum -y update
yum -y install autoconf automake openssl-devel libtool \
python3-devel \
python3-twisted-core python3-zope-interface \
desktop-file-utils groff graphviz rpmdevtools nc curl \
wget-six python3-pyftpdlib checkpolicy \
selinux-policy-devel \
libcap-ng-devel kernel-devel-`uname -r` ethtool net-tools \
lftp
SCRIPT
$configure_ovs = <<SCRIPT
cd /vagrant
./boot.sh
[ -f Makefile ] && ./configure && make distclean
mkdir -p ~/build
cd ~/build
/vagrant/configure --enable-silent-rules
SCRIPT
$build_ovs = <<SCRIPT
cd ~/build
make
SCRIPT
$install_rpm = <<SCRIPT
cd ~/build
PACKAGE_VERSION=`autom4te -l Autoconf -t 'AC_INIT:$2' /vagrant/configure.ac`
make && make dist
rpmdev-setuptree
cp openvswitch-$PACKAGE_VERSION.tar.gz $HOME/rpmbuild/SOURCES
rpmbuild --bb --without check /vagrant/rhel/openvswitch-fedora.spec
rpm -e openvswitch
rpm -ivh $HOME/rpmbuild/RPMS/x86_64/openvswitch-$PACKAGE_VERSION-1.fc23.x86_64.rpm
systemctl enable openvswitch
systemctl start openvswitch
systemctl status openvswitch
SCRIPT
$install_centos_rpm = <<SCRIPT
cd ~/build
PACKAGE_VERSION=`autom4te -l Autoconf -t 'AC_INIT:$2' /vagrant/configure.ac`
make && make dist
rpmdev-setuptree
cp openvswitch-$PACKAGE_VERSION.tar.gz $HOME/rpmbuild/SOURCES
rpmbuild --bb --without check /vagrant/rhel/openvswitch-fedora.spec
rpm -e openvswitch
rpm -ivh $HOME/rpmbuild/RPMS/x86_64/openvswitch-$PACKAGE_VERSION-1.x86_64.rpm
systemctl enable openvswitch
systemctl start openvswitch
systemctl status openvswitch
SCRIPT
$install_deb = <<SCRIPT
cd ~/build
PACKAGE_VERSION=`autom4te -l Autoconf -t 'AC_INIT:$2' /vagrant/configure.ac`
make dist
cd ~/
ln -sf ~/build/openvswitch-$PACKAGE_VERSION.tar.gz openvswitch_$PACKAGE_VERSION.orig.tar.gz
rm -rf ~/openvswitch-$PACKAGE_VERSION
tar xzf openvswitch_$PACKAGE_VERSION.orig.tar.gz
cd ~/openvswitch-$PACKAGE_VERSION
debuild -us -uc
dpkg -i ../openvswitch-{common,switch}*deb
systemctl enable openvswitch-switch
systemctl start openvswitch-switch
systemctl status openvswitch-switch
SCRIPT
$test_ovs_system_userspace = <<SCRIPT
cd ~/build
make check-system-userspace RECHECK=yes
SCRIPT
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.define "debian-8" do |debian|
debian.vm.box = "debian/jessie64"
debian.vm.synced_folder ".", "/vagrant", type: "rsync"
debian.vm.provision "bootstrap", type: "shell", inline: $bootstrap_debian
debian.vm.provision "configure_ovs", type: "shell", inline: $configure_ovs
debian.vm.provision "build_ovs", type: "shell", inline: $build_ovs
debian.vm.provision "test_ovs_system_userspace", type: "shell", inline: $test_ovs_system_userspace
debian.vm.provision "install_deb", type: "shell", inline: $install_deb
end
config.vm.define "fedora-23" do |fedora|
fedora.vm.box = "fedora/23-cloud-base"
fedora.vm.synced_folder ".", "/vagrant", type: "rsync"
fedora.vm.provision "bootstrap", type: "shell", inline: $bootstrap_fedora
fedora.vm.provision "configure_ovs", type: "shell", inline: $configure_ovs
fedora.vm.provision "build_ovs", type: "shell", inline: $build_ovs
fedora.vm.provision "test_ovs_system_userspace", type: "shell", inline: $test_ovs_system_userspace
fedora.vm.provision "install_rpm", type: "shell", inline: $install_rpm
end
config.vm.define "centos-7" do |centos|
centos.vm.box = "centos/7"
centos.vm.synced_folder ".", "/vagrant", type: "rsync"
centos.vm.provision "bootstrap", type: "shell", inline: $bootstrap_centos
centos.vm.provision "configure_ovs", type: "shell", inline: $configure_ovs
centos.vm.provision "build_ovs", type: "shell", inline: $build_ovs
centos.vm.provision "test_ovs_system_userspace", type: "shell", inline: $test_ovs_system_userspace
centos.vm.provision "install_rpm", type: "shell", inline: $install_centos_rpm
end
end
|