Web Interfaces

Ganeti Web Manager and others

  • Guido Trotter <ultrotter@google.com>
  • Helga Velroyen <helgav@google.com>

Latest version of these slides

Web Interfaces

  • Ganeti web manager
    • Overview
    • Installation
    • Usage
  • Synnefo and okeanos
    • Overview
    • Quick demo
  • ganetimgr web manager
    • Overview

Ganeti Web Manager Overview

  • Web-based management system
  • Easier management: no commands to remember
  • Delegate authority: enables "self-service management" for users
  • A project of OSU Open Source Lab
    • Written in Python using the Django web framework
    • GPLv2

Users and Groups

  • User/Group model (independent, not tied to LDAP, etc.)
  • A user can be in any number of groups
  • User/Groups have fine-grained settings on what they can/can't do
  • Admin Permissions
    • Control what a user/group can do on each cluster and instance
  • Quota System
    • Restrict resource usage by user or group

Cluster Permissions

admin
  • Grants full access to the cluster.
  • Includes ability to set permissions and quotas, and full access to all virtual machines.
create_vmGrants ability to create virtual machines on the cluster.
tagsGrants ability to set tags on the cluster.
replace_disksAbility to replace disks of VMs on the cluster.
migrateCan migrate a VM to another node
exportCan export a virtual machine

Instance Permissions

adminFull control
modifyAllows user to modify VM's settings, including reinstallation
removePermission to delete this VM
powerPermission to shutdown this VM
tagsCan set tags for this VM

Quotas

  • Restricts resources used by users and groups
    • RAM
    • disk space
    • vCPUs
  • Default quota for each cluster and user
  • No quota == unlimited.

RBAC in a nutshell

  • Assigning individuals access is nice, but gets messy fast.
  • Use "role-based access control" (RBAC)
  • Clusters should be owned by a group.
  • Add people to the groups they should be able to administer.
  • Instances should be owned by groups or a single user
    • don't create a group if only one person will ever be in it

Ganeti Web Manager Dashboard

webmanager/01_dashboard.png

Cluster status

webmanager/02_clusterstatus.png

Create an instance

webmgr/vm-add.png

Instance being created

webmgr/vm-create-output.png

Connect to console

webmgr/vm-console.png

Ganeti Jobs

webmanager/08_ganetijobs.png

Behind the scenes

  • Permissions are recorded by setting Ganeti tags on clusters and instances.
  • Tags are cached in a local database for speed

Format:

GANETI_WEB_MANAGER:<permission>:[G|U]:<user_id>

Examples:

Admin permission for User with id 2:

GANETI_WEB_MANAGER:admin:U:2

Start permission for Group with id 4:

GANETI_WEB_MANAGER:start:G:4

Synnefo

Synnefo Components

  • Identity Management (codename: astakos)
  • Object Storage Service (codename: pithos+)
  • Compute Service (codename: cyclades)
  • Network Service (part of Cyclades)
  • Image Registry (codename: plankton)
  • Billing Service (codename: aquarium)
  • Volume Storage Service (codename: archipelago)

Machines view

okeanos1.png

Networks view

okeanos2.png

Quick okeanos demo

Time to see it work!

ganetimgr web manager

Thank You!

Questions?

Survey at https://www.usenix.org/lisa13/training/survey

 

 

  • © 2010 - 2013 Google
  • Use under GPLv2+ or CC-by-SA
  • Some images borrowed / modified from Lance Albertson and Iustin Pop
  • Some slides were borrowed / modified from Tom Limoncelli
  • cc-by-sa.png