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