Some extra example hooks
[ext/instance-debootstrap.git] / README
diff --git a/README b/README
index 271bdd7..893804f 100644 (file)
--- a/README
+++ b/README
@@ -58,6 +58,9 @@ named 'defaults' in the source distribution for more details):
 - EXTRAPKGS: most OSes will need some extra packages installed to make
   them work nicely under Xen; the example file containts a few
   suggestions
+- CUSTOMIZE_DIR: a directory containing customization script for the
+  instance.  (by default $sysconfdir/ganeti/instance-debootstrap/hooks)
+  See "Customization of the instance" below.
 - GENERATE_CACHE: if 'yes' (the default), the installation process will
   save and reuse a cache file to speed reinstalls (located under
   $localstatedir/cache/ganeti-instance-debootstrap)
@@ -68,13 +71,44 @@ named 'defaults' in the source distribution for more details):
   weeks)
 - PARTITION_STYLE: if 'none' the device will be formatted directly, if 'msdos'
   a partition table will be installed on it. You need to have kpartx installed
-  to use the 'msdos' option.
+  to use the 'msdos' option. The default is 'msdos' from Ganeti 2.0 onwards,
+  but still 'none' if installing under Ganeti 1.2
 
 Note that the settings file is important on the node that the instance
 is installed on, not the cluster master. This is indeed not a very good
 model of using this OS but currently the OS interface in ganeti is
 limiting.
 
+Customization of the instance
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+If run-parts is in the os create script, and the CUSTOMIZE_DIR (by
+default $sysconfdir/ganeti/instance-debootstrap/hooks,
+/etc/ganeti/instance-debootstrap/hooks if you configured the os with
+--sysconfdir=/etc) directory exists any executable whose name matches
+the run-parts execution rules (quoting run-parts(8): the names must
+consist entirely of upper and lower case letters, digits, underscores,
+and hyphens) is executed to allow further personalization of the
+installation. The following environment variables are passed, in
+addition to the ones ganeti passes to the OS scripts:
+
+TARGET: directory in which the filesystem is mounted
+SUITE: suite installed by debootstrap (eg: lenny)
+ARCH: target architecture
+PARTITION_STYLE: style of the disk partitioning (see above)
+EXTRA_PKGS: extra packages installed by debootstrap
+BLOCKDEV: ganeti block device
+FSYSDEV: device in which the filesystem resides (the one mounted in TARGET)
+
+The scripts in CUSTOMIZE_DIR can exit with an error code to signal an error in
+the instance creation, should they fail.
+
+The scripts in CUSTOMIZE_DIR should not start any long-term processes or
+daemons using this directory, otherwise the installation will fail because it
+won't be able to umount the filesystem from the directory, and hand the
+instance back to Ganeti.
+
+
 Caching
 ~~~~~~~
 
@@ -104,3 +138,9 @@ The instance is a minimal install:
    definitions to /etc/network/interfaces
  - after configuring the network, it is recommended to run ``apt-get
    update`` so that signatures for the release files are picked up
+
+.. vim: set textwidth=72 :
+.. Local Variables:
+.. mode: rst
+.. fill-column: 72
+.. End: