3.2 KiB
3.2 KiB
Features
- A set of configuration files (in yaml format) that shows common/component/distribution configurations
- Supports the following actions on the various OpenStack components.
- Installing:
- Downloading source from git, archive urls (ie launchpad tarballs) or local files
- Verifying that the
test-requires
andpip-requires
files have packages that can be translated to a known pypi or apt/yum package - Installing those dependencies (handling pypi and apt/yum packaging specifics for you)
- Configuring the needed files, symlinks, adjustments, tweaks (and so on...)
- Starting: starting of the components sub-programs
with the needed configuration via the common daemon model
- Also creates a
pid
,stderr
andstdout
file set for debugging/examination
- Also creates a
- Stopping: stopping of the previously started components
- Uninstalling: getting you back to an initial
'clean' state
- Removing installed configuration
- Undoing of installed files/directories
- Removing of packages installed
- Testing: running each components unit tests (and in the future performing a simple set of integration tests)
- Packaging: creating a basic set of packages for the
desired distributions
- Supports automatic injection of dependencies, creation of change log from git history...
- Status: checking the status of the running components sub-programs
- Installing:
- Supports dry-run mode (to see what would happen)
- Tracking of all actions taken by a component via append-only files (mainly for uninstall, but useful for analysis)
- Written in python so it matches the style of other OpenStack components.
- Code decoupling (thus encouraging re-use by others)
- Components/actions are isolated as individual classes (and so on).
- Supports installation personas that define what is to be installed, thus decoupling the 'what' from the 'how'.
- Extensively documented distribution specifics (also
decoupled)
- See the
conf/distros
directory for examples
- See the
- Install/start/stop... resumption so that when you
install you can
ctrl+c
and resume later (where applicable). - Extensive logging (and debug mode)
- All commands ran are logged, all configuration files read/write...
- Package/pip tracking
- This allows for installations to use the distributions native packages (when applicable) as well as provides a list of pips which should be packaged by that distribution before the given OpenStack release is stabilized.
- This also allows for releases of anvil to track exactly how (and what packages and what mapping) is needed for a given release tag (which maps to a given OpenStack release tag), thus freezing what is needed for that release to a known set.