Skip to main content

A utility for automating multi-host, multi-environment software builds and deployments.

Project description

batou

batou is a multi-(component|host|environment|…) deployment utility.

Deployments are described in a model using “components” and can be deployed locally and remotely. Models are written as Python code.

See the batou documentation for details on how to use it.

Changelog

0.2.15 (2013-08-21)

  • Update Package component so it ignores installed packages when installing. This way, we actually install setuptools even when distribute is installed. (Otherwise it’s a no-op since distribute tells pip that setuptools is already satisfied).

  • Backport ‘assert_cmd’ API from 1.0 branch to support simpler assertions for verify when needing to check the result of an external command.

0.2.14 (2013-08-19)

  • Fix Python package installation version check.

  • Don’t use bin/buildout bootstrap command anymore. PIP installs a sufficient bin/buildout so buildout can do the rest internally.

  • Install zc.buildout during bootstrapping phase using PIP to avoid bootstrap.py problems.

0.2.13 (2013-08-01)

  • Switch to asking pip installing eggs instead of flat installations as namespaces seem to collide otherwise.

  • Remove non-functional deprecated ‘md5sum’ attribute.

0.2.12 (2013-07-26)

  • Another attempt at getting convergency for package installation: actually leverage pkg_resources to check what version of a package is installed. PIP does not necessarily list or freeze setuptools, even if forced to reinstall.

0.2.11 (2013-07-25)

  • More resilience for creating virtualenvs for old python versions: provide a bootstrapping venv that carries a compatible venv package to create the actual virtualenv. Brr.

  • Rewrite PIP interaction with the installed database: don’t need YAML any longer and works with old versions of PIP that are required to work with Python 2.4.

  • Allow specifying the PIP version on the buildout master component.

  • Make bootstrapping virtualenv with correct setuptools version more reliable.

  • Silence verification command for virtualenv pkg_resources availability.

  • Support upgrading SVN working copies using the ‘svn upgrade’ command if necessary.

0.2.10 (2013-07-15)

  • Backport buildout/virtualenv handling from 1.x branch (mostly due to distribute/setuptools merge, but brings nice additional robustness).

  • Add exclude parameter to Directory component.

0.2.9 (2013-07-06)

  • Fix #12527: utils.cmd breaks on spacey arguments and embedded quotes.

  • Avoid accidentally creating incorrect directories in developer VFS mapping.

  • Switch testrunner to pytest. Refactor some tests to take advantage of its capabilities.

  • Clean up PEP8 / pyflakes errors, integrate pytest plugin to ensure continued compliance.

  • Clean up buildout versions specifications.

  • Fix .dmg extractor to copy symlinks as symlinks.

  • Fix remote sudo for Mac OS X target hosts.

0.2.8 (2013-06-18)

  • Added archive extractor for .dmg files.

  • Added flag for supervisor to control whether global or individual restarts wait until everything is running.

0.2.7 (2013-05-22)

  • Fix template for Nagios check service dependencies.

  • Update bootstrap call for batou-internal bootstrapping.

0.2.6 (2013-05-18)

  • Add component that clones from a Mercurial repository.

  • Write supervisord.pid into /run/local instead of ${workdir}/var to ensure correct startup after machine crashes.

  • Add ignore_returncode parameter to Component.cmd() to suppress exceptions on unsuccessful command execution.

0.2.5 (2013-04-23)

  • Fix interaction between supervisor programs and disabled supervisors: don’t try to start those programs.

0.2.4 (2013-04-22)

  • Force reread/update on supervisor after config changes.

0.2.3 (2013-04-22)

  • supervisor: wait up to 60 seconds instead of 30 until supervisor responds to a PID after triggering shutdown. Fix bug trying to detect shutdown: RuntimeError would cause residual data in output variables.

  • supervisor: after reloading, wait as long as the highest startup delay was configured on a program to avoid subsequent accidental restarts.

  • supervisor: remove ‘restart’ flag: always restart if we have a relevant change.

  • supervisor: fix bug in reload logic: path to supervisord.conf was wrong

0.2.2 (2013-04-19)

  • Allow specifying ‘configure_args’ on cmmi.Build or ‘args’ on cmmi.Configure.

  • Fix supervisor’s path lookup for event listeners to support the automatically installed superlance plugins better. This may change again in the future depending on other event listener needs.

0.2.1 (2013-04-18)

  • Fix supervisor refactoring: templates contained static paths from my development machine. Event listeners were not formatting the event list correctly.

  • Let RunningSupervisor wait (infinitely) long when reloading if the supervisorctl command returns ‘SHUTDOWN_STATE’. This supports large installations with many services more gracefully but might get stuck.

  • Fix supervisor’s Nagios check: I removed the bin/py custom interpreter and didn’t notice it was used by the check. Put it back.

0.2 (2013-04-18)

  • Lots of stuff that went on unreleased for way too long. Producing a release to allow people to stop running from trunk.

  • Buildout component: Allow custom buildout.cfg names and pass the name to bootstrap.

  • Improve SSH connection error logging: more readable now and hosts are identifiable. (#12093)

  • Do not automatically add missing SSH host keys any longer. (#11606)

  • Use python version specific virtualenv, if availble. This helps with ancient Python 2.4 components. For specific virtualenv versions no explicit python executable is passed.

  • Internalize download hash handling using hashlib. Allow selection of hash function. (Thanks to Christine Koppelt.)

  • Introduce new component modelling approach.

  • Start writing documentation.

  • Improve error message when download fails due to checksum mismatch.

Developing batou

Issue tracker:

https://projects.gocept.com/projects/batou/

Source code:

https://bitbucket.org/gocept/batou/

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page