Docker encapsulates heterogeneous payloads in Standard Containers, and runs them on any server with strong guarantees of isolation and repeatability. It is a great building block for automating distributed systems: large-scale web deployments, database clusters, continuous deployment systems, private PaaS, service-oriented architectures, etc.
Dewpoint is a command line tool for interacting with cloud servers.
Usage: dewpoint [options] ...
create-node Create a new node
destroy-node Destroy an existing node
find-node Find an existing node by name
list-nodes List all existing nodes
list-sizes List all valid server sizes
list-images List all available server images
help Return more detailed help on command
I was going to write something like this myself (for an experimental fully automated continuous deployment pipeline using only open-source tools) but this looks promising so maybe I won't have to.
Deltacloud provides the API server and drivers necessary for connecting to cloud providers.
Deltacloud maintains long-term stability for scripts, tools and applications and backward compatibility across different versions.
Using single API Deltacloud enables management of resources in different clouds.
Start an instance on an internal cloud, then with the same code start another on EC2 or RHEV-M.
A list of links to tutorials and documentation on how to install and deploy OpenStack.
Ansible is a radically simple model-driven configuration management, deployment, and command execution framework. Other tools in this space have been too complicated for too long, require too much bootstrapping, and have too much learning curve. Ansible is dead simple and painless to extend. For comparison, Puppet and Chef have about 60k lines of code. Ansible’s core is a little over 1000 lines.
Where Ansible excels though, is expressing complex multi-node deployment processes, executing ordered sequences on different sets of nodes through Playbooks. Playbooks contain one or more plays, each executed against a different batch of nodes. Think about webservers, database servers, and backend servers in a multi-node web environment. A play can address each set of machines in a cycle, ensuring the configurations of the machines were correct and also updating them to the specified version of software if required.
Fabric is a Python (2.5 or higher) library and command-line tool for streamlining the use of SSH for application deployment or systems administration tasks.
It provides a basic suite of operations for executing local or remote shell commands (normally or via sudo) and uploading/downloading files, as well as auxiliary functionality such as prompting the running user for input, or aborting execution.
Typical use involves creating a Python module containing one or more functions, then executing them via the fab command-line tool.