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:
- Welcome and prerequisites check
- Deployment mode selection
- Infrastructure provider selection
- Configuration details
- Resource allocation (CPU, memory)
- Security settings
- 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):
- CLI Arguments - Direct command-line flags
- Environment Variables -
PROVISIONING_*variables - Configuration File - TOML file specified via
--config - MCP Integration - AI-powered intelligent defaults
- 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 setupteam-test.toml- Team testing environmentcicd-pipeline.toml- CI/CD integrationenterprise-prod.toml- Production deploymentkubernetes-ha.toml- High-availability Kubernetesmulticloud.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