-
Notifications
You must be signed in to change notification settings - Fork 33
Installation Guide
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.
LNST is available in Fedora repositories. There are two packages lnst-ctl
and lnst-slave
.
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
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
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.
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.
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.
Here are some tips for things you might be interested in after the installation.
Both commands lnst-ctl
and lnst-slave
have a man page:
$ man 2 lnst-ctl
$ man 2 lnst-slave
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