project-config/nodepool/elements
Tim Buckley 16595936ee Ignore errors during stackviz build
This removes the 'set -e' bash option to make sure 89-prepare-stackviz
doesn't cause DIB builds to fail if npm encounters an error. Instead,
errors are caught and either logged or ignored outright and the script
always returns successfully.

Additionally, this adds a 15 minute timeout for the npm install to
prevent any image build failures that would take excessively long.

Change-Id: I5272eac323069a8df8ab64e1cc5d7c0bad9bd879
2016-07-06 09:32:26 -06:00
..
cache-bindep Drop tempfile workaround for aggregate bindep list 2016-03-28 14:03:18 +00:00
cache-devstack Add dib-lint tags to sudo calls 2016-06-07 09:30:52 +02:00
infra-package-needs Add traceroute to default preinstalled packageset 2016-04-04 18:19:36 +00:00
node-devstack Move prepare-node to it's own element 2016-05-19 21:38:11 -05:00
nodepool-base Initial commit of zuul-worker DIB element 2016-05-14 12:28:41 -04:00
openstack-repos Move prepare-node to it's own element 2016-05-19 21:38:11 -05:00
prepare-node Move prepare-node to it's own element 2016-05-19 21:38:11 -05:00
puppet Don't clear-out all repos in puppet cleanup 2016-06-09 10:27:34 +10:00
slave-db Reorganizes project-config 2014-09-25 11:41:04 -04:00
stackviz Ignore errors during stackviz build 2016-07-06 09:32:26 -06:00
zuul-worker Initial commit of zuul-worker DIB element 2016-05-14 12:28:41 -04:00
README.rst Determine CentOS 6 platform in cache-devstack 2015-05-01 20:57:05 +00:00

Using diskimage-builder to build devstack-gate nodes

In addition to being able to just download and consume images that are the same as what run devstack-gate, it's easy to make your own for local dev or testing - or just for fun.

Install diskimage-builder

Install the dependencies:

sudo apt-get install kpartx qemu-utils curl python-yaml

Install diskimage-builder:

sudo -H pip install diskimage-builder

Build an image

Building an image is simple, we have a script!

DISTRO="ubuntu" bash tools/build-image.sh

See the script for environment variables to set distribution, etc. You should be left with a .qcow2 image file of your selected distribution.

It is a good idea to set TMP_DIR to somewhere with plenty of space to avoid the disappointment of a full-disk mid-way through the script run.

While testing, consider exporting DIB_OFFLINE=true, to skip updating the cache.

Mounting the image

If you would like to examine the contents of the image, you can mount it on a loopback device using qemu-nbd.

sudo apt-get install qemu-utils
sudo modprobe nbd max_part=16
sudo mkdir -p /tmp/newimage
sudo qemu-nbd -c /dev/nbd1 /path/to/devstack-gate-precise.qcow2
sudo mount /dev/nbd1p1 /tmp/newimage

or use the scripts

sudo apt-get install qemu-utils
sudo modprobe nbd max_part=16
sudo tools/mount-image.sh devstack-gate-precise.qcow2
sudo tools/umount-image.sh

Other things

It's a qcow2 image, so you can do tons of things with it. You can upload it to glance, you can boot it using kvm, and you can even copy it to a cloud server, replace the contents of the server with it and kexec the new kernel.