clownix / cloonix

Virtual network creation

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

==============================================================================
                               v40-00
==============================================================================
                               GENERAL
==============================================================================
Cloonix is an AGPLv3 software that constitute a tool to create networks of
kvm virtual machines or crun containers. It provides a graphical interactive
canvas showing the topology for your network, cloonix is a virtualisation
hypervisor.

The network connecting the virtual machines and containers is created through
the use of the openvswitch software running inside a net namespace so that
your host is isolated from cloonix. That way, "ip link" on your host
shows clean results. Do "ip netns" to see cloonix namespaces.
If you wish to see the cloonix bridges, do:
"sudo ip netns exec <namespace_name> ip link".

Building of the binaries is done on a debian trixie, all the necessary files
and libraries are collected and put into an autonomous bundle, this makes
the bundle self-contained. No added files or packages are necessary.

See clownix.net for a documentation.
http://clownix.net/doc_stored/build-40-00/html/index.html doc.

NOTE: qemu-guest-agent also called qemu-ga has to be installed inside the kvm
      guests virtual machines to have the pseudo-ssh and pseudo-scp cloonix api.
------------------------------------------------------------------------------

==============================================================================
                          INSTALLATION AND USE 
==============================================================================

        ======================================
        1) Download software and installation:
        ======================================

wget http://clownix.net/downloads/cloonix-40/cloonix-bundle-40-00-amd64.tar.gz
tar xvf cloonix-bundle-40-00-amd64.tar.gz
cd cloonix-bundle-40-00-amd64
sudo ./install_cloonix

(To uninstall:   rm -f /usr/bin/cloonix_*
                 rm -rf /usr/libexec/cloonix
                 rm -rf /var/lib/cloonix)


        ==========================================
        2) Download virtual machine and container:
        ==========================================

mkdir -p /var/lib/cloonix/bulk
cd /var/lib/cloonix/bulk
wget http://clownix.net/downloads/cloonix-40/bulk/openwrt.qcow2.gz
gunzip bookworm.qcow2.gz
wget http://clownix.net/downloads/cloonix-40/bulk/zipbasic.zip


        =============================
        3) Download demo script file:
        =============================

cd ${HOME}
wget http://clownix.net/downloads/cloonix-40/demo/ping_demo.sh


        ===============
        4) Use cloonix:
        ===============

On the gui, a double-click on the biggest blue machine gives a shell,
a double-click on the green interface gives a wireshark spy,
a right-click on the blue machine gives a spice desktop.

On the gui, a double-click on the smallest blue machine gives a shell,
a double-click on the green interface gives a wireshark spy,
a right-click on the container gives one remote console.

==============================================================================


==============================================================================
                     ROOTLESS SELF EXTRACTING CLOONIX
==============================================================================
To test cloonix without ever having the root password for your host machine,
you have to use the self_extracting_cloonix.sh.

This script creates the self_extracting_rootfs_dir directory which countains
a root file-system equiped with the cloonix software, the openwrt qcow2
virtual machine, the zipbasic container, the frr container, demo scripts
for the cloonix run and a self-contained crun executable.

        1) Download:
        ============
wget http://clownix.net/downloads/cloonix-40/self_extracting_cloonix.sh

        2) Extract:
        ===========
./self_extracting_cloonix.sh

        3) Change directory:
        ====================
cd self_extracting_rootfs_dir

        4) Enter the cloonix container:
        ===============================
./crun_container_startup.sh

        5) Launch demo:
        ===============
./ping_demo.sh


NOTE FOR KVM USE
================:
     For the cloonix to be able to use the openwrt qcow2, devices /dev/kvm,
     /dev/vhost-net and /dev/net/tun, must have read/write access. For this
     some commands must be done as root to provide read/write access:

             sudo setfacl -m u:${USER}:rw /dev/kvm
             sudo setfacl -m u:${USER}:rw /dev/vhost-net
             sudo setfacl -m u:${USER}:rw /dev/net/tun
     or:
             sudo chmod 666 /dev/kvm
             sudo chmod 666 /dev/vhost-net
             sudo chmod 666 /dev/net/tun

-----------------------------------------------------------------------------

==============================================================================
                            DISTANT WEB GUI:
==============================================================================
Default value for the web gui is off, to set it on:

cloonix_cli nemo cnf web on

Xvfb creates a virtual framebuffer on a defined DISPLAY,
this display can be seen through its X11 socket at /tmp/.X11-unix/.
Then on this display, wm2 is launched, it is a very small windows manager.
When the wm2 representation gets to be visible in your browser,
click on the main mouse button, and choose the only choice which is "cloonix".
x11vnx carries the equivalent of a desktop to the vnc server and
finaly websockify puts this desktop inside a web browser.

For nemo the http link for the browser is::

   http://<ip_of_server>:54521/vnc_lite.html

Note that the 54521 port can be changed in::

  /usr/libexec/cloonix/common/etc/cloonix.cfg

-----------------------------------------------------------------------------

About

Virtual network creation


Languages

Language:C 94.4%Language:Shell 4.5%Language:Makefile 0.7%Language:C++ 0.3%Language:Python 0.0%