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:
452
docs/VTL_CLI_TOOL.md
Normal file
452
docs/VTL_CLI_TOOL.md
Normal 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
|
||||
Reference in New Issue
Block a user