Bootstrap Debian images for virtualized environments
Find a file
Anders Ingemann 7afd04f1c9 Distinguish between bootstrap and apt mirror
They can both be set independently now.
If the bootstrap mirror is not set, it falls back to the apt mirror,
which in turn falls back to the geo redirector.
2014-01-05 02:25:27 +01:00
base Distinguish between bootstrap and apt mirror 2014-01-05 02:25:27 +01:00
common Distinguish between bootstrap and apt mirror 2014-01-05 02:25:27 +01:00
logs logging 2013-07-08 23:13:58 +02:00
manifests Make plugins key a required manifest property 2014-01-05 02:25:26 +01:00
plugins New plugin: vagrant 2014-01-05 02:25:26 +01:00
providers Fail when guest add. install exits with $? != 1 2014-01-05 02:25:25 +01:00
.gitignore Ignore vagrant files 2013-07-08 23:13:58 +02:00
__init__.py Basic structure up and running 2013-07-08 23:13:56 +02:00
build-debian-cloud Rename common module to base 2013-07-08 23:13:57 +02:00
CONTRIBUTING.md PEP8-ify things. 2013-08-17 17:28:46 +02:00
README.md fix typo 2013-12-15 08:27:04 +01:00

build-debian-cloud python version (preview)

This is a preview of the build-debian-cloud python version.
It currently only supports EBS booted volumes and none of the plugins have been ported.

Suggestions

The reason I release this preview is to get as many suggestions as possible. If you have an idea for how to improve upon the architecture or simply spotted a bug, please feel free to file a bug report. Pull requests are also welcome!

Dependencies

You will need to run debian wheezy with python 2.7 and debootstrap installed. Other depencies include:

  • qemu-utils
  • parted
  • grub2
  • euca2ools
  • xfsprogs (If you want to use XFS as a filesystem) Also the following python libraries are required:
  • boto
  • jsonschema (version 2.0.0, only available through pip)
  • termcolor
  • fysom

Bootstrapping instance store AMIs requires euca2ools to be installed.

Highlights

  • The desired image is configured entirely via a JSON manifest file
    • Manifests are validated by a json schemas
    • Support comments
  • Proper support for different providers
  • The task based system has been completely revamped
    • Higher granularity increases reusability of tasks across providers
    • Tasks are neatly organized into modules
    • A task dependency graph is built to determine the execution order
  • Support for rollback actions if something fails
  • Logfiles
    • All output from invoked subprocesses is logged

Disclaimer

This is only a preview of the bootstrapper, so you can expect bugs and major architectural changes. Do not expect that the final version will look anything like this.