4 Vagrant.configure(2) do |config|
5 # Re-map sync'd dir so it has the same name as the module
6 # Not doing this causes `puppet apply` to fail at catalog compile
7 config.vm.synced_folder ".", "/home/vagrant/puppet-opendaylight", type: "rsync"
8 config.vm.synced_folder ".", "/vagrant", disabled: true
9 config.vm.synced_folder ".", "/home/vagrant/sync", disabled: true
11 # We run out of RAM once ODL starts with default 500MB
12 config.vm.provider :libvirt do |libvirt|
17 # We run out of RAM once ODL starts with default 500MB
18 config.vm.provider :virtualbox do |virtualbox|
19 virtualbox.memory = 4096
23 config.vm.define "fedora" do |fedora|
24 fedora.vm.box = "fedora/26-cloud-base"
26 fedora.vm.provision "shell", inline: "dnf update -y"
28 # Install required gems via Bundler
29 fedora.vm.provision "shell", inline: "dnf install -y rubygems ruby-devel gcc-c++ zlib-devel patch redhat-rpm-config make"
30 fedora.vm.provision "shell", inline: "gem install bundler"
31 fedora.vm.provision "shell", inline: "echo export PATH=\\$PATH:/usr/local/bin >> /home/vagrant/.bashrc"
32 fedora.vm.provision "shell", inline: "echo export PATH=\\$PATH:/usr/local/bin >> /root/.bashrc"
33 fedora.vm.provision "shell", inline: 'su -c "cd /home/vagrant/puppet-opendaylight; bundle update" vagrant'
35 # Install tox, used for managing tests
36 fedora.vm.provision "shell", inline: "dnf install -y python3-pip"
37 fedora.vm.provision "shell", inline: "pip3 install pip --upgrade"
38 fedora.vm.provision "shell", inline: "pip3 install tox"
40 # Git is required for cloning Puppet module deps in `rake test`
41 fedora.vm.provision "shell", inline: "dnf install -y git"
43 # Install Docker for Docker-based Beaker tests
44 fedora.vm.provision "shell", inline: "tee /etc/yum.repos.d/docker.repo <<-'EOF'
46 name=Docker Repository
47 baseurl=https://yum.dockerproject.org/repo/main/fedora/$releasever/
50 gpgkey=https://yum.dockerproject.org/gpg
53 fedora.vm.provision "shell", inline: "dnf install -y docker-engine xfsprogs"
54 fedora.vm.provision "shell", inline: "groupadd docker"
55 fedora.vm.provision "shell", inline: "usermod -a -G docker vagrant"
56 fedora.vm.provision "shell", inline: "systemctl start docker"
57 fedora.vm.provision "shell", inline: "systemctl enable docker"
60 config.vm.define "cent" do |cent|
61 cent.vm.box = "centos/7"
63 cent.vm.provision "shell", inline: "yum update -y"
65 # RVM to get recent Ruby. >=2.2.5 required by ruby_dep Gem, 2.0.0 in CentOS
66 cent.vm.provision "shell", inline: "yum install -y ruby-devel gcc-c++ zlib-devel patch redhat-rpm-config make"
67 cent.vm.provision "shell", inline: "gpg2 --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3"
68 cent.vm.provision "shell", inline: "curl -L get.rvm.io | bash -s stable"
69 cent.vm.provision "shell", inline: "echo source /etc/profile.d/rvm.sh >> /home/vagrant/.bashrc"
70 cent.vm.provision "shell", inline: "rvm install 2.4.0"
71 cent.vm.provision "shell", inline: "ruby --version"
72 # This has to be done as a login shell to get rvm fns
73 # https://rvm.io/support/faq#what-shell-login-means-bash-l
74 # http://superuser.com/questions/306530/run-remote-ssh-command-with-full-login-shell
75 cent.vm.provision "shell", inline: 'bash -lc "rvm use 2.4.0 --default"'
76 cent.vm.provision "shell", inline: "ruby --version"
77 # The docs claim this requires a login/logout, but it doesn't actually seem to be necessary
78 cent.vm.provision "shell", inline: "usermod -a -G rvm vagrant"
80 # Install required gems via Bundler
81 cent.vm.provision "shell", inline: "yum install -y rubygems"
82 cent.vm.provision "shell", inline: "gem install bundler"
83 cent.vm.provision "shell", inline: "echo export PATH=\\$PATH:/usr/local/bin >> /home/vagrant/.bashrc"
84 cent.vm.provision "shell", inline: 'su -c "cd /home/vagrant/puppet-opendaylight; bundle update" vagrant'
86 # Git is required for cloning Puppet module deps in `rake test`
87 cent.vm.provision "shell", inline: "yum install -y git"
89 # Install Docker for Docker-based Beaker tests
90 cent.vm.provision "shell", inline: "tee /etc/yum.repos.d/docker.repo <<-'EOF'
92 name=Docker Repository
93 baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/
96 gpgkey=https://yum.dockerproject.org/gpg
99 cent.vm.provision "shell", inline: "yum install -y docker-engine"
100 cent.vm.provision "shell", inline: "usermod -a -G docker vagrant"
101 cent.vm.provision "shell", inline: "systemctl start docker"
102 cent.vm.provision "shell", inline: "systemctl enable docker"