Genome Appliances
Appliances 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 Requirements CPU 1GHz Memory This depends on the number of cloud members you plan on hosting. We recommend 1.5G of RAM to start. System architecture A cloud appliance can be installed on either i386 or x86_64 architectures. Hardware Virtualization When using Fedora as the distribution for the cloud, the machine must support hardware virtualization. Storage This 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 Machine
Features Virtualization (Either Xen or KVM) &PRODUCT; tooling for managing the cloud
Genome 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 Requirements CPU 1GHz Memory 512M RAM System 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.