This project provides tooling to support Golden Image creations for AWS AMI
and Docker
. This uses Packer
, Docker
, Terraform
, and Bash
to meet the needs of this project.
- Packer is used to build and deploy Golden AMI images and Golden Docker ECR images.
- Terraform is used to create test clusters based off of the ami's you want to test a build with.
- Bash is leveraged as the main provisioner.
- Docker is used for building and testing images.
- AWS AMI's are generated by Packer based on the configurations.
This tooling was created to help normalize imaging tooling support to make it delcarative and track what is inside any AMI (by default), that is managed. While heavyily used, it was not well supported over the past bit and likely has rough spots that will need to be debugged and addressed. I plan on doing some work on this to make things more abstract to allow this to be leveraged easier and ultimately automate. However, I do need to take some time and see if it's still valuable in light of AWS's Image building service; it could be used in concert or replacement. Benefit of this source is tight control over these images, how they are built and how they are tested.
- Standardized Images.
- Repeatable Images.
- Reduced Development effort to configure and use.
- Reduced time it takes to go to production.
- Reduced security footprint by allowing a single public channel into the ecosystem.
- Manage Patches automatically and efficiently.
- Automate ECR deployment images.
- Automate AMI Testing
NOTE: There is a heavy assumption of ubuntu as the default OS of choice.
Provisioning is provided through bash scripts; this was an initial design choice for ease of use; however room has been left for migration to a better tool such as salt, ansible, chef, or even puppet.