The University of California, San Diego
UCSD

Usher IP Magagement Plugin

IP address management for Usher VMs. This plugin allows Usher managers to use named IP address ranges (defined in a PostgreSQL database) for IP address assignment to VMs. When starting a VM, an address range can be specified by name. Access control is provided for each range so that only authorized users can assign addresses from that range. In addition, a VLAN field exists for passing to vm startup scripts to correctly initialize virtual interfaces. Our setup at UCSD uses many address ranges on multiple VLANs.

Requirements

  • A server running PostgreSQL (>=8.0) (Note: this can run anywhere, not just on your Usher controller)
  • psycopg2 (>=2.0.5.1) installed on your Usher controller node

The Utilities section below contains information about setting up your PostgreSQL database. So, don't worry about being a PostgreSQL expert.

Download

Installation

Download the uipmgr package onto the machine running your Usher controller and run:

$ tar xvzf uipmgr-latest.tgz
$ cd uipmgr-revXXX

Copy the uipmgr.py file found there to your Usher installations 'plugins' directory or another directory specified by the controller's configuration file 'plugin_dir' variable.

See the Utilities section below for information on setting up the PostgreSQL database.

Configuration

Valid options along with their default values are listed below.

  • server: Name of the SQL server. Default = None
  • db_name: Database name. Default = None
  • mgrname: Database manager username. Default = None
  • mgrpw: Database manager password. Default = None
  • dfltrange: Default IP range name to use when not specified with start command. Default = domU

Add these options to an [[uipmgr]] subsection of the [plugins] section of the controller's configuration file. This plugin should be registered for the following events: ctrl_start, start_request, start, start_failure, register, unregister, and state_change.

Below is a sample [[uipmgr]] subsection. Start by cutting and pasting this into the [plugins] subsection of your controller's configuration file and editing for your environment.

########################
[[uipmgr]]
########################

[[[__allsecs__]]]
server = usher.mydomain.net
db_name = usher
mgrname = usher
mgrpw = secret

[[[ctrl_start]]]

[[[start_request]]]
order = 99

[[[start]]]

[[[start_failure]]]

[[[register]]]

[[[unregister]]]

[[[state_change]]]

See the Configuration Files section on the Documentation page for additional details on writing Usher configuration files.

Utilities

The Usher IP Manager plugin ships with a few utility scripts and sample configuration files in its /utils directory. Below are brief descriptions of the contents of this directory:

  • README: Directions for setting up your PostgreSQL database
  • initialize.sql: PostgreSQL script for initializing your database
  • pg_hba.conf.sample: A sample PostgreSQL client authentication configuration file
  • usher-ipmgr.sql: PostgreSQL script for creating your database, tables, functions, and triggers

An example of installing this plugin and setting up the PostgreSQL database can be found on the Experiences page.


Last Updated: 2007-12-22 by mmcnett
Report problems to: Marvin McNett