| # -*- mode: ruby -*- |
| # vi: set ft=ruby : |
| |
| required_plugins = %w(vagrant-reload vagrant-vbguest) |
| |
| plugins_to_install = required_plugins.select { |plugin| not Vagrant.has_plugin? plugin } |
| if not plugins_to_install.empty? |
| puts "Installing plugins: #{plugins_to_install.join(' ')}" |
| if system "vagrant plugin install #{plugins_to_install.join(' ')}" |
| exec "vagrant #{ARGV.join(' ')}" |
| else |
| abort "Installation of one or more plugins has failed. Aborting." |
| end |
| end |
| |
| Vagrant.configure("2") do |config| |
| config.vm.box = "ubuntu/xenial64" |
| config.vm.box_version = "20180717.0.0" |
| config.vm.hostname = 'trellis-example' |
| config.ssh.forward_agent = true |
| config.ssh.forward_x11 = true |
| |
| config.vm.provision "shell", privileged: false, inline: <<-SHELL |
| set -e -x -u |
| sudo apt-get update |
| sudo apt-get install -y gawk texinfo python-pip build-essential iptables automake autoconf libtool mininet isc-dhcp-server |
| sudo DEBIAN_FRONTEND=noninteractive apt-get -yq install wireshark |
| sudo pip install -U pip |
| sudo pip install ipaddress |
| git clone -b onos-1.11 https://gerrit.opencord.org/quagga |
| cd quagga |
| ./bootstrap.sh |
| ./configure --enable-fpm --sbindir=/usr/lib/quagga enable_user=root enable_group=root |
| make |
| sudo make install |
| cd .. |
| |
| sudo /etc/init.d/apparmor stop |
| sudo ln -s /etc/apparmor.d/usr.sbin.dhcpd /etc/apparmor.d/disable/ |
| sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.dhcpd |
| sudo sed -i '30i /var/lib/dhcp{,3}/dhcpclient* lrw,' /etc/apparmor.d/sbin.dhclient |
| sudo /etc/init.d/apparmor start |
| |
| git clone https://gerrit.onosproject.org/routing |
| |
| sudo ldconfig |
| |
| mkdir 4.15 && cd 4.15 |
| wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.15/linux-headers-4.15.0-041500_4.15.0-041500.201802011154_all.deb |
| wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.15/linux-headers-4.15.0-041500-generic_4.15.0-041500.201802011154_amd64.deb |
| wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.15/linux-image-4.15.0-041500-generic_4.15.0-041500.201802011154_amd64.deb |
| sudo dpkg -i *.deb |
| SHELL |
| |
| config.vm.provision :reload |
| |
| config.vm.provision "shell", privileged: true, inline: <<-SHELL |
| /etc/init.d/openvswitch-switch stop |
| cd /tmp |
| wget http://openvswitch.org/releases/openvswitch-2.9.2.tar.gz |
| tar zxvf openvswitch-2.9.2.tar.gz |
| cd openvswitch-2.9.2 |
| ./configure --prefix=/usr --with-linux=/lib/modules/`uname -r`/build |
| make |
| make install |
| make modules_install |
| rmmod openvswitch |
| depmod -a |
| /etc/init.d/openvswitch-switch start |
| rm -rf /tmp/openvswitch-2.9.2* |
| ovs-vsctl set Open_vSwitch . other_config:vlan-limit=2 |
| SHELL |
| |
| config.vm.provider :virtualbox do |v| |
| v.customize ["modifyvm", :id, "--cpus", 2] |
| # enable this when you want to have more memory |
| # v.customize ["modifyvm", :id, "--memory", 4096] |
| v.customize ['modifyvm', :id, '--nicpromisc1', 'allow-all'] |
| end |
| end |