jsiebens / hashi-up

bootstrap HashiCorp Consul, Nomad, or Vault over SSH < 1 minute
MIT License
676 stars 54 forks source link
automation boundary cloud consul consul-cluster devops devtools go golang hashicorp linux nomad nomad-cluster raspberry-pi ssh-agent vault vault-cluster vm

hashi-up

hashi-up is a lightweight utility to install HashiCorp Consul, Nomad or Vault on any remote Linux host. All you need is ssh access and the binary hashi-up to build a Consul, Nomad or Vault cluster.

The tool is written in Go and is cross-compiled for Linux, Windows, MacOS and even on Raspberry Pi.

This project is heavily inspired on the work of Alex Ellis who created k3sup, a tool to to get from zero to KUBECONFIG with k3s

Go Report Card License: MIT GitHub All Releases

What's this for?

This tool uses ssh to install HashiCorp Consul, Nomad or Vault to a remote Linux host. You can also use it to join existing Linux hosts into a Consul, Nomad, Vault or Boundary cluster. First, Consul, Nomad or Vault is installed using a utility script, along with a minimal configuration to run the agent as server or client.

hashi-up was developed to automate what can be a very manual and confusing process for many developers, who are already short on time. Once you've provisioned a VM with your favourite tooling, hashi-up means you are only 60 seconds away from running nomad status on your own computer.

Download hashi-up

hashi-up is distributed as a static Go binary. You can use the installer on MacOS and Linux, or visit the Releases page to download the executable for Windows.

curl -sLS https://get.hashi-up.dev | sh
sudo install hashi-up /usr/local/bin/

hashi-up version

Usage

The hashi-up tool is a client application which you can run on your own computer. It uses SSH to connect to remote servers when installing HashiCorp Consul or Nomad. Binaries are provided for MacOS, Windows, and Linux (including ARM).

SSH credentials

By default, hashi-up talks to an SSH agent on your host via the SSH agent protocol. This saves you from typing a passphrase for an encrypted private key every time you connect to a server. The ssh-agent that comes with OpenSSH is commonly used, but other agents, like gpg-agent or yubikey-agent are supported by setting the SSH_AUTH_SOCK environment variable to the Unix domain socket of the agent.

The --ssh-target-key flag can be used when no agent is available or when a specific private key is preferred.

The --ssh-target-user and --ssh-target-password flags allow you to authenticate using a username and a password.

Guides

Resources

Deploying a highly-available Nomad cluster with hashi-up!

Building a Nomad cluster on Raspberry Pi running Ubuntu server

Installing HashiCorp Vault on DigitalOcean with hashi-up