provisioning/docs/src/operations/installer-system.md
2026-01-12 04:42:18 +00:00

6.8 KiB

Provisioning Platform Installer (v3.5.0)

🚀 Flexible Installation and Configuration System

A comprehensive installer system supporting interactive, headless, and unattended deployment modes with automatic configuration management via TOML and MCP integration.

Installation Modes

1. Interactive TUI Mode

Beautiful terminal user interface with step-by-step guidance.

provisioning-installer

Features:

  • 7 interactive screens with progress tracking
  • Real-time validation and error feedback
  • Visual feedback for each configuration step
  • Beautiful formatting with color and styling
  • Nushell fallback for unsupported terminals

Screens:

  1. Welcome and prerequisites check
  2. Deployment mode selection
  3. Infrastructure provider selection
  4. Configuration details
  5. Resource allocation (CPU, memory)
  6. Security settings
  7. Review and confirm

2. Headless Mode

CLI-only installation without interactive prompts, suitable for scripting.

provisioning-installer --headless --mode solo --yes

Features:

  • Fully automated CLI options
  • All settings via command-line flags
  • No user interaction required
  • Perfect for CI/CD pipelines
  • Verbose output with progress tracking

Common Usage:

# Solo deployment
provisioning-installer --headless --mode solo --provider upcloud --yes

# Multi-user deployment
provisioning-installer --headless --mode multiuser --cpu 4 --memory 8192 --yes

# CI/CD mode
provisioning-installer --headless --mode cicd --config ci-config.toml --yes

3. Unattended Mode

Zero-interaction mode using pre-defined configuration files, ideal for infrastructure automation.

provisioning-installer --unattended --config config.toml

Features:

  • Load all settings from TOML file
  • Complete automation for GitOps workflows
  • No user interaction or prompts
  • Suitable for production deployments
  • Comprehensive logging and audit trails

Deployment Modes

Each mode configures resource allocation and features appropriately:

Mode CPUs Memory Use Case
Solo 2 4 GB Single user development
MultiUser 4 8 GB Team development, testing
CICD 8 16 GB CI/CD pipelines, testing
Enterprise 16 32 GB Production deployment

Configuration System

TOML Configuration

Define installation parameters in TOML format for unattended mode:

[installation]
mode = "solo"  # solo, multiuser, cicd, enterprise
provider = "upcloud"  # upcloud, aws, etc.

[resources]
cpu = 2000  # millicores
memory = 4096  # MB
disk = 50  # GB

[security]
enable_mfa = true
enable_audit = true
tls_enabled = true

[mcp]
enabled = true
endpoint = "http://localhost:9090"

Configuration Loading Priority

Settings are loaded in this order (highest priority wins):

  1. CLI Arguments - Direct command-line flags
  2. Environment Variables - PROVISIONING_* variables
  3. Configuration File - TOML file specified via --config
  4. MCP Integration - AI-powered intelligent defaults
  5. Built-in Defaults - System defaults

MCP Integration

Model Context Protocol integration provides intelligent configuration:

7 AI-Powered Settings Tools:

  • Resource recommendation engine
  • Provider selection helper
  • Security policy suggester
  • Performance optimizer
  • Compliance checker
  • Network configuration advisor
  • Monitoring setup assistant
# Use MCP for intelligent config suggestion
provisioning-installer --unattended --mcp-suggest > config.toml

Deployment Automation

Nushell Scripts

Complete deployment automation scripts for popular container runtimes:

# Docker deployment
./provisioning/platform/installer/deploy/docker.nu --config config.toml

# Podman deployment
./provisioning/platform/installer/deploy/podman.nu --config config.toml

# Kubernetes deployment
./provisioning/platform/installer/deploy/kubernetes.nu --config config.toml

# OrbStack deployment
./provisioning/platform/installer/deploy/orbstack.nu --config config.toml

Self-Installation

Infrastructure components can query MCP and install themselves:

# Taskservs auto-install with dependencies
taskserv install-self kubernetes
taskserv install-self prometheus
taskserv install-self cilium

Command Reference

# Show interactive installer
provisioning-installer

# Show help
provisioning-installer --help

# Show available modes
provisioning-installer --list-modes

# Show available providers
provisioning-installer --list-providers

# List available templates
provisioning-installer --list-templates

# Validate configuration file
provisioning-installer --validate --config config.toml

# Dry-run (check without installing)
provisioning-installer --config config.toml --check

# Full unattended installation
provisioning-installer --unattended --config config.toml

# Headless with specific settings
provisioning-installer --headless --mode solo --provider upcloud --cpu 2 --memory 4096 --yes

Integration Examples

GitOps Workflow

# Define in Git
cat > infrastructure/installer.toml << EOF
[installation]
mode = "multiuser"
provider = "upcloud"

[resources]
cpu = 4
memory = 8192
EOF

# Deploy via CI/CD
provisioning-installer --unattended --config infrastructure/installer.toml

Terraform Integration

# Call installer as part of Terraform provisioning
resource "null_resource" "provisioning_installer" {
  provisioner "local-exec" {
    command = "provisioning-installer --unattended --config ${var.config_file}"
  }
}

Ansible Integration

- name: Run provisioning installer
  shell: provisioning-installer --unattended --config /tmp/config.toml
  vars:
    ansible_python_interpreter: /usr/bin/python3

Configuration Templates

Pre-built templates available in provisioning/config/installer-templates/:

  • solo-dev.toml - Single developer setup
  • team-test.toml - Team testing environment
  • cicd-pipeline.toml - CI/CD integration
  • enterprise-prod.toml - Production deployment
  • kubernetes-ha.toml - High-availability Kubernetes
  • multicloud.toml - Multi-provider setup

Documentation

  • User Guide: user/provisioning-installer-guide.md
  • Deployment Guide: operations/installer-deployment-guide.md
  • Configuration Guide: infrastructure/installer-configuration-guide.md

Help and Support

# Show installer help
provisioning-installer --help

# Show detailed documentation
provisioning help installer

# Validate your configuration
provisioning-installer --validate --config your-config.toml

# Get configuration suggestions from MCP
provisioning-installer --config-suggest

Nushell Fallback

If Ratatui TUI is not available, the installer automatically falls back to:

  • Interactive Nushell prompt system
  • Same functionality, text-based interface
  • Full feature parity with TUI version