If you are not sure, you probably want to install the stable release. Follow this guide.
You can get the development release cloning the sources.
Don’t do this if you install a packaged release.
$ git clone https://github.com/UPC/ravada.git
Possible development scenarios where to deploy¶
Obviously if you can deploy on a physical machine will be better but it is not always possible. In that case you can test on a nested KVM, that is, a KVM inside another KVM.
KVM requires VT-X / AMD-V.
$ sudo kvm-ok
Do not consider VirtualBox in this situation, because it doesn’t pass VT-X / AMD-V to the guest operating system.
Ubuntu required packages¶
Check this file at the line depends for a list of required packages. You must install it running:
$ sudo apt-get install perl libmojolicious-perl mysql-common libauthen-passphrase-perl libdbd-mysql-perl libdbi-perl libdbix-connector-perl libipc-run3-perl libnet-ldap-perl libproc-pid-file-perl libvirt-bin libsys-virt-perl libxml-libxml-perl libconfig-yaml-perl libmoose-perl libjson-xs-perl qemu-utils perlmagick libmoosex-types-netaddr-ip-perl libsys-statistics-linux-perl libio-interface-perl libiptables-chainmgr-perl libnet-dns-perl wget liblocale-maketext-lexicon-perl libmojolicious-plugin-i18n-perl libdbd-sqlite3-perl debconf adduser libdigest-sha-perl qemu-kvm
In addition you need one package that it still may not be in Ubuntu repository, download from our own server at the UPC ETSETB repository and install it this way:
$ wget http://infoteleco.upc.edu/img/debian/libmojolicious-plugin-renderfile-perl_0.10-1_all.deb $ sudo dpkg -i libmojolicious-plugin-renderfile-perl_0.10-1_all.deb
MySQL server is required to run ravada. You can use one from another server you already have or you can install it in the same host as Ravada.
Create a database named “ravada”. in this stage the system wants you to identify a password for your sql.
$ mysqladmin -u root -p create ravada
Grant all permissions to your user:
$ mysql -u root -p mysql> grant all on ravada.* to rvd_user@'localhost' identified by 'choose a password'; exit
Create a config file at
/etc/ravada.conf with the
password you just declared at the previous step.
db: user: rvd_user password: *****
When developping Ravada, your username must be able to read the configuration file. Protect the config file from others and make it yours.
$ sudo chmod o-rx /etc/ravada.conf $ sudo chown your_username /etc/ravada.conf
Ravada web user¶
Add a new user for the ravada web. Use
rvd_back to create it.
$ cd ravada $ sudo ./bin/rvd_back.pl --add-user user.name
The server must be able to send DHCP packets to its own virtual interface.
KVM should be using a virtual interface for the NAT domnains. Look what is the address range and add it to your iptables configuration.
First we try to find out what is the new internal network:
$ sudo route -n ... 192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
So it is 192.168.122.0 , netmask 24. Add it to your iptables configuration:
-A INPUT -s 192.168.122.0/24 -p udp --dport 67:68 --sport 67:68 -j ACCEPT
The client must have a spice viewer such as virt-viewer. There is a package for linux and it can also be downloaded for windows.
Ravada has two daemons that must run on the production server:
rvd_back: must run as root and manages the virtual machines
rvd_front: is the web frontend that sends requests to the backend
Run each one of these commands in a separate terminal
$ morbo ./rvd_front.pl $ sudo ./bin/rvd_back.pl
Now you must be able to reach ravada at the location http://your.ip:3000/