Wiki

Version 5 (Constantinos Venetsanopoulos, 10/10/2011 04:15 pm)

1 1 Constantinos Venetsanopoulos
h1. snf-image
2 1 Constantinos Venetsanopoulos
3 3 Constantinos Venetsanopoulos
snf-image is a Ganeti OS Provider primarly used by Synnefo.
4 2 Constantinos Venetsanopoulos
5 2 Constantinos Venetsanopoulos
It is written from scratch and allows Ganeti to launch instances from predefined or untrusted custom Images. The whole process of deploying an Image onto the block device (provided by Ganeti), is done in complete isolation from the physical host, enhancing robustness and security.
6 2 Constantinos Venetsanopoulos
There are also additional hooks that allow for: user password changes, file injections, hostname customization, ssh keys cleanup. snf-image is able to deploy many major Linux distributions (Debian, Ubuntu/Kubuntu, CentOS, Fedora) and Windows 2008 R2.  
7 2 Constantinos Venetsanopoulos
8 2 Constantinos Venetsanopoulos
snf-image requires ganeti-os-interface v20 to operate and introduces 4 parameters that supplement the procedure:
9 2 Constantinos Venetsanopoulos
10 2 Constantinos Venetsanopoulos
 * img_id (required): the image's uid as known by the storage backend
11 2 Constantinos Venetsanopoulos
 * img_format (required): the image format (extdump and ntfsdump [dd] currently supported)
12 2 Constantinos Venetsanopoulos
 * img_passwd (required): the passwd to be injected inside the image
13 2 Constantinos Venetsanopoulos
 * img_personality (optional): files to be injected inside the image (json.dumps() of a json containing paths and base64 encoded data as proposed by the "OpenStack Compute API v1.1":http://docs.openstack.org/api/openstack-compute/1.1/content/CreateServers.html. ["more...":http://docs.openstack.org/api/openstack-compute/1.1/content/Server_Personality-d1e2543.html ])
14 1 Constantinos Venetsanopoulos
15 4 Constantinos Venetsanopoulos
The snf-image Ganeti OS Provider (released under a [[Licence|2-clause BSD Licence]]) can be used by any Ganeti deployment that uses KVM as the underlying hypervisor.
16 3 Constantinos Venetsanopoulos
17 1 Constantinos Venetsanopoulos
h2. Architecture
18 3 Constantinos Venetsanopoulos
19 1 Constantinos Venetsanopoulos
h2. Download
20 1 Constantinos Venetsanopoulos
21 1 Constantinos Venetsanopoulos
h2. Installation
22 1 Constantinos Venetsanopoulos
23 5 Constantinos Venetsanopoulos
Before installing snf-image be sure to have a working Ganeti installation in your cluster. The installation process should take place in *all* ganeti nodes. Here we will describe the installation in a single node. The process is identical for all nodes and should be repeated manually or automatically (e.g. with puppet).
24 5 Constantinos Venetsanopoulos
25 5 Constantinos Venetsanopoulos
# Download the snf-image-host debian package as described in the download section.
26 5 Constantinos Venetsanopoulos
# Install the snf-image-host debian package:
27 5 Constantinos Venetsanopoulos
<pre>
28 5 Constantinos Venetsanopoulos
 # dpkg -i snf-image-host_version.deb
29 5 Constantinos Venetsanopoulos
</pre>
30 5 Constantinos Venetsanopoulos
# If the dependencies are not met, install all the dependencies using @apt-get install@
31 5 Constantinos Venetsanopoulos
# Download the snf-image-helper debian package as described in the download section and store it in a handy location.
32 5 Constantinos Venetsanopoulos
# *Do NOT install the snf-image-helper debian package* in the Ganeti node (the package should be present but NOT installed in any node).
33 5 Constantinos Venetsanopoulos
# Configuration of the packages, as described in the next section, is needed before you can use the new OS Provider.
34 5 Constantinos Venetsanopoulos
35 5 Constantinos Venetsanopoulos
h2. Configuration
36 5 Constantinos Venetsanopoulos
37 5 Constantinos Venetsanopoulos
Once you have installed snf-image-host in the Ganeti node and also snf-image-helper is present, proceed with the following configuration:
38 5 Constantinos Venetsanopoulos
39 5 Constantinos Venetsanopoulos
# Edit /etc/default/snf-image and set the HELPER_DIR variable to a directory in which all snf-helper related stuff are going to be stored (the directory should be able to store at least 700MB of data)
40 5 Constantinos Venetsanopoulos
# Move the snf-image-helper debian package inside this directory and edit the HELPER_PKG variable in /etc/default/snf-image accordingly
41 5 Constantinos Venetsanopoulos
<pre>
42 5 Constantinos Venetsanopoulos
 $ mv /path/to/handy/location/snf-image-helper_version.deb HELPER_DIR/
43 5 Constantinos Venetsanopoulos
</pre>
44 5 Constantinos Venetsanopoulos
# Update the helper-vm image and related data:
45 5 Constantinos Venetsanopoulos
<pre>
46 5 Constantinos Venetsanopoulos
 $ /usr/bin/snf-image-update-helper
47 5 Constantinos Venetsanopoulos
</pre>
48 5 Constantinos Venetsanopoulos
 
49 1 Constantinos Venetsanopoulos
h2. Features / Hooks
50 1 Constantinos Venetsanopoulos
51 1 Constantinos Venetsanopoulos
h2. Community & Support
52 1 Constantinos Venetsanopoulos
53 1 Constantinos Venetsanopoulos
* Bug-reports: snf-image-bugs@lists.grnet.gr
54 1 Constantinos Venetsanopoulos
* Support: snf-image-support@lists.grnet.gr