Blueprint reverse-engineers servers
- Easy configuration management.
- Detect relevant packages, files, and source installs.
- Generate reusable server configs.
- Convert blueprints to Puppet or Chef.
- No DSLs, no extra servers, no workflow changes.
Blueprint looks inside popular package managers, finds changes you made to configuration files, and archives software you built from source. It runs on Debian- and RPM-based Linux distros with Python >= 2.6 and Git >= 1.7. Comprehensive documentation and examples in the Blueprint book.
Blueprint I/O moves blueprints around
- Centralized configuration management.
- Export and backup server configurations.
- Push and pull blueprints anywhere.
- Bootstrap servers painlessly.
Blueprint I/O pushes and pulls blueprints to and from a Blueprint I/O Server, making it easy to use blueprints anywhere. DevStructure provides a free Blueprint I/O Server at https://devstructure.com, which stores blueprints in Amazon S3. Alternatively, you can build your own backend server implementing the Blueprint I/O API.
Create a blueprint
blueprint create my-first-blueprint
Blueprint inspects your server and stores the results in its local repository.
blueprint list shows all the blueprints you've created on this server.
Apply a blueprint
blueprint apply my-first-blueprint
Blueprint generates shell code from my-first-blueprint and executes it on the server.
Generate POSIX shell code from a blueprint
blueprint show -S my-first-blueprint
my-first-blueprint.sh is written to your working directory. Try out
-C to generate a Puppet module or a Chef cookbook.
Diff a blueprint
blueprint diff foo bar baz
foo. Files, packages and sources that appears in
foo but not
bar will be carried over to
baz and everything else will be dropped.
Push a blueprint
blueprint push my-first-blueprint
The blueprint and its files are stored remotely. You get a secret URL for accessing it.
Pull a blueprint
blueprint pull https://devstructure.com/MY-SECRET-KEY/my-first-blueprint
The blueprint is stored locally and ready for use.
- A Debian- or RPM-based Linux distribution
- Python >= 2.6
- Git >= 1.7
From source on Debian, Ubuntu, Fedora, CentOS 6, and RHEL 6
git clone git://github.com/devstructure/blueprint.git cd blueprint git submodule update --init make && sudo make install
From source on CentOS and RHEL 5
rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm yum install python26 git clone git://github.com/devstructure/blueprint.git cd blueprint git submodule update --init make && sudo make install PYTHON=/usr/bin/python26
This installs Python 2.6 from EPEL side-by-side with Python 2.4 and so won't break yum.
With a package manager
DevStructure maintains Debian packages and Python eggs for Blueprint. See Installing with a package manager on the wiki.
The prose documentation provides a comprehensive overview of the tool including philosophy, installation, and detailed examples.
blueprint-list(1): list all blueprints.
blueprint-create(1): create a blueprint.
blueprint-rules(1): create a blueprint from a blueprint-rules file.
blueprint-show(1): generate code from a blueprint.
blueprint-diff(1): save the difference between two blueprints.
blueprint-split(1): split one blueprint into two others interactively.
blueprint-prune(1): select a subset of resources interactively.
blueprint-template(1): render mustache.sh templates locally.
blueprint-apply(1): run a blueprint's generated shell code.
blueprint-push(1): push a blueprint to the Internet.
blueprint-pull(1): pull a blueprint from the Internet.
blueprint-destroy(1): destroy a blueprint.
blueprint(5): Blueprint JSON format.
blueprintignore(5): ignore specific files when creating blueprints.
blueprint-rules(5): enumerate resources in blueprints.
blueprint.cfg(5): centralized blueprint service configuration.
mustache.shtemplate language syntax.
blueprint-template(7): built-in template data.
blueprint(7): Blueprint Python library.
blueprint-git(1): low-level access to blueprints.
blueprint-show-files(1): show files in a blueprint.
blueprintignore(5) rules from a blueprint.
blueprint-show-packages(1): show packages in a blueprint.
blueprint-show-services(1): show services in a blueprint.
blueprint-show-sources(1): show source tarballs in a blueprint.
Blueprint is BSD-licensed.
- Source code: https://github.com/devstructure/blueprint
- Issue tracker: https://github.com/devstructure/blueprint/issues
- Documentation: http://devstructure.github.com/blueprint/
- Wiki: https://github.com/devstructure/blueprint/wiki
- Mailing list: https://groups.google.com/forum/#!forum/blueprint-users