1
0
mirror of https://github.com/GNS3/gns3-server synced 2024-11-14 04:19:00 +00:00
GNS3 server
Go to file
Jeremy Grossmann 6cd136b423 Merge pull request #565 from GNS3/watch_iou
Monitor IOU NVRAM changes.
2016-06-10 22:33:56 -06:00
docs Update the doc for GNS3 2.0 2016-06-08 18:12:22 +02:00
gns3server Merge pull request #565 from GNS3/watch_iou 2016-06-10 22:33:56 -06:00
init Merge branch 'master' into unstable 2015-07-21 18:52:21 +02:00
scripts Merge branch '1.5' into 2.0 2016-05-18 11:25:41 +02:00
tests Monitor IOU nvram for change 2016-06-10 18:26:01 +02:00
utils Fixes check for NPF service and add check for NPCAP service on Windows. 2016-05-20 20:19:28 -06:00
.coveragerc Fix coveralls configuration 2015-06-18 16:33:24 +02:00
.gitattributes Keep the version.py untouched when merging 2016-05-11 10:06:21 +02:00
.gitignore Merge branch 'master' into 1.5 2016-01-20 17:10:59 +01:00
.travis.yml Merge branch 'master' into 1.5 2016-01-20 17:10:59 +01:00
AUTHORS Adjust AUTHORS. 2015-07-12 17:25:03 -06:00
CHANGELOG 1.5.0rc1 2016-06-01 20:24:48 +02:00
CONTRIBUTING.md Cleanup unbreakable space 2016-05-18 11:23:45 +02:00
dev-requirements.txt Lock py.test versions 2015-12-16 14:58:16 +01:00
gns3server.bat Made the gns3server.bat successfully start the server independent of the CWD at the time of running. It's now relative to the location of the .bat file itself. 2015-12-24 16:45:02 +02:00
LICENSE Project structure & tools (pytest, tox etc.) 2013-10-08 11:33:51 -06:00
MANIFEST.in Prepare 1.5.0 alpha 2 2016-05-10 19:14:50 +02:00
README.rst Merge pull request #379 from GNS3/docker_cleanup 2015-12-24 14:56:24 -08:00
requirements.txt Do not timeout forwarded calls 2016-06-07 11:21:47 +02:00
setup.py pywin32 is not updated on pypi. 2016-04-28 16:21:14 -06:00
tox.ini Increase test timeout to avoid random problems on travis 2016-02-24 15:51:51 +01:00

GNS3-server
===========

.. image:: https://travis-ci.org/GNS3/gns3-server.svg?branch=master
    :target: https://travis-ci.org/GNS3/gns3-server

.. image:: https://img.shields.io/pypi/v/gns3-server.svg
    :target: https://pypi.python.org/pypi/gns3-server

This is the GNS3 server repository.

The GNS3 server manages emulators such as Dynamips, VirtualBox or Qemu/KVM.
Clients like the GNS3 GUI controls the server using a HTTP REST API.

You will need the GNS3 GUI (gns3-gui repository) to control the server.

Branches
--------

master
******
master is the next stable release, you can test it in your day to day activities.
Bug fixes or small improvements pull requests go here.

1.x (1.4 for example)
********
Next major release

*Never* use this branch for production. Pull requests for major new features go here.

Linux
-----

GNS3 is perhaps packaged for your distribution:

* Gentoo: https://packages.gentoo.org/package/net-misc/gns3-server


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.

Dependencies:

- Python 3.4 or above
- aiohttp
- setuptools
- psutil
- jsonschema

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:

.. code:: bash

   cd gns3-server-master
   sudo python3 setup.py install
   gns3server

To run tests use:

.. code:: bash

   py.test -v


Run as daemon (Unix only)
**************************

You will found init sample script for various systems
inside the init directory.

Usefull options:

* --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

All the init script require the creation of a GNS3 user. You can change it to another user.

.. code:: bash

    sudo adduser gns3

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


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
    sudo systemctl start gns3

Windows
-------


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

Mac OS X
--------

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

SSL
---

If you want enable SSL support on GNS3 you can generate a self signed certificate:

.. code:: bash

    bash gns3server/cert_utils/create_cert.sh

This command will put the files in ~/.config/GNS3/ssl

After you can start the server in SSL mode with:

.. code:: bash

    python gns3server/main.py --certfile ~/.config/GNS3/ssl/server.cert --certkey ~/.config/GNS3/ssl/server.key --ssl


Or in your gns3_server.conf by adding in the Server section:

.. code:: ini
    
    [Server]
    certfile=/Users/noplay/.config/GNS3/ssl/server.cert
    certkey=/Users/noplay/.config/GNS3/ssl/server.key
    ssl=True

Running tests
*************

Just run:

.. code:: bash

    py.test -vv

If you want test coverage:

.. code:: bash

    py.test --cov-report term-missing --cov=gns3server