2013-10-04 23:45:15 +00:00
|
|
|
GNS3-server
|
|
|
|
===========
|
|
|
|
|
2015-02-05 09:36:39 +00:00
|
|
|
.. image:: https://travis-ci.org/GNS3/gns3-server.svg?branch=master
|
|
|
|
:target: https://travis-ci.org/GNS3/gns3-server
|
|
|
|
|
2015-02-05 09:49:27 +00:00
|
|
|
.. image:: https://img.shields.io/pypi/v/gns3-server.svg
|
|
|
|
:target: https://pypi.python.org/pypi/gns3-server
|
|
|
|
|
2014-10-27 21:58:13 +00:00
|
|
|
This is the GNS3 server repository.
|
2014-03-30 19:04:38 +00:00
|
|
|
|
|
|
|
The GNS3 server manages emulators such as Dynamips, VirtualBox or Qemu/KVM.
|
2015-01-15 23:50:36 +00:00
|
|
|
Clients like the GNS3 GUI controls the server using a HTTP REST API.
|
2014-03-30 19:04:38 +00:00
|
|
|
|
2014-10-27 21:58:13 +00:00
|
|
|
You will need the GNS3 GUI (gns3-gui repository) to control the server.
|
2014-03-30 19:04:38 +00:00
|
|
|
|
2015-03-27 09:32:29 +00:00
|
|
|
Branches
|
|
|
|
--------
|
|
|
|
|
|
|
|
master
|
|
|
|
******
|
|
|
|
master is the next stable release, you can test it in your day to day activities.
|
2015-05-08 22:33:06 +00:00
|
|
|
Bug fixes or small improvements pull requests go here.
|
2015-03-27 09:32:29 +00:00
|
|
|
|
2015-12-21 10:35:29 +00:00
|
|
|
1.x (1.4 for example)
|
2015-03-27 09:32:29 +00:00
|
|
|
********
|
2015-12-21 10:35:29 +00:00
|
|
|
Next major release
|
|
|
|
|
2015-05-08 22:33:06 +00:00
|
|
|
*Never* use this branch for production. Pull requests for major new features go here.
|
2015-03-27 09:32:29 +00:00
|
|
|
|
2015-04-22 15:13:39 +00:00
|
|
|
Linux
|
|
|
|
-----
|
|
|
|
|
|
|
|
GNS3 is perhaps packaged for your distribution:
|
2015-05-08 22:33:06 +00:00
|
|
|
|
2015-04-22 15:13:39 +00:00
|
|
|
* Gentoo: https://packages.gentoo.org/package/net-misc/gns3-server
|
|
|
|
|
2015-03-27 09:32:29 +00:00
|
|
|
|
2014-10-27 21:58:13 +00:00
|
|
|
Linux (Debian based)
|
|
|
|
--------------------
|
|
|
|
|
|
|
|
The following instructions have been tested with Ubuntu and Mint.
|
|
|
|
You must be connected to the Internet in order to install the dependencies.
|
2014-03-30 19:04:38 +00:00
|
|
|
|
|
|
|
Dependencies:
|
|
|
|
|
2015-06-09 15:29:01 +00:00
|
|
|
- Python 3.4 or above
|
2015-01-22 21:39:20 +00:00
|
|
|
- aiohttp
|
|
|
|
- setuptools
|
2015-11-08 20:34:27 +00:00
|
|
|
- psutil
|
2015-01-22 21:39:20 +00:00
|
|
|
- jsonschema
|
2014-10-27 21:58:13 +00:00
|
|
|
|
|
|
|
The following commands will install some of these dependencies:
|
|
|
|
|
|
|
|
.. code:: bash
|
|
|
|
|
|
|
|
sudo apt-get install python3-setuptools
|
|
|
|
|
|
|
|
Finally these commands will install the server as well as the rest of the dependencies:
|
2014-03-30 19:04:38 +00:00
|
|
|
|
2014-04-02 16:33:35 +00:00
|
|
|
.. code:: bash
|
|
|
|
|
|
|
|
cd gns3-server-master
|
|
|
|
sudo python3 setup.py install
|
|
|
|
gns3server
|
2014-03-30 19:04:38 +00:00
|
|
|
|
2015-03-17 15:40:28 +00:00
|
|
|
To run tests use:
|
|
|
|
|
|
|
|
.. code:: bash
|
|
|
|
|
|
|
|
py.test -v
|
|
|
|
|
2015-04-22 15:13:39 +00:00
|
|
|
|
2017-02-13 10:39:21 +00:00
|
|
|
Docker container
|
|
|
|
****************
|
|
|
|
|
|
|
|
For development you can run the GNS3 server in a container
|
|
|
|
|
|
|
|
.. code:: bash
|
|
|
|
docker build -t gns3-server .
|
|
|
|
docker run -i --expose=8001 -p 8001:8001/tcp -t gns3-server python3 -m gns3server --local --port 8001
|
|
|
|
|
|
|
|
|
2015-04-23 09:00:21 +00:00
|
|
|
Run as daemon (Unix only)
|
|
|
|
**************************
|
2015-04-22 15:13:39 +00:00
|
|
|
|
|
|
|
You will found init sample script for various systems
|
|
|
|
inside the init directory.
|
|
|
|
|
2015-04-23 09:00:21 +00:00
|
|
|
Usefull options:
|
2015-05-08 22:33:06 +00:00
|
|
|
|
2015-04-23 09:00:21 +00:00
|
|
|
* --daemon: start process as a daemon
|
|
|
|
* --log logfile: store output in a logfile
|
|
|
|
* --pid pidfile: store the pid of the running process in a file and prevent double execution
|
|
|
|
|
2015-06-09 15:29:01 +00:00
|
|
|
All the init script require the creation of a GNS3 user. You can change it to another user.
|
|
|
|
|
|
|
|
.. code:: bash
|
|
|
|
|
|
|
|
sudo adduser gns3
|
|
|
|
|
2015-04-22 15:13:39 +00:00
|
|
|
upstart
|
|
|
|
~~~~~~~
|
|
|
|
|
|
|
|
For ubuntu < 15.04
|
|
|
|
|
|
|
|
You need to copy init/gns3.conf.upstart to /etc/init/gns3.conf
|
|
|
|
|
|
|
|
.. code:: bash
|
|
|
|
|
|
|
|
sudo chown root /etc/init/gns3.conf
|
|
|
|
sudo service gns3 start
|
|
|
|
|
|
|
|
|
2015-06-09 15:29:01 +00:00
|
|
|
systemd
|
|
|
|
~~~~~~~~
|
|
|
|
You need to copy init/gns3.service.systemd to /lib/systemd/system/gns3.service
|
|
|
|
|
|
|
|
.. code:: bash
|
|
|
|
|
|
|
|
sudo chown root /lib/systemd/system/gns3.service
|
2015-06-11 15:07:13 +00:00
|
|
|
sudo systemctl start gns3
|
2015-06-09 15:29:01 +00:00
|
|
|
|
2014-03-30 19:04:38 +00:00
|
|
|
Windows
|
|
|
|
-------
|
|
|
|
|
|
|
|
|
2015-05-08 22:33:06 +00:00
|
|
|
Please use our `all-in-one installer <https://community.gns3.com/community/software/download>`_ to install the stable build.
|
|
|
|
|
|
|
|
If you install via source you need to first install:
|
|
|
|
|
|
|
|
- Python (3.3 or above) - https://www.python.org/downloads/windows/
|
|
|
|
- Pywin32 - https://sourceforge.net/projects/pywin32/
|
|
|
|
|
|
|
|
Then you can call
|
|
|
|
|
|
|
|
.. code:: bash
|
|
|
|
|
|
|
|
python setup.py install
|
|
|
|
|
|
|
|
to install the remaining dependencies.
|
|
|
|
|
|
|
|
To run the tests, you also need to call
|
|
|
|
|
|
|
|
.. code:: bash
|
|
|
|
|
|
|
|
pip install pytest pytest-capturelog
|
|
|
|
|
|
|
|
before actually running the tests with
|
|
|
|
|
|
|
|
.. code:: bash
|
|
|
|
|
|
|
|
python setup.py test
|
|
|
|
|
|
|
|
or with
|
|
|
|
|
|
|
|
.. code:: bash
|
|
|
|
|
|
|
|
py.test -v
|
2015-04-27 13:09:42 +00:00
|
|
|
|
2014-03-30 19:04:38 +00:00
|
|
|
Mac OS X
|
|
|
|
--------
|
|
|
|
|
2014-09-27 17:56:45 +00:00
|
|
|
Please use our DMG package for a simple installation.
|
|
|
|
|
|
|
|
If you want to test the current git version or contribute to the project.
|
|
|
|
|
|
|
|
You can follow this instructions with virtualenwrapper: http://virtualenvwrapper.readthedocs.org/
|
|
|
|
and homebrew: http://brew.sh/.
|
|
|
|
|
|
|
|
.. code:: bash
|
|
|
|
|
|
|
|
brew install python3
|
|
|
|
mkvirtualenv gns3-server --python=/usr/local/bin/python3.4
|
|
|
|
python3 setup.py install
|
|
|
|
gns3server
|
|
|
|
|
2015-06-11 15:07:13 +00:00
|
|
|
SSL
|
|
|
|
---
|
|
|
|
|
|
|
|
If you want enable SSL support on GNS3 you can generate a self signed certificate:
|
|
|
|
|
|
|
|
.. code:: bash
|
|
|
|
|
2015-07-03 13:03:58 +00:00
|
|
|
bash gns3server/cert_utils/create_cert.sh
|
2015-06-11 15:07:13 +00:00
|
|
|
|
2015-07-03 13:03:58 +00:00
|
|
|
This command will put the files in ~/.config/GNS3/ssl
|
2015-06-11 15:07:13 +00:00
|
|
|
|
|
|
|
After you can start the server in SSL mode with:
|
|
|
|
|
|
|
|
.. code:: bash
|
|
|
|
|
2015-07-03 13:03:58 +00:00
|
|
|
python gns3server/main.py --certfile ~/.config/GNS3/ssl/server.cert --certkey ~/.config/GNS3/ssl/server.key --ssl
|
2015-06-11 15:07:13 +00:00
|
|
|
|
|
|
|
|
|
|
|
Or in your gns3_server.conf by adding in the Server section:
|
|
|
|
|
|
|
|
.. code:: ini
|
|
|
|
|
|
|
|
[Server]
|
2015-07-03 13:03:58 +00:00
|
|
|
certfile=/Users/noplay/.config/GNS3/ssl/server.cert
|
|
|
|
certkey=/Users/noplay/.config/GNS3/ssl/server.key
|
2015-06-11 15:07:13 +00:00
|
|
|
ssl=True
|
2015-11-03 11:39:01 +00:00
|
|
|
|
2015-10-31 20:27:10 +00:00
|
|
|
Running tests
|
|
|
|
*************
|
2014-09-27 17:56:45 +00:00
|
|
|
|
2015-10-31 20:27:10 +00:00
|
|
|
Just run:
|
|
|
|
|
|
|
|
.. code:: bash
|
|
|
|
|
|
|
|
py.test -vv
|
|
|
|
|
|
|
|
If you want test coverage:
|
|
|
|
|
|
|
|
.. code:: bash
|
|
|
|
|
2015-10-14 16:10:05 +00:00
|
|
|
py.test --cov-report term-missing --cov=gns3server
|