Vnx-install-fedora23

From VNX
Revision as of 18:56, 14 February 2016 by David (talk | contribs) (Additional install steps for Dynamips support)
Jump to: navigation, search

VNX Installation over Fedora

Follow this steps to install VNX over Fedora 23:

  • Install packages:
  • dnf install -y qemu-kvm libvirt virt-manager virt-viewer perl-XML-LibXML
    dnf install -y perl-Sys-Virt perl-NetAddr-IP perl-XML-LibXML perl-XML-Tidy 
    dnf install -y perl-AppConfig perl-Readonly perl-Net-Pcap perl-Net-IPv6Addr
    dnf install -y perl-Net-Telnet perl-IO-Pty-Easy  perl-Exception-Class pv
    dnf install -y wmctrl uml_utilities perl-DBI libxml2-devel perl-Net-IP 
    dnf install -y roxterm xterm graphviz tree curl w3m  picocom expect pv
    dnf install -y tunctl screen wget lxc lxc-extra lxc-templates openvswitch
    
  • Tune libvirt configuration to work with VNX. In particular, edit /etc/libvirt/qemu.conf file and set the following parameters:
  • security_driver = "none"
    user = "root"
    group = "root"
    cgroup_device_acl = [
       "/dev/null", "/dev/full", "/dev/zero",
       "/dev/random", "/dev/urandom",
       "/dev/ptmx", "/dev/kvm", "/dev/kqemu",
       "/dev/rtc", "/dev/hpet", "/dev/vfio/vfio", "/dev/net/tun"
    ]
    

    (you have to add "/dev/net/tun") and restart libvirtd for the changes to take effect:

    sudo systemctl restart libvirtd
    
  • Check that libvirt is running correctly, for example, executing:
  • sudo virsh list
    sudo virsh capabilities
    
  • Install VNX:
  • mkdir /tmp/vnx-update
    cd /tmp/vnx-update
    wget -N http://vnx.dit.upm.es/vnx/vnx-latest.tgz
    tar xfvz vnx-latest.tgz
    cd vnx-*
    ./install_vnx
    
  • Create the VNX config file (/etc/vnx.conf). You just can move the sample config file:
  • mv /usr/share/vnx/etc/vnx.conf.sample /etc/vnx.conf
    
  • Edit /etc/vnx.conf file and change the following parameters:
  • [general]
    console_term=roxterm   # gnome-terminal does not support --title option
    
    [libvirt]
    one_pass_autoconf=yes
    
    [lxc]
    union_type = 'overlayfs'
    overlayfs_workdir_option = 'yes'
    
  • Download root file systems from http://idefix.dit.upm.es/download/vnx/filesystems and install them following these instructions

Additional install steps for Dynamips support

  • Install dynamips from GNS-3 sources:
  • yum install cmake elfutils-libelf-devel libuuid-devel libpcap-devel
    git clone https://github.com/GNS3/dynamips
    cd dynamips
    mkdir build
    cd build
    cmake
    make
    sudo make install
    
  • Create systemd startup files:
  • /usr/lib/systemd/scripts/dynamips.sh

    #! /bin/sh
    # -*- shell-script -*-
    
    # Script to start dynamips on Fedora 
    # Adapted for VNX (vnx.dit.upm.es) by David Fernandez (david at dit.upm.es) from http://wiki.call-cc.org/spiffy-systemd-scripts
    
    dynamips=/usr/local/bin/dynamips
    logfile=/var/log/dynamips.log
    dynamips_port=7200
    
    DATE_FORMAT="+%Y-%m-%d %H:%M:%S"
    
    LOG_DIR="/var/log/"
    
    start() {
     if [ ! -d "$LOG_DIR" ]; then
          echo "Log directory \"$LOG_DIR\" does not exist."
          exit 1
        fi
    
        echo "Starting dynamips..."
        echo "start: " `date "$DATE_FORMAT"` >> $logfile
        (/usr/local/bin/dynamips -H $dynamips_port -l $logfile &)  </dev/null &> $logfile
    }
    
    stop() {
        echo "Stopping dynamips..."
        echo "stop: " `date "$DATE_FORMAT"` >> $logfile
        pids=`ps ax | grep "$dynamips" | grep -v grep | awk '{print $1}'`
        if [ -z "$pids" ] ; then
           echo "dynamips is not running"
        else
            for pid in $pids; do
                echo "killing " $pid
                kill $pid
            done
        fi
    }
    case "$1" in
        start)
            start
            ;;
        stop)
            stop
            ;;
        restart)
            stop
            sleep 1
            start
            ;;
        *) exit 1
    esac