Git Product home page Git Product logo

ganeti-control-center's Introduction

GANETI CONTROL CENTER

What is this?

GCC is a frontend to manage ganeti clusters. Essentially, it is a web application based on Slim/Twig, that wraps around a PHP class ganetiClient, which in turn connects to a cluster's RAPI daemon. The class could also be used in other projects/scripts. As of now, GCC does not store any data on its own. However, you need a TFTP server running on the same machine to use the 'preseed feature' (which starts an instance and creates a special tftp/pxe boot configuration for this host).

Who should use this and who should not?

GCC is tightly build around existing infrastructure, therefore it makes certain assumptions or at least works best in this environment:

  • Hypervisor: KVM
  • Disk Templates: DRBD
  • Instances: independent virtual machines with partition tables, a bootloader etc. (no deboostrap, no integration with ganeti whatsoever)
  • Network: the nodes are connected to multiple instance VLANs, each with its own bridge interface namend br<VLAN on the node - instance interfaces are connected to these bridges
  • Remote Console: Spice

Features

  • supports multiple ganeti clusters
  • list all instances
  • show instance details
  • manage instances (create, start, shutdown, migrate)
  • spice console integration (tested only on linux)
  • list cluster nodes/groups
  • list/manipulate cluster settings
  • list jobs
  • show cluster statistics

Ganeti Setup

To enable the RAPI daemon on a Debian based system, please update your /etc/default/ganeti file to contain the following line:

RAPI_ARGS="--require-authentication"

You also need to create a user/password pair, which is well covered in the official RAPI Documentation.

The RAPI daemon does only run the master node - if your cluster master IP is reachable you can point GCC to this address. However, if your cluster uses a separate network for cluster communication the master's IP address might not be reachable from the outside. As of now, the only possible solution to this is to specify the current master in the GCC configuration and update it, when the master changes. In the future, GCC might figure out the available cluster nodes itself (once it has a working connection) and switch to a new master automagically.

Dependencies

  • apache + mod-rewrite
  • php5
  • php5-curl
  • TFTP Server

GCC Setup

  • Install dependencies
  • this repository
  • rename config/config.inc.php.dist to config/config.inc.php and edit
  • the webserver needs write access to the folder /var/lib/tftpboot/pxelinux.cfg
  • point your webserver's root to ganeti-control-center/public
  • configure HTTPS + LDAP auth in your webserver

missing features / ideas / TODO

  • destructive actions (e.g. instance removal)
  • store all cluster nodes locally and remember the current master - switch automatically if it becomes unreachable
  • DHCP integration: allocate an IP address for a new instance or at least figure out which IP address has been assigned by the DHCP server
  • DNS integration: create DNS records via nsupdate?

Screenshots

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.