Plumbery

https://coveralls.io/repos/github/DimensionDataCBUSydney/plumbery/badge.svg?branch=master https://readthedocs.org/projects/plumbery/badge/?version=latest https://img.shields.io/pypi/l/plumbery.svg?maxAge=2592000 https://img.shields.io/pypi/pyversions/plumbery.svg?maxAge=2592000

Infrastructure as code at Dimension Data with Apache Libcloud

Features

  • 50+ tutorials covering popular use cases
  • Read fittings plan in YAML
  • Load parameters in separate YAMl file
  • Use cloud API to create the network infrastructure, and to build nodes
  • Bootstrap nodes with cloud-init configuration directives
  • Inject actual addresses and on-the-fly secrets to contextualisation
  • Create RSA keys and passwords to secure deployments
  • Pass environment variables to target nodes
  • Preserve random secrets across multiple invocations
  • Create network domains and Ethernet networks
  • Reserve public IPv4 addresses
  • Manage network address translation rules
  • Manage firewall rules
  • Create load balancers with pools of nodes
  • All images in libraries are available to new nodes
  • Specify number of CPU, or core per CPU, and CPU speed
  • Specify node memory
  • Add virtual disks and specify tiers of storage
  • Add multiple network interfaces to nodes
  • Set private IPv4 statically
  • Add public IPv4 addresses to nodes
  • Add monitoring to nodes
  • Add backup to nodes
  • Build all blueprints
  • Build a blueprint across multiple locations
  • Start all nodes
  • Start nodes belonging to the same blueprint
  • Polish Linux nodes for quick bootstrapping
  • Build a full inventory of nodes that have been deployed
  • Reflect fittings into a ready-to-use inventory for ansible
  • Stop all nodes
  • Stop nodes belonging to the same blueprint
  • Wipe all nodes
  • Wipe nodes belonging to the same blueprint
  • Destroy part of the setup, or all blueprints
  • You can extend plumbery with your own software, it has been designed for that
  • Run from the command line, or as a python library, or as a container
  • Accept custom actions from the command line too
  • Limit plumbing to some locations if needed

Contributors