instack executes [diskimage-builder](https://github.com/openstack/diskimage-builder)style elements on the current system. This enables acurrent running system to have an element applied in the same way thatdiskimage-builder applies the element to an image build.

instack, in its current form, should be considered low level tooling. It is meantto be used by higher level scripting that understands what elements andhook scripts need execution. Using instack requires a rather in depthknowledge of the elements within diskimage-builder and tripleo-image-elements.

An example of higher level tooling that uses instack to install a TripleO styleundercloud is at:https://github.com/rdo-management/instack-undercloud

Usage-----

Use the command line arguments for fine grained control over which elements toapply, or drive instack via a declarative style json file (seehttps://github.com/openstack/instack-undercloud/blob/master/json-files/centos-7-undercloud-packages.jsonfor an example).

Be aware that most elements are not idempotent. Subsequent runs of instack with the same set of elementswill often fail due to things files and directories already existing. One way around this is to write a clean upelement for your environment that cleans up before a run early in pre-install.d, and then alwaysinclude that element when you run instack.

1. Make sure you have pip and git installed. If using your distro's pip, make you have at least pip version 1.5. There's a bug in older versions that causes some files to not be installed +x, which is a requirement for element hook scripts. To use upstream pip, see: http://www.pip-installer.org/en/latest/installing.html

1. git clone this repository

git clone https://github.com/rdo-management/instack

1. pip install the cloned instack

pushd instack && sudo pip install -e . && popd

1. pip install diskimage-builder and tripleo-image-elements

sudo pip install diskimage-builder tripleo-image-elementsIf you so choose, you can use these from their git repositories instead: