Skip to content

Orchestrator Tools

Overview

The mylab/ directory contains the orchestrator - a set of tools that automate deployments across Solti collections.

Components: - manage-svc.sh - Service lifecycle (deploy/remove/prepare) - svc-exec.sh - Task execution (verify/configure) - deploy-ispconfig3-workflow.sh - Automated workflow with validation - inventory.yml - Host registry and configuration - mylab/data/ - Service tokens, credentials, configs (site-specific) - mylab/playbooks/ - Deployment playbooks (site-specific)

manage-svc.sh

Service lifecycle management tool.

Usage:

./manage-svc.sh <action> <service>

Actions: - deploy - Deploy service using playbook - remove - Remove service - prepare - Prepare environment (install dependencies)

Example:

# Deploy InfluxDB on monitor11
./manage-svc.sh deploy monitor11-metrics

# Deploy Alloy on ispconfig3
./manage-svc.sh deploy ispconfig3-alloy

svc-exec.sh

Task execution tool for running specific tasks without full deployment.

Usage:

./svc-exec.sh <task> <service>

Tasks: - verify - Run verification checks - configure - Apply configuration changes - restart - Restart services

Example:

# Verify Alloy configuration
./svc-exec.sh verify ispconfig3-alloy

# Restart Telegraf service
./svc-exec.sh restart monitor11-metrics

deploy-ispconfig3-workflow.sh

Automated deployment workflow with built-in validation.

Features: - Pre-deployment checks - Automated deployment steps - Post-deployment verification - Rollback on failure

Usage:

./deploy-ispconfig3-workflow.sh

inventory.yml

Host registry and configuration for all managed systems.

Structure:

all:
  children:
    monitoring_servers:
      hosts:
        monitor11.example.com:
          # Server-specific vars

    monitoring_clients:
      hosts:
        ispconfig3-server.example.com:
          # Client-specific vars

Data Directory (mylab/data/)

Site-specific data that should not be committed to git:

  • Service tokens (API keys, credentials)
  • TLS certificates
  • Custom configuration files
  • Secrets and passwords

Security: Use .gitignore to exclude sensitive data.

Playbooks Directory (mylab/playbooks/)

Site-specific playbooks that tie together collection roles:

  • svc-monitor11-metrics.yml - InfluxDB + Telegraf on monitor11
  • svc-monitor11-logs.yml - Loki + Alloy on monitor11
  • ispconfig3-alloy.yml - Alloy configuration for ispconfig3

Example playbook structure:

---
- name: Deploy monitoring server
  hosts: monitor11.example.com
  become: true

  roles:
    - role: jackaltx.solti_monitoring.influxdb
      vars:
        influxdb_s3_endpoint: "{{ vault_s3_endpoint }}"

    - role: jackaltx.solti_monitoring.telegraf
      vars:
        telegraf_output_influxdb: true

Long-term Goal

Extract orchestrator into cleansed reference implementation for public release, removing site-specific details while preserving deployment patterns.