Skip to content

Instantly share code, notes, and snippets.

@malnick
Created January 9, 2020 00:33
Show Gist options
  • Save malnick/05a8c804fb512d40024653ad23b8ab17 to your computer and use it in GitHub Desktop.
Save malnick/05a8c804fb512d40024653ad23b8ab17 to your computer and use it in GitHub Desktop.

Vault Installer

Overview

This project is the backend that will eventually be driven by a frontend user interface.

The aim of this project is to guide operators through the installation process.

Decision Tree

One: Choose Architecture

  1. On-Premise
  2. Cloud
  3. Hybrid

Two: Configuration

On-Premise

  1. Presented with [cluster configuration screen](### Cluster Configuration Screen)

Cloud

  1. Choose major cloud provider (AWS, Azure, GCP)
  2. Presented with cloud provider specific configuration (each has own configuration screen):
  3. Optional: migrate secrets from cloud to Vault?
  4. Optional: enable auth methods for this cloud provider?
  5. Optional: enable secrets engines for this cloud provider?
  6. Presented with [cluster configuration screen](### Cluster Configuration Screen)
  7. Note: for a cloud provider, we can probably autofill IPs in this screen based on nodes in specific security groups, VPCs, or other identifiers

Hybrid

This is way more tricky because where you're running the installer process from becomes an issue. Hand wave-y approach here would be mixture of on-prem and cloud installation flow with special preflight checks on connectivity.

Three: Preflight

  1. Check installer connection to system
  2. can we reach nodes on specific ports
  3. is SSH available
  4. do nodes meet host-level prereq's (if not install/configure them)
  5. do nodes meet storage, memory, and CPU requirements
  6. Intra-system checks
  7. Can nodes talk to each other on given ports (streatch goal)

Four: Install + Configure

  1. Package, file, service flow over SSH
  2. Download Vault to each node, configure its config file, start the service
  3. Enable and setup any auth, storage, or secrets plugin's prescribed in the configuration screen

Five: Postflight

  1. is vault running and available
  2. is replication setup as prescribed in configuration screen
  3. can the UI be reached

Screens

Cluster Configuration Screen

  1. Number of primary clusters?
  2. IP addresses for nodes in primary cluster? (for each cluster)
  3. Number of performance replication secondary clusters?
  4. IP addresses for nodes in performance replication secondary cluster? (for each cluster)
  5. Number of disaster recovery secondary clusters?
  6. IP addresses for nodes in disaster recovery secondary cluster? (for each cluster)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment