Project

General

Profile

Actions

Idea #21880

open

New installer

Added by Peter Amstutz about 1 month ago. Updated about 1 month ago.

Status:
New
Priority:
Normal
Assigned To:
-
Category:
Deployment
Target version:
Start date:
Due date:
Story points:
-

Description

The current stack of installer.sh + provision.sh + salt + stacks/pillars/formulas increasingly feels over complicated and brittle, in part due to concerns the the salt ecosystem doesn't really seem to be keeping up.

To start the discussion, here's a sketch:

  • Run Terraform and capture the output state such that it can be used directly as input to Ansible
    • Ideally the description of resources is somewhat independent of infrastructure and could be written by hand for fixed on-premises resources as well
    • We want to tag resources with roles at this point
    • Perhaps other cluster configuration could be declared as constants that pass from input to output, so we get one output state that has everything required to deploy the cluster?
  • Run Ansible on the output state produced by Terraform
    • Goes through each role and configures the machines that have that role by writing config files and installing packages
  • When installation is done, also runs diagnostics automatically

FWIW, it seems integration can go various ways

(my feeling about the last two is "ugh" but included for completeness)

Also, since Terraform is under a "Business Software License" we should plan on migrating to OpenTofu https://opentofu.org/

Actions

Also available in: Atom PDF