Home > Cirrus

Cirrus

Cirrus is a project mainly written in SHELL and PHP, it's free.

This Cirrus project aims to create an extensible service that connects applications to cloud computing architectures and manages the resources they consume

#############

Cirrus

README

[email protected]

#############

  1. About 1.1 Overview 1.2 Directory Structure 1.3 Cirrus.sh 1.4 Requirements

  2. Installation 2.1 Obtaining the latest source 2.2 Unpacking

  3. Configuration 3.1 CirrusVmList

  4. Help

  5. About 1.1 Overview Cirrus is intended to allow users to automatically scale a service running on a virtualization substrate. The approach is "driver" based so that various virtualization technologies can be managed and multiple applications can be monitored from a single point. The main difference between Cirrus and other projects is that it aims to monitor a service running in the cloud and provide it the resources it needs and also aims to tie systems management into the equation (dhcp, dns, patch management).

| Apache | <---- Cirrus ----> | Virtualization Manager | --"Hey, give Apache more resources"

1.2 Directory Structure
    /bin/ - Control Scripts
    /conf/ - Configuration Files
    /drivers/ - Drivers for components (virtualization, systems management, etc)
    /drivers/conf - Driver Specific Configuration
    /log/ - Log files
1.3 Cirrus.sh
    /bin/Cirrus.sh is used to add virtual machines and remove virtual machines from a private cloud.
1.4 Requirements
    The following are required
    1.4.1 Cirrus Server
        On the server which you wish to run Cirrus create a cirrus user
        `useradd cirrus`
        Make a directory to hold the Cirrus scripts. By default /usr/local/Cirrus
        `mkdir /usr/local/Cirrus`
        Change ownership to cirrus
        `chown -R cirrus:cirrus /usr/local/Cirrus`
    1.4.2 SSH keypair
        As the Cirrus user create a SSH keypair
        `ssh-keygen`
        The public key, by default /home/cirrus/.ssh/id_rsa.pub, will need to be copied to the servers you wish to connect to via the Cirrus scripts.
  1. Installation 2.1 Obtain the latest source http://github.com/jameslabocki/Cirrus 2.2 Unpack tar -xvzf Cirrus-archive.tar.gz unzip Cirrus-archive.zip

  2. Configuration 3.1 CirrusVmList The CirrusVmList is a csv file located in the global configuration directory (./conf) with the following attributes

     Service Name, Virtual Machine Name, IP Address, MAC Address, Technologies in Use
    
     For example:
    
     -- Arbitrary Service Name
     |   -- Virtual Machine Name
     |   |       -- IP Address
     |   |       |       -- MAC Address
     |   |       |       |       -- Call RHEV Driver
     |   |       |       |       |   -- Call Satellite Action
     |   |       |       |       |   |
     mrggrid,mrgexec19,172.20.128.128,00:1A:4A:14:80:CD,rhev,satellite
    
     It is important to populate this file with entries for each service you wish to scale. 
  3. Help If you need help, email me [email protected]

  4. A very simple prototype web interface has been added to under the web folder. Unfortunately variables are mostly hard coded at this time. Once the list function is implemented we can dynamically build the number of listed, or available, VMs to bring on-line from a capacity standpoint. This is more of an example of how a web front-end could be implemented. For this to be effective SSH keys must be exchanged as the apache user. This is not a very secure option and this setup should never run on a publicly facing server.