This repository contains Packer templates and scripts to build Ubuntu Pi images with different HashiCorp tools like Consul, Nomad or Vault pre-installed.
Consul is a distributed, highly-available tool that you can use for service discovery and key/value storage. A Consul cluster typically includes a small number of server nodes, and a larger number of client nodes, which you typically run alongside your apps.
Nomad is a distributed, highly-available data-center aware scheduler. A Nomad cluster typically includes a small number of server nodes, and a larger number of client nodes, which are used for running jobs.
Vault is an open source tool for managing secrets and protecting sensitive data.
Ubuntu for Raspberry Pi has built-in support for cloud-init to initialize and configure your system. With cloud-init you can customize e.g. hostname, authorized ssh keys, a static ip, Consul or Nomad configuration, ...
This setup includes the following images:
-
rpi-consul.img: an image with Consul installed as a systemd service
-
rpi-vault.img: an image with Consul and Vault installed as systemd services
-
rpi-nomad.img: an image with Consul and Nomad installed as a systemd service
-
rpi-nomad-client.img: same as previous image, but with extra software like Docker and a JDK
-
rpi-hashi-stack.img: an image with Consul, Vault and Nomad installed as systemd services
-
rpi-hashi-stack-extra.img: same as previous image, but with extra software like Docker and a JDK
With the included images, all building blocks to deploy many different architecture are available:
This project includes a Vagrant file and some scripts to build the images in an isolated environment.
To use the Vagrant environment, start by cloning this repository:
git clone https://github.com/jsiebens/rpi-hashistack
Next, start the Vagrant box and ssh into it:
vagrant up
vagrant ssh
When connected with the Vagrant box, run the build script in the /vagrant
directory:
cd /vagrant
./build.sh