Store metadata on a configuration driveYou can configure OpenStack to write metadata to a special
configuration drive that attaches to the instance when it
boots. The instance can mount this drive and read files from
it to get information that is normally available through the
metadata service.One use case for the configuration drive is to pass a
networking configuration when you do not use DHCP to assign IP
addresses to instances. For example, you might pass the IP
configuration for the instance through the configuration
drive, which the instance can mount and access before the you
configure the network settings for the instance.Any modern guest operating system that is capable of
mounting an ISO9660 or VFAT file system can use the
configuration drive.Requirements and guidelinesCompute host requirementsThe following hypervisors support the
configuration drive: libvirt, xenserver, hyper-v,
and vmware.To use configuration drive with libvirt,
xenserver, or vmware, you must first install the
genisoimage package on each
Compute host. Otherwise, instances do not boot
properly.Use the mkisofs_cmd flag to
set the path where you install the
genisoimage program. If
genisoimage is in same path
as the nova-compute service, you do not
need to set this flag.By default, Ubuntu packages do not install
this package. See bug #1165174.To use configuration drive with hyper-v, you
must set the mkisofs_cmd value
to the full path to an
mkisofs.exe installation.
Additionally, you must set the
qemu_img_cmd value in the
hyperv configuration
section to the full path to an
qemu-img command
installation.Image requirementsAn image built with a recent version of the
cloud-init package can
automatically access metadata passed through the
configuration drive. The
cloud-init package version
0.7.1 works with Ubuntu and Fedora-based images,
such as RHEL.If an image does not have the
cloud-init package
installed, you must customize the image to run a
script that mounts the configuration drive on
boot, reads the data from the drive, and takes
appropriate action such as adding the public key
to an account. See for details
on how data is organized on the configuration
drive.If you use Xen with a configuration drive, use
the xenapi_disable_agent
configuration parameter to disable the
agent.GuidelinesDo not rely on the presence of the EC2 metadata
present in the configuration drive, as this
content might be removed in a future release. For
example, do not rely on files in the
ec2 directory.When you create images that access configuration
drive data and multiple directories are under the
openstack directory,
always select the highest API version by date that
your consumer supports. For example, if your guest
image supports the 2012-03-05, 2012-08-05,
2013-04-13 versions, try 2013-04-13 first and fall
back to a previous version if 2013-04-13 is not
present.Enable and access the configuration driveTo enable the configuration drive, pass the
--config-drive=true
parameter to the nova boot
command.This example enables the configuration drive and
passes user data, two files, and two key/value
metadata pairs, all of which are accessible from
the configuration drive:$nova boot --config-drive=true --image my-image-name --key-name mykey --flavor 1 --user-data ./my-user-data.txt myinstance --file /etc/network/interfaces=/home/myuser/instance-interfaces --file known_hosts=/home/myuser/.ssh/known_hosts --meta role=webservers --meta essential=falseYou can also configure the Compute service to
always create a configuration drive.Set this option in the
/etc/nova/nova.conf
file:force_config_drive=trueIf a user passes the
--config-drive=true
flag to the nova boot
command, an administrator cannot disable the
configuration drive.The configuration drive has the
config-2 volume label. If
your guest operating system supports accessing
disk by label, you can mount the configuration
drive as the
/dev/disk/by-label/config-2
device.For example:#mkdir -p /mnt/config#mount /dev/disk/by-label/config-2 /mnt/configMake sure that you use at least version 0.3.1
of CirrOS for configuration drive support.If your guest operating system does not use
udev, the
/dev/disk/by-label
directory is not present.You can use the blkid command
to identify the block device that corresponds to
the configuration drive. For example, when you
boot the CirrOS image with the
m1.tiny flavor, the device
is /dev/vdb:#blkid -t LABEL="config-2" -odevice/dev/vdbOnce identified, you can mount the
device:#mkdir -p /mnt/config#mount /dev/vdb /mnt/configConfiguration drive contentsIn this example, the contents of the configuration
drive are:ec2/2009-04-04/meta-data.json
ec2/2009-04-04/user-data
ec2/latest/meta-data.json
ec2/latest/user-data
openstack/2012-08-10/meta_data.json
openstack/2012-08-10/user_data
openstack/content
openstack/content/0000
openstack/content/0001
openstack/latest/meta_data.json
openstack/latest/user_dataThe files that appear on the configuration drive
depend on the arguments that you pass to the
nova boot command.OpenStack metadata formatThe following example shows the contents of the
openstack/2012-08-10/meta_data.json
and
openstack/latest/meta_data.json
files. These files are identical. The file contents
are formatted for readability:Note the effect of the --file
/etc/network/interfaces=/home/myuser/instance-interfaces
argument that was passed to the nova
boot command. The contents of this file
are contained in the
openstack/content/0000 file
on the configuration drive, and the path is specified
as /etc/network/interfaces in the
meta_data.json file.EC2 metadata formatThe following example shows the contents of the
ec2/2009-04-04/meta-data.json,
latest/meta-data.json files.
These files are identical. The file contents are
formatted to improve readability:User dataThe
openstack/2012-08-10/user_data,
openstack/latest/user_data,
ec2/2009-04-04/user-data, and
ec2/latest/user-data file are
present only if the --user-data
flag and the contents of the user data file are passed
to the nova boot command.Configuration drive formatThe default format of the configuration drive as an
ISO 9660 file system. To explicitly specify the ISO
9660 format, add the following line to the
/etc/nova/nova.conf
file:config_drive_format=iso9660By default, you cannot attach the configuration
drive image as a CD drive instead of as a disk drive.
To attach a CD drive, add this line to the
/etc/nova/nova.conf
file:config_drive_cdrom=trueFor legacy reasons, you can configure the
configuration drive to use VFAT format instead of ISO
9660. It is unlikely that you would require VFAT
format because ISO 9660 is widely supported across
operating systems. However, to use the VFAT format,
add the following line to the
/etc/nova/nova.conf
file:config_drive_format=vfatIf you choose VFAT, the configuration drive is 64
MBs.Configuration drive referenceThe following table shows the configuration options for
the configuration drive: