feat: Major VTL System Upgrade (Auth, Monitoring, CLI, Installer)

- Web UI:
  - Added secure Authentication system (Login, 2 Roles: Admin/Viewer)
  - Added System Monitoring Dashboard (Health, Services, Power Mgmt)
  - Added User Management Interface (Create, Delete, Enable/Disable)
  - Added Device Mapping view in iSCSI tab (lsscsi output)
- Backend:
  - Implemented secure session management (auth.php)
  - Added power management APIs (restart/shutdown appliance)
  - Added device mapping API
- CLI:
  - Created global 'vtl' management tool
  - Added scripts for reliable startup (vtllibrary fix)
- Installer:
  - Updated install.sh with new dependencies (tgt, sudoers, permissions)
  - Included all new components in build-installer.sh
- Docs:
  - Consolidated documentation into docs/ folder
This commit is contained in:
2025-12-09 18:15:36 +00:00
parent 8a0523a265
commit 01080498af
53 changed files with 13399 additions and 425 deletions

452
docs/VTL_CLI_TOOL.md Normal file
View File

@@ -0,0 +1,452 @@
# 🎮 VTL CLI Management Tool
## 📋 Overview
A comprehensive command-line interface tool for managing the Virtual Tape Library system. The `vtl` command provides easy access to all VTL operations from anywhere in the system.
---
## 🚀 Installation
The tool is installed globally and accessible from any directory:
**Location:** `/usr/local/bin/vtl`
**Source:** `/builder/adastra-vtl/scripts/vtl`
**Installation:**
```bash
sudo cp /builder/adastra-vtl/scripts/vtl /usr/local/bin/vtl
sudo chmod +x /usr/local/bin/vtl
```
---
## 📖 Usage
### Basic Syntax
```bash
vtl <command> [options]
```
### Quick Start
```bash
# Check system status
vtl status
# Start all services
vtl start
# Restart MHVTL only
vtl restart-mhvtl
# View help
vtl help
```
---
## 🎯 Commands
### System Status
#### `vtl status` (or just `vtl`)
Show comprehensive system status dashboard
**Output includes:**
- ✅ Services status (mhvtl, apache2, tgt)
- ✅ Component status (vtltape, vtllibrary)
- ✅ SCSI devices (library, drives)
- ✅ Network services (Web UI, iSCSI)
- ✅ Overall health score
**Example:**
```bash
$ vtl status
╔════════════════════════════════════════════════════════════╗
║ VTL System Status Dashboard ║
╚════════════════════════════════════════════════════════════╝
📊 Services Status:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
● mhvtl running (Virtual Tape Library)
● apache2 running (Web UI Server)
● tgt running (iSCSI Target)
🔧 Components:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✓ vtltape 4 processes
✓ vtllibrary running
💾 SCSI Devices:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✓ Library detected (ADASTRA HEPHAESTUS-V - /dev/sg6)
✓ Tape Drives 4 detected
└─ HP Ultrium 6-SCSI → /dev/sg2
└─ HP Ultrium 6-SCSI → /dev/sg3
└─ HP Ultrium 6-SCSI → /dev/sg4
└─ HP Ultrium 6-SCSI → /dev/sg5
🌐 Network Services:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✓ Web UI http://localhost/mhvtl-config/
✓ iSCSI Targets 2 configured
💚 Overall Health:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
● System Status: HEALTHY (6/6 checks passed)
✓ All components operational
```
---
### Service Management
#### `vtl start`
Start all VTL services (mhvtl, apache2, tgt)
```bash
$ vtl start
Starting VTL Services...
Starting mhvtl... ✓
Starting apache2... ✓
Starting tgt... ✓
✓ All services started
```
#### `vtl stop`
Stop all VTL services
```bash
$ vtl stop
Stopping VTL Services...
Stopping mhvtl... ✓
Stopping apache2... ✓
Stopping tgt... ✓
✓ All services stopped
```
#### `vtl restart`
Restart all VTL services and show status
```bash
$ vtl restart
Restarting VTL Services...
Restarting mhvtl... ✓
Restarting apache2... ✓
Restarting tgt... ✓
✓ All services restarted
[Shows status dashboard]
```
---
### Individual Service Management
#### MHVTL Service
```bash
vtl start-mhvtl # Start MHVTL only
vtl stop-mhvtl # Stop MHVTL only
vtl restart-mhvtl # Restart MHVTL and show status
```
#### Web UI (Apache)
```bash
vtl start-web # Start Apache only
vtl stop-web # Stop Apache only
vtl restart-web # Restart Apache only
```
#### iSCSI Target (TGT)
```bash
vtl start-iscsi # Start TGT only
vtl stop-iscsi # Stop TGT only
vtl restart-iscsi # Restart TGT only
```
---
### Device Information
#### `vtl devices`
List all SCSI devices
```bash
$ vtl devices
SCSI Devices:
[0:0:0:0] disk QEMU QEMU HARDDISK 2.5+ /dev/sda /dev/sg0
[2:0:0:0] cd/dvd QEMU QEMU DVD-ROM 2.5+ /dev/sr0 /dev/sg1
[3:0:0:0] mediumx ADASTRA HEPHAESTUS-V 0107 - /dev/sg6
[3:0:1:0] tape HP Ultrium 6-SCSI 0107 - /dev/sg2
[3:0:2:0] tape HP Ultrium 6-SCSI 0107 - /dev/sg3
[3:0:3:0] tape HP Ultrium 6-SCSI 0107 - /dev/sg4
[3:0:4:0] tape HP Ultrium 6-SCSI 0107 - /dev/sg5
```
---
### Logs and Diagnostics
#### `vtl logs [service]`
Show logs for a specific service
```bash
# MHVTL logs
vtl logs mhvtl
# Apache logs
vtl logs apache2
# TGT logs
vtl logs tgt
# Default (mhvtl)
vtl logs
```
**Example:**
```bash
$ vtl logs mhvtl
Logs for mhvtl:
Dec 09 17:10:11 vtl-dev start-mhvtl.sh[65776]: Starting vtltape for drive 11...
Dec 09 17:10:11 vtl-dev /usr/bin/vtltape[65804]: main(): Started /usr/bin/vtltape
Dec 09 17:10:13 vtl-dev start-mhvtl.sh[65776]: Starting vtllibrary for library 10...
Dec 09 17:10:13 vtl-dev systemd[1]: Started mhvtl.service
```
---
### Utility Commands
#### `vtl web`
Show Web UI URL
```bash
$ vtl web
Web UI URL:
http://localhost/mhvtl-config/
```
#### `vtl version`
Show version information
```bash
$ vtl version
VTL Management Tool
Version: 1.0.0
MHVTL: vtltape version 1.7.2
```
#### `vtl help`
Show help message
```bash
$ vtl help
VTL Management Tool v1.0.0
Usage:
vtl <command> [options]
Commands:
[Full help output]
```
---
## 🎨 Features
### Color-Coded Output
- 🟢 **Green** - Running/Healthy
- 🔴 **Red** - Stopped/Error
- 🟡 **Yellow** - Warning/Degraded
- 🔵 **Blue** - Headers/Sections
- 🔵 **Cyan** - Titles
### Health Scoring
System calculates health based on:
- Services running (mhvtl, apache2, tgt)
- Components active (vtltape, vtllibrary)
- Devices detected (library, drives)
**Health Levels:**
- **100%** (6/6) - 🟢 HEALTHY - All systems operational
- **66-99%** (4-5/6) - 🟡 DEGRADED - Some components need attention
- **0-65%** (0-3/6) - 🔴 CRITICAL - Multiple components offline
### Smart Status Display
- Shows device details (vendor, model, device path)
- Counts processes and targets
- Provides actionable information
- Auto-refreshes after service operations
---
## 📊 Common Workflows
### Daily Health Check
```bash
# Quick status check
vtl status
# Or just
vtl
```
### Troubleshooting
```bash
# Check status
vtl status
# View logs
vtl logs mhvtl
# Restart problematic service
vtl restart-mhvtl
# Check status again
vtl status
```
### After Configuration Changes
```bash
# Restart MHVTL to apply changes
vtl restart-mhvtl
# Verify devices
vtl devices
# Check overall status
vtl status
```
### Starting System
```bash
# Start all services
vtl start
# Wait a few seconds, then verify
vtl status
```
### Stopping System
```bash
# Stop all services
vtl stop
# Verify stopped
vtl status
```
---
## 🔧 Integration
### Use in Scripts
```bash
#!/bin/bash
# Check if VTL is healthy
if vtl status | grep -q "HEALTHY"; then
echo "VTL is operational"
else
echo "VTL needs attention"
vtl restart
fi
```
### Monitoring
```bash
# Add to cron for periodic checks
*/5 * * * * /usr/local/bin/vtl status > /var/log/vtl-status.log
```
### Systemd Integration
Already integrated via systemd services. The `vtl` command manages these services.
---
## 📁 File Locations
| Item | Location |
|------|----------|
| **CLI Tool** | `/usr/local/bin/vtl` |
| **Source** | `/builder/adastra-vtl/scripts/vtl` |
| **Config** | `/etc/mhvtl/device.conf` |
| **Web UI** | `/var/www/html/mhvtl-config/` |
| **Logs** | `journalctl -u mhvtl` |
---
## 🎯 Quick Reference
```bash
# Status & Info
vtl # Show status (default)
vtl status # Show status (explicit)
vtl devices # List SCSI devices
vtl web # Show Web UI URL
vtl version # Show version
vtl help # Show help
# All Services
vtl start # Start all
vtl stop # Stop all
vtl restart # Restart all
# MHVTL Only
vtl start-mhvtl # Start MHVTL
vtl stop-mhvtl # Stop MHVTL
vtl restart-mhvtl # Restart MHVTL
# Web UI Only
vtl start-web # Start Apache
vtl stop-web # Stop Apache
vtl restart-web # Restart Apache
# iSCSI Only
vtl start-iscsi # Start TGT
vtl stop-iscsi # Stop TGT
vtl restart-iscsi # Restart TGT
# Logs
vtl logs # MHVTL logs
vtl logs mhvtl # MHVTL logs
vtl logs apache2 # Apache logs
vtl logs tgt # TGT logs
```
---
## ✅ Summary
The `vtl` command provides:
-**Single command** for all VTL operations
-**Beautiful dashboard** with color-coded status
-**Health monitoring** with scoring system
-**Service management** (start/stop/restart)
-**Device listing** and information
-**Log viewing** for troubleshooting
-**Global access** from any directory
-**Easy to use** with intuitive commands
**No more complex systemctl commands or multiple tools - just `vtl`!** 🚀
---
**Version:** 1.0.0
**Date:** December 9, 2025
**Status:** ✅ Production Ready