Genome AppliancesAppliances
Appliances in the &PRODUCT; environment are machines
that enable the &PRODUCT; tooling.
Cloud Appliance
The Cloud Appliance is used to host Xen
guests in the &PRODUCT; environment.
System RequirementsCPU1GHzMemoryThis depends on the number of cloud members you plan on hosting. We recommend 1.5G of RAM to start.System architectureA cloud appliance can be installed on either i386 or x86_64 architectures.Hardware VirtualizationWhen using Fedora as the distribution for the cloud, the machine must support hardware virtualization.StorageThis depends on how many cloud members you plan on hosting. We recommend 100G of hard drive space to start.Cloud Appliances should only be installed on a Physical Machine and not a Virtual MachineFeaturesVirtualization (Either Xen or KVM)&PRODUCT; tooling for managing the cloudGenome Appliance
The Genome Appliance is the center of development in the
&PRODUCT; environment. In a nutshell it is the
self-contained provisioning, configuration and artifact
store. For this reason Genome Appliances are
generally not considered volatile.
As all other machine types it is designed to work as
both a "baremetal" and virtual machine. The main
resource requirement that distinguishes this machine
type is disk space, which is a function of the amount of
bits imported to cobbler.
Note
There was a time when Genome
Appliances were able to be
created via genome-bootstrap
. This led to
several "chicken and the egg"
sorts of problems. For this
reason the method for
provisioning Genome Appliances was
switched to RPM.
Minimum System RequirementsCPU1GHzMemory512M RAMSystem architecture
A Genome Appliance can be installed on either i386 or x86_64 architectures.
Storage
This depends on how many distros you plan on hosting in cobbler. We recommend 50G of hard drive space to start.
Features
Cobbler for all RPM/provisioning
A Puppetmaster for all configuration
Bare git repos
for all content
located under
/pub/git
GitWeb running
on
http://[hostname]/git/gitweb.cgi
Genomed
running
http://[hostname]:8106/nodes.html
Genome Appliance cloning
The state of a particular Genome Appliance can be
described by the content stored under
/var/www/cobbler and /pub/git. Cloning a
particular Genome Appliance is really just a matter of
getting the correct bits from those locations
onto a new Genome Appliance.
Aside from the simple bit replicatation that
must be performed there are also a few
"one-off" things that need to happen. This
involves:
Getting the
puppet modules
to the location
where the
puppetmaster
can see them.
Setting up
commit hooks
for the puppet
module git
repositories.
Sets up commit
hook for the
&PRODUCT;
documentation.
See the cookbook
for more information.
Genome Appliance customization
The &REPORPM; is designed to get users up and
running with a known working configuration.
There are certain custom settings users of
&PRODUCT; will need to configure for their
environment. The two most common needs for
customization are adding new Genome machine
types to genomed
and any extra
cobbler
customization.
How these customizations are managed is at the
user's discretion. However, since the Repo
machine is already controlled by
puppet it makes
sense in many cases to simply use it for this
as well.
For this to work a puppet module named
repo_extensions
must be created and exist on the module
path. The class that this module
must define is also called
repo_extensions.
Important
The reason this works
is because by default
the Genome Appliance's
puppet
external nodes script
includes two classes:
genomerepo::appliance
and
repo_extensions.
Custom Machine Types
A custom machine type in the &PRODUCT; environment can
be roughly described as a collection of known working
puppet classes matched with
an operating system (or more precisely, a
cobbler profile). The list
of machines that can be provisioned from a given Genome
Appliance can be found when using the genome-bootstrap
wizard or the genomed UI.
Note
See the cookbook
for more information on
creating custom machine types.
Important
From Puppet's point of view these "types" are
not bound to any particular OS version. You
choose the OS with
genome-bootstrap or when provisioning
directly with Koan. This allows
users to test out different OS and applications
versions using the same Puppet code.