- ARCH: either i386 or amd64, otherwise your current architecture will
be used
- SUITE: the actual OS to be installed; the current default is Debian
- *lenny*, and you can choose any of the OSes supported deboostrap (on
+ *wheezy*, and you can choose any of the OSes supported deboostrap (on
Debian, look into /usr/share/deboostrap/scripts)
- EXTRAPKGS: most OSes will need some extra packages installed to make
them work nicely under Xen; the example file containts a few
model of using this OS but currently the OS interface in ganeti is
limiting.
+Creating OS variants
+--------------------
+
+Every Ganeti OS supports variants, so it's possible to define custom OS
+variants with instance-debootstrap as well. First, an additional variant has
+to be defined in ``$osdir/debootstrap/variants.list`` (with ``$osdir`` being
+``/usr/share/ganeti/os`` by default). Secondly, you can configure this
+instance variant in
+``$sysconfdir/ganeti/instance-debootstrap/variants/$variant.conf``, overriding
+the settings mentioned in the previous section.
+
+To use the newly created instance variant, specify it in ``gnt-instance`` like
+this::
+
+ gnt-instance add -o debootstrap+precise ...
+
+Example
++++++++
+
+To create a Ubuntu 12.04 (precise) instance variant, add the following to
+``$osdir/debootstrap/variants.list``::
+
+ precise
+
+Now create the file
+``$sysconfdir/ganeti/instance-debootstrap/variants/precise.conf`` with the
+following content::
+
+ MIRROR="http://archive.ubuntu.com/ubuntu/"
+ SUITE="precise"
+ COMPONENTS="main,universe"
+ ARCH="amd64"
+
+You can create Ubuntu 12.04 instances as follows::
+
+ gnt-instance add -t plain -o debootstrap+precise --disk 0:size=10000m -n node1.example.com instance1.example.com
+
+For this to work, make sure that you have the appropriate debootstrap script
+for precise (or just create a symlink called ``precise`` to ``gutsy`` in
+``/usr/share/debootstrap/scripts``).
+
+Instance creation parameters
+----------------------------
+
+Some aspects of the created instance can be conrolled via parameters at
+instance creation time with the ``-O`` parameter of ``gnt-instance``.
+
+The supported parameters are:
+
+- filesystem: the filesystem type to use for the root partition. This has to
+ be a filesystem type supported by ``mke2fs``. The default is 'ext4'.
+
Customization of the instance
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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)
+SUITE: suite installed by debootstrap (eg: wheezy)
ARCH: target architecture
PARTITION_STYLE: style of the disk partitioning (see above)
EXTRA_PKGS: extra packages installed by debootstrap
won't be able to umount the filesystem from the directory, and hand the
instance back to Ganeti.
+Example
++++++++
+
+The root password can be automatically set when the instance is created. In
+order to do this, the ``examples/hooks/defaultpasswords`` file has to be copied
+to ``$sysconfdir/ganeti/instance-debootstrap/hooks/``, and its data file
+``examples/hooks/confdata/defaultpasswords`` has to be copied to
+``$sysconfdir/ganeti/instance-debootstrap/hooks/confdata/`` and modified
+accordingly to one's own need. The file syntax is such that each line represent
+a user, with the format::
+
+ username:password
+
+After copying the two files, just running the instance creation as usual will
+automatically cause their execution.
Caching
~~~~~~~