Skip to content

Installation Guide

Ondrej Lichtner edited this page Sep 18, 2013 · 24 revisions

This document describes a few ways of installing LNST. There are two options supported by our team at the moment. You can download the RPM or use Python's distutils to install LNST directly from the sources.

In case you would like to create a package for a different distribution, don't hesitate to contact us. We'll be happy to help you! We can also include your package in the installation options listed bellow.

LNST dependencies are:

  • python2.7 for the main application to work
  • (python-pyroute2)[https://github.com/svinota/pyroute2] required on the slave machines

Optional dependencies are:

  • gcc
  • make
  • tcpdump
  • nc (netcat)
  • iperf
  • iptables when using virtualization iptables are used on the host machine to create isolated networks These are either used by optional framework features or are required by tests modules distributed with LNST.

1. RPM for Fedora

LNST is available in Fedora repositories. There are two packages lnst-ctl and lnst-slave.

1.1 lnst-ctl

Firstly it is necessary to install lnst-ctl to the controller machine, i.e., your own computer (or possibly a dedicated machine), that will be used to command and control its slaves.

# yum install lnst-ctl

1.2 lnst-slave

In the second step, you need to install lnst-slave package to all your slave machines, i.e., virtual guests or physical machines dedicated for testing.

# yum install lnst-slave

Both packages will require installation of lnst-common, which contains things shared between controller and slave implementations. This package will be installed automatically in Fedora as a dependency of both lnst-ctl and lnst-slave.

This is basically everything you need to do. To start up the lnst-slave daemon directly you can use the following command:

# systemctl start lnst-slave.service

You can also set the daemon to launch automatically at start up by running the command:

# systemctl enable lnst-slave.service

2. Python's distutils

If you don't use Fedora you will need to install LNST directly from the sources. This method might seem a bit harder at first glance, but you will soon discover it is almost as easy as using the RPM.

2.1 Obtaining the Source Package

You can either get a snapshot directly from git (if you feel adventurous) or get a more stable release from the Downloads Section on LNST wiki.

2.2 Installation Using setup.py

After extracting the sources you will find a file called setup.py in the root directory of LNST source tree. This is the installation script you can use to install LNST.

$ su
# cd lnst-0.1/
# ./setup.py install

This will install code for both lnst-ctl and lnst-slave. Installing them separately using distutils is currently unsupported. You need to do this for all the machines involved, i.e., both the controller and the slaves.

lnst-slave service file will not be installed automatically. Init systems vary through distributions which led to the decision to exclude installation of service files or init scripts from distutils to maintain greater portability. A generic systemd service file (used for Fedora) is available in the source tree in dist/ directory. The following series of commands will install the service file and start the service:

# install -D -m 0644 dist/lnst-slave.service /lib/systemd/system/lnst-slave.service
# systemctl daemon-reload
# systemctl start lnst-slave.service

If your distribution does not use systemd, please refer to the documentation of your respective build system.

3. After Installation

Here are some tips for things you might be interested in after the installation.

3.1 Man pages

Both commands lnst-ctl and lnst-slave have a man page:

$ man 2 lnst-ctl
$ man 2 lnst-slave

3.2 Machine Pool Configuration

Despite the fact you can reference your test machines (slaves) directly from lnst-recipes, it is recommended to setup a pool of test machines at the controller. This is a network of dedicated test machines (physical or virtual) that will be used for testing. We STRONGLY recommend setting up pool and reference machines by templates as much as possible. Only this will make your recipes portable to other sites with different pool setups (provided they match the requirements of your recipe)!

More information about machine pools can be found in the following article: Setup your machine pool