Public | Automated Build

Last pushed: a year ago
Short Description
Full Description



.. image::

.. image::

.. image::

.. image::

.. image::

.. image::

Infrastructure as code at Dimension Data with Apache Libcloud

  • Documentation: Plumbery at ReadTheDocs_
  • Python package: Plumbery at PyPi_
  • Source code: Plumbery at GitHub_
  • Free software: Apache License (2.0)_


  • 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


  • Bernard Paques_ [Dimension Data employee] (development lead)
  • Anthony Shaw_ [Dimension Data employee]
  • Olivier Grosjeanne_ [Dimension Data employee]
  • Jacques Clément_ [Dimension Data employee]
  • Asim Khawaja_ [Dimension Data employee]
  • Geoffrey Cristallo_


  • Cloud-Init_
  • Apache Libcloud_
  • netifaces_
  • PyYAML_
  • Cookiecutter_
  • cookiecutter-pypackage_

.. _Plumbery at ReadTheDocs:
.. _Plumbery at PyPi:
.. _Plumbery at GitHub:
.. _Apache License (2.0):
.. _Bernard Paques:
.. _Anthony Shaw:
.. _Olivier Grosjeanne:
.. _Jacques Clément:
.. _Asim Khawaja:
.. _Geoffrey Cristallo:
.. _Cloud-Init:
.. _Apache Libcloud:
.. _netifaces:
.. _PyYAML:
.. _Cookiecutter:
.. _cookiecutter-pypackage:

Docker Pull Command
Source Repository