A cloud clone of my local development environment
This is a blueprint and toolchain to spin up a cloud instance that matches my local development environment.
The main driving factor is enabling doing work from my iPad, which adds resiliency when working outdoors or far from a power outlet. It has a couple of nice side effects:
- It enables me to be productive very quickly on any machine as long as it has a terminal and a connection
- It forces me to consolidate a recipe for setting up my machine, which speeds up the process when getting a new one.
- My personal machine becomes cattle, not a pet.
There are 2 main parts to this:
- Create an image: build an AMI with all the dependencies and configuration baked in.
- Spin up an instance: use terraform to turn the computer on and off.
The current iteration is based on AWS but the implementation is portable to other cloud vendors.
bin
: top level scriptsimages
: packer and shell scripts to bake the AMIinstances
: terraform script to spin up instancekeys
: ssh keys. keys are ignored but keeping a directory to have a predictable location.
./bin/build-image
./bin/spin-up
./bin/spin-down
- Packer >=1.7.10
- Terraform >=1.1.7
- aws-cli >=2.4.7
- jq >=1.6
WIP