| # -*- mode: ruby -*- |
| # vi: set ft=ruby : |
| |
| $tools = <<SCRIPT |
| zypper addrepo --no-gpgcheck https://download.opensuse.org/repositories/utilities/openSUSE_Leap_42.3/utilities.repo |
| zypper addrepo --no-gpgcheck https://download.opensuse.org/repositories/devel:languages:nodejs/openSUSE_Leap_42.3/devel:languages:nodejs.repo |
| zypper refresh |
| zypper update -y |
| zypper install -y llvm-clang git cmake |
| zypper install -y pcre-devel python3-devel swig |
| zypper install -y openssl libopenssl-devel libssh-devel |
| zypper install -y libffi-devel npm8 python3-pip python3-Flask |
| zypper install -y protobuf-c libev-devel |
| SCRIPT |
| |
| $libyang = <<SCRIPT |
| rm -rf libyang |
| git clone -b devel https://github.com/CESNET/libyang.git |
| cd libyang; mkdir build; cd build |
| CC=clang cmake -DGEN_LANGUAGE_BINDINGS=ON .. && make && make install |
| cd ../.. |
| ldconfig |
| SCRIPT |
| |
| $libnetconf2 = <<SCRIPT |
| rm -rf libnetconf2 |
| git clone -b devel https://github.com/CESNET/libnetconf2.git |
| cd libnetconf2; mkdir build; cd build |
| CC=clang cmake -DENABLE_PYTHON=ON .. && make && make install |
| cd ../.. |
| ldconfig |
| SCRIPT |
| |
| $redblack = <<SCRIPT |
| rm -rf libredblack |
| git clone https://github.com/sysrepo/libredblack.git |
| cd libredblack; ./configure && make && make install |
| cd .. |
| ldconfig |
| SCRIPT |
| |
| $sysrepo = <<SCRIPT |
| rm -rf sysrepo |
| git clone -b devel https://github.com/sysrepo/sysrepo.git |
| cd sysrepo; mkdir build; cd build |
| CC=clang cmake -DGEN_LANGUAGE_BINDINGS=OFF .. && make && make install |
| cd ../.. |
| ldconfig |
| SCRIPT |
| |
| $netopeer = <<SCRIPT |
| rm -rf Netopeer2 |
| git clone -b devel-server https://github.com/CESNET/Netopeer2.git |
| cd Netopeer2/keystored; mkdir build; cd build |
| cmake .. && make && make install |
| cd ../../server; mkdir build; cd build |
| CC=clang cmake .. && make && make install |
| cd ../../.. |
| chown -R vagrant:vagrant ./sysrepo/build/repository |
| SCRIPT |
| |
| $liberoutergui = <<SCRIPT |
| rm -rf liberouter-gui |
| git clone -b devel https://github.com/CESNET/liberouter-gui.git |
| ln -s /home/vagrant/Netopeer2GUI liberouter-gui/modules/netopeer |
| cd liberouter-gui |
| cp -f modules/netopeer/app.config.json modules/ |
| python3 ./bootstrap.py |
| pip3 install --upgrade pip |
| pip3 install -r backend/requirements.txt |
| cd frontend |
| npm install --unsafe-perm -g @angular/cli |
| npm install --unsafe-perm |
| cd ../.. |
| SCRIPT |
| |
| $backend = <<SCRIPT |
| cd liberouter-gui |
| python3 backend > backend.log 2>&1 & |
| cd .. |
| SCRIPT |
| |
| $frontend = <<SCRIPT |
| cd liberouter-gui/frontend |
| /usr/local/bin/ng serve --preserve-symlinks --host 0.0.0.0 --proxy proxy.json > ../frontend.log 2>&1 & |
| cd ../.. |
| SCRIPT |
| |
| $netconf = <<SCRIPT |
| /usr/local/bin/sysrepod -d > sysrepod.log 2>&1 & |
| /home/vagrant/sysrepo/build/examples/application_example turing-machine > turing-machine.log 2>&1 & |
| /usr/local/bin/netopeer2-server -d > netopeer2.log 2>&1 & |
| SCRIPT |
| |
| # uncomment the following line for vagrant < 2.0.0 |
| # Vagrant::DEFAULT_SERVER_URL.replace('https://vagrantcloud.com') |
| Vagrant.configure("2") do |config| |
| config.vm.provider :virtualbox do |vb| |
| vb.customize ["modifyvm", :id, "--memory", "2048"] |
| vb.customize ["modifyvm", :id, "--cpus", "2"] |
| vb.customize ["modifyvm", :id, "--hwvirtex", "on"] |
| vb.customize ["modifyvm", :id, "--audio", "none"] |
| vb.customize ["modifyvm", :id, "--nictype1", "virtio"] |
| end |
| |
| config.vm.define "Netopeer2GUI" do |gui| |
| gui.vm.synced_folder "../../", "/home/vagrant/Netopeer2GUI", create: true |
| gui.vm.box = "opensuse/openSUSE-42.3-x86_64" |
| gui.vm.network "forwarded_port", host: "4200", guest: "4200", auto_correct: true |
| gui.vm.network "forwarded_port", host: "8830", host_ip: "127.0.0.1", guest: "830", auto_correct: true |
| gui.ssh.shell = "sh" |
| |
| gui.vm.provision :shell, inline: $tools |
| gui.vm.provision :shell, inline: $libyang |
| gui.vm.provision :shell, inline: $libnetconf2 |
| gui.vm.provision :shell, inline: $redblack |
| gui.vm.provision :shell, inline: $sysrepo |
| gui.vm.provision :shell, inline: $netopeer |
| gui.vm.provision :shell, inline: $liberoutergui |
| gui.vm.provision :shell, inline: $netconf, run: "always" |
| gui.vm.provision :shell, inline: $backend, run: "always" |
| gui.vm.provision :shell, inline: $frontend, run: "always" |
| end |
| end |