-
Notifications
You must be signed in to change notification settings - Fork 1
/
README
80 lines (65 loc) · 3.09 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#############
# Cirrus
# README
#############
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 <[email protected]>
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.