Pin Coala to <0.11 to avoid bug
[integration/packaging/puppet-opendaylight.git] / Vagrantfile
1 # -*- mode: ruby -*-
2 # vi: set ft=ruby :
3
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
10
11   # We run out of RAM once ODL starts with default 500MB
12   config.vm.provider :libvirt do |libvirt|
13     libvirt.memory = 4096
14     libvirt.cpus = 2
15   end
16
17   # We run out of RAM once ODL starts with default 500MB
18   config.vm.provider :virtualbox do |virtualbox|
19     virtualbox.memory = 4096
20     virtualbox.cpus = 2
21   end
22
23   config.vm.define "fedora" do |fedora|
24     fedora.vm.box = "fedora/25-cloud-base"
25
26     fedora.vm.provision "shell", inline: "dnf update -y"
27
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 install" vagrant'
34     fedora.vm.provision "shell", inline: 'su -c "cd /home/vagrant/puppet-opendaylight; bundle update" vagrant'
35
36     # Install tox, used for managing tests
37     fedora.vm.provision "shell", inline: "dnf install -y python3-pip"
38     fedora.vm.provision "shell", inline: "pip3 install pip --upgrade"
39     fedora.vm.provision "shell", inline: "pip3 install tox"
40
41     # Git is required for cloning Puppet module deps in `rake test`
42     fedora.vm.provision "shell", inline: "dnf install -y git"
43
44     # Install Docker for Docker-based Beaker tests
45     fedora.vm.provision "shell", inline: "tee /etc/yum.repos.d/docker.repo <<-'EOF'
46 [dockerrepo]
47 name=Docker Repository
48 baseurl=https://yum.dockerproject.org/repo/main/fedora/$releasever/
49 enabled=1
50 gpgcheck=1
51 gpgkey=https://yum.dockerproject.org/gpg
52 EOF
53 "
54     fedora.vm.provision "shell", inline: "dnf install -y docker-engine xfsprogs"
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"
58   end
59
60   config.vm.define "cent" do |cent|
61     cent.vm.box = "centos/7"
62
63     cent.vm.provision "shell", inline: "yum update -y"
64
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
78     # Install required gems via Bundler
79     cent.vm.provision "shell", inline: "yum install -y rubygems"
80     cent.vm.provision "shell", inline: "gem install bundler"
81     cent.vm.provision "shell", inline: "echo export PATH=\\$PATH:/usr/local/bin >> /home/vagrant/.bashrc"
82     cent.vm.provision "shell", inline: 'su -c "cd /home/vagrant/puppet-opendaylight; bundle install" vagrant'
83     cent.vm.provision "shell", inline: 'su -c "cd /home/vagrant/puppet-opendaylight; bundle update" vagrant'
84
85     # Git is required for cloning Puppet module deps in `rake test`
86     cent.vm.provision "shell", inline: "yum install -y git"
87
88     # Install Docker for Docker-based Beaker tests
89     cent.vm.provision "shell", inline: "tee /etc/yum.repos.d/docker.repo <<-'EOF'
90 [dockerrepo]
91 name=Docker Repository
92 baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/
93 enabled=1
94 gpgcheck=1
95 gpgkey=https://yum.dockerproject.org/gpg
96 EOF
97 "
98     cent.vm.provision "shell", inline: "yum install -y docker-engine"
99     cent.vm.provision "shell", inline: "usermod -a -G docker vagrant"
100     cent.vm.provision "shell", inline: "systemctl start docker"
101     cent.vm.provision "shell", inline: "systemctl enable docker"
102   end
103 end