Skip to content

jameslabocki/Cirrus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

#############
# Cirrus
# README
# jlabocki@redhat.com
#############

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


1. 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.
		

2. 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`

3. 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. 

4. Help
	If you need help, email me <jlabocki@redhat.com>

5. 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.
	

About

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

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published