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

1.0b2 (2013-07-09)

  • Add component to manage PIP within a virtual env.

  • Add component to manage packages with PIP within a virtual env.

  • Restructure buildout component to make it more robust regarding setuptools/distribute preparation. Also remove usage of bootstrap completely as we rely on virtualenv anyway.

1.0b1 (2013-07-09)

  • Apply semantic versioning: initial development is over, so this is 1.0 now.

  • Major revamp of secrets management:

    • switch to GPG (instead of aespipe)

    • turn secrets into a core feature, removing the need for a special component

  • Add ‘–single’ to suppress parallel bootstrapping.

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/

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

batou-1.0b2.zip (325.9 kB view hashes)

Uploaded Source

Supported by

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