BundleWrap logo

Config management with Python

Easy. Minimalistic. Decentralized.

Decentralized: There is no server. Just your laptop and your army of nodes.

Quick and easy to get started. You don't even need to know Python.

Lightweight: Even managing just a single machine won't feel like overkill.

Push configuration directly using SSH. No agent required.

Free as in bird.
100% Free Software.
No Enterprise Edition.

Pythonic and hackable.
Write hooks, custom items or use it just as a library.

$ bw repo create $ bw repo bundle create motd $ vim bundles/motd/items.py files = { '/etc/motd': { 'content': 'Hear me roar', }, } $ vim nodes.py nodes = { 'localhost': { 'bundles': ['motd'], }, }
$ bw apply -i localhost i localhost started at 2017-09-27 22:13:00 ? localhost ? localhost ╭─ file:/etc/motd ? localhost? localhostcontent ? localhost--- <node> ? localhost+++ <bundlewrap> ? localhost │ @@ -1 +1 @@ ? localhost-A lion still has claws ? localhost+Hear me roar (no newline at end of file) ? localhost? localhost ╰─ Fix file:/etc/motd? [Y/n] ? localhost localhost motd file:/etc/motd fixed (content) i localhost completed after 3s (0 OK, 1 fixed, 0 skipped, 0 failed) i ╭───────────┬───────┬────┬───────┬─────────┬────────┬──────╮ inode │ items │ OK │ fixedskippedfailed │ time │ i ├───────────┼───────┼────┼───────┼─────────┼────────┼──────┤ i │ localhost │ 1 │ 0 │ 1 │ 0 │ 0 │ 3s │ i ╰───────────┴───────┴────┴───────┴─────────┴────────┴──────╯

By allowing for easy and low-overhead config management, BundleWrap fills the gap between complex deployments using Chef or Puppet and old school system administration over SSH.

While most other config management systems rely on a client-server architecture, BundleWrap works off a repository cloned to your local machine.

It then automates the process of SSHing into your servers and making sure everything is configured the way it's supposed to be. You won't have to install anything on managed servers.

BundleWrap is Free Software licensed under the GNU General Public License.

  What is config management?

When we talk about config management, we mean using a piece of software to manage the state of your servers. It will create files, install software and start services.

Using a config management system has many advantages:

  • Versioning: Use an SCM tool like git to keep track of changes to your configuration.
  • Uniformity: Now it's easy to keep similar machines in sync and eliminate configuration drift.
  • Repeatability: Need another five web servers? You just have to configure them once.