feat: Complete DOS update system with test data routing fix
Implemented comprehensive DOS 6.22 update system for ~30 test stations with critical fix for test data database import routing. ## Major Changes ### DOS Batch Files (7 files) - NWTOC.BAT: Download updates from network to DOS machines - CTONW.BAT v1.2: Upload with separate ProdSW/LOGS routing (CRITICAL FIX) - UPDATE.BAT: Full system backup to network - STAGE.BAT: System file staging for safe updates - REBOOT.BAT: Apply staged updates on reboot - CHECKUPD.BAT: Check for available updates - DEPLOY.BAT: One-time deployment installer for DOS machines ### CTONW v1.2 Critical Fix Fixed test data routing to match AD2 sync script expectations: - Software distribution: C:\ATE\*.EXE -> T:\TS-4R\ProdSW\ (bidirectional) - Test data logging: C:\ATE\8BDATA\*.DAT -> T:\TS-4R\LOGS\8BLOG\ (upload only) - Subdirectory mapping: 8BDATA->8BLOG, DSCDATA->DSCLOG, HVDATA->HVLOG, etc. - Test data now correctly imported to AD2 database via Sync-FromNAS.ps1 ### Deployment Infrastructure - copy-to-ad2.ps1: Automated deployment to AD2 server - DOS_DEPLOYMENT_GUIDE.md: Complete deployment documentation - DEPLOYMENT_GUIDE.md: Technical workflow documentation - credentials.md: Centralized credentials (AD2, NAS, Gitea) ### Analysis & Documentation (15 files) - CTONW_ANALYSIS.md: Comprehensive compliance analysis - CTONW_V1.2_CHANGELOG.md: Detailed v1.2 changes - NWTOC_ANALYSIS.md: Download workflow analysis - DOS_BATCH_ANALYSIS.md: DOS 6.22 compatibility guide - UPDATE_WORKFLOW.md: Backup system workflow - BEHAVIORAL_RULES_INTEGRATION_SUMMARY.md: C: drive integration ### Session Logs - session-logs/2026-01-19-session.md: Complete session documentation ### Conversation Reorganization - Cleaned up 156 imported conversation files - Organized into sessions-by-date structure - Created metadata index and large files guide ## Technical Details ### AD2 → NAS → DOS Sync Flow 1. Admin copies files to AD2: \192.168.0.6\C$\Shares\test\ 2. Sync-FromNAS.ps1 runs every 15 minutes (AD2 → NAS) 3. DOS machines access via T: drive (\D2TESTNAS\test) 4. NWTOC downloads updates, CTONW uploads test data 5. Sync imports test data to AD2 database ### DOS 6.22 Compatibility - No %COMPUTERNAME%, uses %MACHINE% variable - No IF /I, uses multiple case-specific checks - Proper ERRORLEVEL checking (highest values first) - XCOPY /S for subdirectory support - ASCII markers ([OK], [ERROR], [WARNING]) instead of emojis ### File Locations - AD2: C:\Shares\test\COMMON\ProdSW\ (deployed) - NAS: T:\COMMON\ProdSW\ (synced) - DOS: C:\BAT\ (installed) - Logs: T:\TS-4R\LOGS\8BLOG\ (test data for database import) ## Deployment Status ✅ All 7 batch files deployed to AD2 (both COMMON and _COMMON) ⏳ Pending sync to NAS (within 15 minutes) ⏳ Pending pilot deployment on TS-4R 📋 Ready for rollout to ~30 DOS machines ## Breaking Changes CTONW v1.1 → v1.2: Test data now uploads to LOGS folder instead of ProdSW. Existing machines must download v1.2 via NWTOC for proper database import. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
944
DEPLOYMENT_GUIDE.md
Normal file
944
DEPLOYMENT_GUIDE.md
Normal file
@@ -0,0 +1,944 @@
|
||||
# Dataforth DOS Update System - Deployment Guide
|
||||
|
||||
**Version:** 1.0
|
||||
**Date:** 2026-01-19
|
||||
**Target System:** DOS 6.22 with Microsoft Network Client 3.0
|
||||
|
||||
---
|
||||
|
||||
## Table of Contents
|
||||
|
||||
1. [Pre-Deployment Checklist](#pre-deployment-checklist)
|
||||
2. [Network Infrastructure Setup](#network-infrastructure-setup)
|
||||
3. [Deploy Batch Files](#deploy-batch-files)
|
||||
4. [Configure DOS Machines](#configure-dos-machines)
|
||||
5. [Test Update System](#test-update-system)
|
||||
6. [Deploy to All Machines](#deploy-to-all-machines)
|
||||
7. [Post-Deployment Verification](#post-deployment-verification)
|
||||
8. [Troubleshooting](#troubleshooting)
|
||||
|
||||
---
|
||||
|
||||
## Pre-Deployment Checklist
|
||||
|
||||
### Required Information
|
||||
|
||||
- [ ] List of DOS machine names (e.g., TS-4R, TS-7A, TS-12B)
|
||||
- [ ] AD2 workstation IP address: 192.168.0.6
|
||||
- [ ] D2TESTNAS IP address: 192.168.0.9
|
||||
- [ ] SMB1 protocol enabled on NAS: YES / NO
|
||||
- [ ] Sync-FromNAS.ps1 script running on AD2: YES / NO (Scheduled task every 15 min)
|
||||
- [ ] Network credentials verified: YES / NO
|
||||
|
||||
### Required Access
|
||||
|
||||
- [ ] Admin access to AD2 workstation
|
||||
- [ ] SSH access to D2TESTNAS (guru account)
|
||||
- [ ] Physical or remote access to DOS machines
|
||||
- [ ] DattoRMM access (for monitoring)
|
||||
|
||||
### Required Files
|
||||
|
||||
All batch files should be in `D:\ClaudeTools\`:
|
||||
|
||||
- [ ] NWTOC.BAT - Network to Computer update
|
||||
- [ ] CTONW.BAT - Computer to Network upload
|
||||
- [ ] UPDATE.BAT - Full system backup
|
||||
- [ ] STAGE.BAT - System file staging
|
||||
- [ ] REBOOT.BAT - System file application
|
||||
- [ ] CHECKUPD.BAT - Update checker
|
||||
- [ ] STARTNET.BAT - Network startup
|
||||
- [ ] AUTOEXEC.BAT - System startup template
|
||||
|
||||
---
|
||||
|
||||
## Network Infrastructure Setup
|
||||
|
||||
### Step 1: Verify NAS Share Structure
|
||||
|
||||
**On D2TESTNAS (SSH as guru):**
|
||||
|
||||
```bash
|
||||
# Check if test share exists
|
||||
ls -la /mnt/test
|
||||
|
||||
# Create directory structure if needed
|
||||
sudo mkdir -p /mnt/test/COMMON/ProdSW
|
||||
sudo mkdir -p /mnt/test/COMMON/DOS
|
||||
sudo mkdir -p /mnt/test/COMMON/NET
|
||||
|
||||
# Create machine-specific directories
|
||||
sudo mkdir -p /mnt/test/TS-4R/ProdSW
|
||||
sudo mkdir -p /mnt/test/TS-4R/BACKUP
|
||||
sudo mkdir -p /mnt/test/TS-7A/ProdSW
|
||||
sudo mkdir -p /mnt/test/TS-7A/BACKUP
|
||||
sudo mkdir -p /mnt/test/TS-12B/ProdSW
|
||||
sudo mkdir -p /mnt/test/TS-12B/BACKUP
|
||||
|
||||
# Set permissions
|
||||
sudo chmod -R 775 /mnt/test
|
||||
sudo chown -R guru:users /mnt/test
|
||||
```
|
||||
|
||||
### Step 2: Verify AD2 Sync Script
|
||||
|
||||
**IMPORTANT:** Sync runs ON AD2 (not NAS) due to WINS crashes and SSH lockups on NAS.
|
||||
|
||||
**Check sync script exists on AD2:**
|
||||
|
||||
```powershell
|
||||
# RDP or SSH to AD2 (192.168.0.6)
|
||||
# Check if script exists
|
||||
Test-Path "C:\Shares\test\scripts\Sync-FromNAS.ps1"
|
||||
|
||||
# View last sync status
|
||||
Get-Content "C:\Shares\test\_SYNC_STATUS.txt"
|
||||
|
||||
# Check recent log entries
|
||||
Get-Content "C:\Shares\test\scripts\sync-from-nas.log" -Tail 20
|
||||
```
|
||||
|
||||
**Verify Scheduled Task:**
|
||||
|
||||
```powershell
|
||||
# On AD2, check scheduled task
|
||||
Get-ScheduledTask | Where-Object {$_.TaskName -like '*sync*'}
|
||||
|
||||
# View task details
|
||||
Get-ScheduledTask -TaskName "Sync-FromNAS" | Get-ScheduledTaskInfo
|
||||
```
|
||||
|
||||
**Expected scheduled task:**
|
||||
- **Name:** Sync-FromNAS (or similar)
|
||||
- **Runs:** Every 15 minutes
|
||||
- **Script:** `C:\Shares\test\scripts\Sync-FromNAS.ps1`
|
||||
- **User:** INTRANET\sysadmin or local admin
|
||||
|
||||
**How the sync works:**
|
||||
|
||||
1. **PULL (NAS → AD2):** Test results from DOS machines
|
||||
- `/data/test/TS-XX/LOGS/*.DAT` → `C:\Shares\test\TS-XX\LOGS\`
|
||||
- `/data/test/TS-XX/Reports/*.TXT` → `C:\Shares\test\TS-XX\Reports\`
|
||||
- Files are imported to database after sync
|
||||
- Files are deleted from NAS after successful sync
|
||||
|
||||
2. **PUSH (AD2 → NAS):** Software updates for DOS machines
|
||||
- `C:\Shares\test\COMMON\ProdSW\*` → `/data/test/COMMON/ProdSW/`
|
||||
- `C:\Shares\test\TS-XX\ProdSW\*` → `/data/test/TS-XX/ProdSW/`
|
||||
- `C:\Shares\test\UPDATE.BAT` → `/data/test/UPDATE.BAT`
|
||||
- `C:\Shares\test\TS-XX\TODO.BAT` → `/data/test/TS-XX/TODO.BAT` (one-shot tasks)
|
||||
|
||||
**Status file location:**
|
||||
- `C:\Shares\test\_SYNC_STATUS.txt` (monitored by DattoRMM)
|
||||
- Shows last sync time, files transferred, error count
|
||||
|
||||
**If scheduled task doesn't exist:**
|
||||
|
||||
Contact Dataforth IT administrator - scheduled task should have been created when sync was moved from NAS to AD2 (January 2026) to resolve WINS crashes.
|
||||
```
|
||||
|
||||
### Step 3: Verify SMB1 Protocol
|
||||
|
||||
**Check SMB1 is enabled on NAS:**
|
||||
|
||||
```bash
|
||||
# Check Samba configuration
|
||||
grep "min protocol" /etc/samba/smb.conf
|
||||
|
||||
# Should show:
|
||||
# min protocol = NT1
|
||||
# Or similar (NT1 = SMB1)
|
||||
|
||||
# If not present, add to [global] section:
|
||||
sudo nano /etc/samba/smb.conf
|
||||
```
|
||||
|
||||
Add to `[global]` section:
|
||||
```
|
||||
[global]
|
||||
min protocol = NT1
|
||||
max protocol = SMB3
|
||||
client min protocol = NT1
|
||||
```
|
||||
|
||||
```bash
|
||||
# Restart Samba
|
||||
sudo systemctl restart smbd
|
||||
|
||||
# Verify from Windows:
|
||||
# Open \\172.16.3.30 in File Explorer
|
||||
# Should be able to access without errors
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Deploy Batch Files
|
||||
|
||||
### Step 1: Copy Batch Files to AD2
|
||||
|
||||
**From Windows workstation with D:\ClaudeTools access:**
|
||||
|
||||
Copy batch files to AD2 COMMON directory:
|
||||
|
||||
```powershell
|
||||
# Set source and destination
|
||||
$source = "D:\ClaudeTools"
|
||||
$dest = "\\AD2\test\COMMON\ProdSW"
|
||||
|
||||
# Create destination directory if needed
|
||||
New-Item -ItemType Directory -Path $dest -Force
|
||||
|
||||
# Copy batch files
|
||||
Copy-Item "$source\NWTOC.BAT" "$dest\" -Force
|
||||
Copy-Item "$source\CTONW.BAT" "$dest\" -Force
|
||||
Copy-Item "$source\UPDATE.BAT" "$dest\" -Force
|
||||
Copy-Item "$source\STAGE.BAT" "$dest\" -Force
|
||||
Copy-Item "$source\CHECKUPD.BAT" "$dest\" -Force
|
||||
Copy-Item "$source\STARTNET.BAT" "$dest\" -Force
|
||||
|
||||
# Don't copy REBOOT.BAT (it's auto-generated by STAGE.BAT)
|
||||
|
||||
# Verify
|
||||
Get-ChildItem $dest -Filter *.BAT
|
||||
```
|
||||
|
||||
### Step 2: Wait for NAS Sync
|
||||
|
||||
Wait up to 15 minutes for sync, or force sync:
|
||||
|
||||
```bash
|
||||
# On NAS (SSH)
|
||||
sudo /root/sync-to-ad2.sh
|
||||
|
||||
# Check status
|
||||
cat /mnt/test/_SYNC_STATUS.txt
|
||||
```
|
||||
|
||||
### Step 3: Verify Files on NAS
|
||||
|
||||
**From Windows, access NAS directly:**
|
||||
|
||||
```
|
||||
\\172.16.3.30\test\COMMON\ProdSW\
|
||||
|
||||
Should contain:
|
||||
NWTOC.BAT
|
||||
CTONW.BAT
|
||||
UPDATE.BAT
|
||||
STAGE.BAT
|
||||
CHECKUPD.BAT
|
||||
STARTNET.BAT
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Configure DOS Machines
|
||||
|
||||
### Step 1: Access DOS Machine
|
||||
|
||||
**Physical access or remote console (TS-4R example):**
|
||||
|
||||
```
|
||||
Power on machine
|
||||
Boot to DOS
|
||||
Wait for C:\> prompt
|
||||
```
|
||||
|
||||
### Step 2: Verify Network Client
|
||||
|
||||
Check if Microsoft Network Client 3.0 is installed:
|
||||
|
||||
```bat
|
||||
C:\> DIR C:\NET
|
||||
```
|
||||
|
||||
Should show:
|
||||
- STARTNET.BAT
|
||||
- NET.EXE
|
||||
- PROTOCOL.INI
|
||||
- *.DOS files (network drivers)
|
||||
|
||||
If not installed, install Microsoft Network Client 3.0 first (separate procedure).
|
||||
|
||||
### Step 3: Update AUTOEXEC.BAT
|
||||
|
||||
**Edit AUTOEXEC.BAT to add MACHINE variable:**
|
||||
|
||||
```bat
|
||||
C:\> EDIT C:\AUTOEXEC.BAT
|
||||
```
|
||||
|
||||
**Add these lines near the top (after @ECHO OFF):**
|
||||
|
||||
```bat
|
||||
@ECHO OFF
|
||||
REM AUTOEXEC.BAT - DOS 6.22 startup script for Dataforth test machines
|
||||
|
||||
REM *** ADD THIS LINE - Change TS-4R to actual machine name ***
|
||||
SET MACHINE=TS-4R
|
||||
|
||||
REM Set DOS path
|
||||
SET PATH=C:\DOS;C:\NET;C:\BAT;C:\
|
||||
|
||||
REM Set command prompt
|
||||
PROMPT $P$G
|
||||
|
||||
REM Set temporary directory
|
||||
SET TEMP=C:\TEMP
|
||||
SET TMP=C:\TEMP
|
||||
|
||||
REM Create required directories
|
||||
IF NOT EXIST C:\TEMP\NUL MD C:\TEMP
|
||||
IF NOT EXIST C:\BAT\NUL MD C:\BAT
|
||||
IF NOT EXIST C:\ATE\NUL MD C:\ATE
|
||||
|
||||
REM Start network client and map drives
|
||||
ECHO Starting network client...
|
||||
IF EXIST C:\NET\STARTNET.BAT CALL C:\NET\STARTNET.BAT
|
||||
|
||||
REM Check if network started
|
||||
IF NOT EXIST T:\NUL GOTO NET_FAILED
|
||||
ECHO [OK] Network drives mapped
|
||||
ECHO T: = \\D2TESTNAS\test
|
||||
ECHO X: = \\D2TESTNAS\datasheets
|
||||
ECHO.
|
||||
ECHO System ready.
|
||||
ECHO.
|
||||
GOTO DONE
|
||||
|
||||
:NET_FAILED
|
||||
ECHO [WARNING] Network drive mapping failed
|
||||
ECHO To start network manually: C:\NET\STARTNET.BAT
|
||||
ECHO.
|
||||
PAUSE Press any key to continue...
|
||||
|
||||
:DONE
|
||||
```
|
||||
|
||||
**Save and exit EDIT (Alt+F, X, Yes)**
|
||||
|
||||
### Step 4: Create/Update STARTNET.BAT
|
||||
|
||||
**Edit C:\NET\STARTNET.BAT:**
|
||||
|
||||
```bat
|
||||
C:\> EDIT C:\NET\STARTNET.BAT
|
||||
```
|
||||
|
||||
**Contents:**
|
||||
|
||||
```bat
|
||||
@ECHO OFF
|
||||
REM STARTNET.BAT - Start Microsoft Network Client and map drives
|
||||
|
||||
REM Start network client
|
||||
NET START
|
||||
IF ERRORLEVEL 1 GOTO NET_START_FAILED
|
||||
|
||||
ECHO [OK] Network client started
|
||||
|
||||
REM Map T: drive to test share
|
||||
NET USE T: \\D2TESTNAS\test /YES
|
||||
IF ERRORLEVEL 1 GOTO T_DRIVE_FAILED
|
||||
ECHO [OK] T: mapped to \\D2TESTNAS\test
|
||||
|
||||
REM Map X: drive to datasheets share
|
||||
NET USE X: \\D2TESTNAS\datasheets /YES
|
||||
IF ERRORLEVEL 1 GOTO X_DRIVE_FAILED
|
||||
ECHO [OK] X: mapped to \\D2TESTNAS\datasheets
|
||||
|
||||
GOTO END
|
||||
|
||||
:NET_START_FAILED
|
||||
ECHO [ERROR] Network client failed to start
|
||||
ECHO Check network cable and CONFIG.SYS drivers
|
||||
GOTO END
|
||||
|
||||
:T_DRIVE_FAILED
|
||||
ECHO [ERROR] Failed to map T: drive
|
||||
ECHO Check if \\D2TESTNAS is online
|
||||
GOTO END
|
||||
|
||||
:X_DRIVE_FAILED
|
||||
ECHO [ERROR] Failed to map X: drive
|
||||
ECHO Check if \\D2TESTNAS\datasheets exists
|
||||
GOTO END
|
||||
|
||||
:END
|
||||
```
|
||||
|
||||
**Save and exit**
|
||||
|
||||
### Step 5: Reboot DOS Machine
|
||||
|
||||
```bat
|
||||
C:\> Press Ctrl+Alt+Del
|
||||
|
||||
[Machine reboots]
|
||||
[AUTOEXEC.BAT runs]
|
||||
[STARTNET.BAT maps network drives]
|
||||
[Should see "Network drives mapped" message]
|
||||
```
|
||||
|
||||
### Step 6: Verify Network Access
|
||||
|
||||
```bat
|
||||
C:\> DIR T:\
|
||||
|
||||
Should show:
|
||||
COMMON
|
||||
TS-4R
|
||||
_SYNC_STATUS.txt
|
||||
|
||||
C:\> DIR T:\COMMON\ProdSW
|
||||
|
||||
Should show batch files:
|
||||
NWTOC.BAT
|
||||
CTONW.BAT
|
||||
UPDATE.BAT
|
||||
STAGE.BAT
|
||||
CHECKUPD.BAT
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Test Update System
|
||||
|
||||
### Test 1: Initial Update Pull (NWTOC)
|
||||
|
||||
**On DOS machine (TS-4R):**
|
||||
|
||||
```bat
|
||||
C:\> NWTOC
|
||||
|
||||
Expected output:
|
||||
==============================================================
|
||||
Update: TS-4R from Network
|
||||
==============================================================
|
||||
Source: T:\COMMON and T:\TS-4R
|
||||
Target: C:\BAT, C:\ATE, C:\NET
|
||||
==============================================================
|
||||
|
||||
[1/4] Updating batch files from T:\COMMON\ProdSW...
|
||||
Creating backups (.BAK files)...
|
||||
Copying updated files...
|
||||
[OK] Batch files updated from COMMON
|
||||
|
||||
[2/4] Updating machine-specific files from T:\TS-4R\ProdSW...
|
||||
[SKIP] No machine-specific directory (T:\TS-4R\ProdSW)
|
||||
|
||||
[3/4] Checking for system file updates...
|
||||
[OK] No system file updates
|
||||
|
||||
[4/4] Checking for network client updates...
|
||||
[OK] No network client updates
|
||||
|
||||
==============================================================
|
||||
Update Complete
|
||||
==============================================================
|
||||
|
||||
Files updated from:
|
||||
T:\COMMON\ProdSW → C:\BAT
|
||||
T:\TS-4R\ProdSW → C:\BAT and C:\ATE
|
||||
```
|
||||
|
||||
**Verify files were copied:**
|
||||
|
||||
```bat
|
||||
C:\> DIR C:\BAT\*.BAT
|
||||
|
||||
Should show:
|
||||
NWTOC.BAT
|
||||
CTONW.BAT
|
||||
UPDATE.BAT
|
||||
STAGE.BAT
|
||||
CHECKUPD.BAT
|
||||
```
|
||||
|
||||
### Test 2: Update Check (CHECKUPD)
|
||||
|
||||
```bat
|
||||
C:\> CHECKUPD
|
||||
|
||||
Expected output:
|
||||
==============================================================
|
||||
Update Check: TS-4R
|
||||
==============================================================
|
||||
|
||||
[1/3] Checking T:\COMMON\ProdSW for batch file updates...
|
||||
[OK] No updates in COMMON
|
||||
|
||||
[2/3] Checking T:\TS-4R\ProdSW for machine-specific updates...
|
||||
[SKIP] T:\TS-4R\ProdSW not found
|
||||
|
||||
[3/3] Checking T:\COMMON\DOS for system file updates...
|
||||
[OK] No system file updates
|
||||
|
||||
==============================================================
|
||||
Update Summary
|
||||
==============================================================
|
||||
|
||||
Available updates:
|
||||
Common files: 0
|
||||
Machine-specific files: 0
|
||||
System files: 0
|
||||
-----------------------------------
|
||||
Total: 0
|
||||
|
||||
Status: All files are up to date
|
||||
```
|
||||
|
||||
### Test 3: Full Backup (UPDATE)
|
||||
|
||||
```bat
|
||||
C:\> UPDATE
|
||||
|
||||
Expected output:
|
||||
==============================================================
|
||||
Backup: Machine TS-4R
|
||||
==============================================================
|
||||
Source: C:\
|
||||
Target: T:\TS-4R\BACKUP
|
||||
|
||||
Checking network drive T:...
|
||||
[OK] T: drive accessible
|
||||
[OK] Backup directory ready
|
||||
|
||||
Starting backup...
|
||||
[OK] Backup completed successfully
|
||||
|
||||
Files backed up to: T:\TS-4R\BACKUP
|
||||
```
|
||||
|
||||
**Verify backup:**
|
||||
|
||||
```bat
|
||||
C:\> DIR T:\TS-4R\BACKUP
|
||||
|
||||
Should mirror C:\ structure:
|
||||
DOS
|
||||
NET
|
||||
BAT
|
||||
ATE
|
||||
TEMP
|
||||
AUTOEXEC.BAT
|
||||
CONFIG.SYS
|
||||
```
|
||||
|
||||
### Test 4: Upload to Network (CTONW)
|
||||
|
||||
**Create test file:**
|
||||
|
||||
```bat
|
||||
C:\> EDIT C:\BAT\TEST.BAT
|
||||
```
|
||||
|
||||
**Contents:**
|
||||
```bat
|
||||
@ECHO OFF
|
||||
ECHO This is a test file
|
||||
PAUSE
|
||||
```
|
||||
|
||||
**Save and upload:**
|
||||
|
||||
```bat
|
||||
C:\> CTONW MACHINE
|
||||
|
||||
Expected output:
|
||||
==============================================================
|
||||
Upload: TS-4R to Network
|
||||
==============================================================
|
||||
Source: C:\BAT, C:\ATE
|
||||
Target: T:\TS-4R\ProdSW
|
||||
Target type: MACHINE
|
||||
==============================================================
|
||||
|
||||
[OK] Target directory ready: T:\TS-4R\ProdSW
|
||||
|
||||
[1/2] Uploading batch files from C:\BAT...
|
||||
Creating backups on network (.BAK files)...
|
||||
Copying files to T:\TS-4R\ProdSW...
|
||||
[OK] Batch files uploaded
|
||||
|
||||
[2/2] Uploading programs and data from C:\ATE...
|
||||
[OK] Programs uploaded
|
||||
|
||||
==============================================================
|
||||
Upload Complete
|
||||
==============================================================
|
||||
```
|
||||
|
||||
**Verify upload:**
|
||||
|
||||
```bat
|
||||
C:\> DIR T:\TS-4R\ProdSW
|
||||
|
||||
Should show:
|
||||
TEST.BAT
|
||||
```
|
||||
|
||||
### Test 5: System File Update (STAGE/REBOOT)
|
||||
|
||||
**Create test AUTOEXEC.NEW:**
|
||||
|
||||
```bat
|
||||
C:\> COPY C:\AUTOEXEC.BAT C:\AUTOEXEC.NEW
|
||||
C:\> EDIT C:\AUTOEXEC.NEW
|
||||
```
|
||||
|
||||
**Add a comment to identify this as test version:**
|
||||
|
||||
```bat
|
||||
@ECHO OFF
|
||||
REM AUTOEXEC.BAT - DOS 6.22 startup script
|
||||
REM *** TEST VERSION - Updated 2026-01-19 ***
|
||||
```
|
||||
|
||||
**Save and copy to network:**
|
||||
|
||||
```bat
|
||||
C:\> COPY C:\AUTOEXEC.NEW T:\COMMON\DOS\AUTOEXEC.NEW
|
||||
```
|
||||
|
||||
**Run update:**
|
||||
|
||||
```bat
|
||||
C:\> NWTOC
|
||||
|
||||
[Will detect AUTOEXEC.NEW]
|
||||
[Will call STAGE.BAT automatically]
|
||||
|
||||
Expected output:
|
||||
...
|
||||
[3/4] Checking for system file updates...
|
||||
[FOUND] System file updates available
|
||||
Staging AUTOEXEC.BAT and/or CONFIG.SYS updates...
|
||||
|
||||
==============================================================
|
||||
Staging System File Updates
|
||||
==============================================================
|
||||
[STAGED] C:\AUTOEXEC.NEW → Will replace AUTOEXEC.BAT
|
||||
==============================================================
|
||||
|
||||
[1/3] Backing up current system files...
|
||||
[OK] C:\AUTOEXEC.BAT → C:\AUTOEXEC.SAV
|
||||
|
||||
[2/3] Creating reboot update script...
|
||||
[OK] C:\BAT\REBOOT.BAT created
|
||||
|
||||
[3/3] Modifying AUTOEXEC.BAT for one-time reboot update...
|
||||
[OK] AUTOEXEC.BAT modified to run update on next boot
|
||||
|
||||
==============================================================
|
||||
REBOOT REQUIRED
|
||||
==============================================================
|
||||
|
||||
To apply updates now:
|
||||
1. Press Ctrl+Alt+Del to reboot
|
||||
|
||||
Press any key to return to DOS...
|
||||
```
|
||||
|
||||
**Reboot machine:**
|
||||
|
||||
```bat
|
||||
C:\> Press Ctrl+Alt+Del
|
||||
|
||||
[Machine reboots]
|
||||
[AUTOEXEC.BAT calls REBOOT.BAT]
|
||||
|
||||
Expected output during boot:
|
||||
==============================================================
|
||||
Applying System Updates
|
||||
==============================================================
|
||||
|
||||
[1/2] Updating AUTOEXEC.BAT...
|
||||
[OK] AUTOEXEC.BAT updated
|
||||
|
||||
==============================================================
|
||||
System Updates Applied
|
||||
==============================================================
|
||||
|
||||
Backup files saved:
|
||||
C:\AUTOEXEC.SAV - Previous AUTOEXEC.BAT
|
||||
C:\CONFIG.SAV - Previous CONFIG.SYS
|
||||
|
||||
To rollback changes:
|
||||
COPY C:\AUTOEXEC.SAV C:\AUTOEXEC.BAT
|
||||
|
||||
Press any key to continue boot...
|
||||
```
|
||||
|
||||
**Verify update:**
|
||||
|
||||
```bat
|
||||
C:\> TYPE C:\AUTOEXEC.BAT | FIND "TEST VERSION"
|
||||
|
||||
Should show:
|
||||
REM *** TEST VERSION - Updated 2026-01-19 ***
|
||||
```
|
||||
|
||||
**Rollback test:**
|
||||
|
||||
```bat
|
||||
C:\> COPY C:\AUTOEXEC.SAV C:\AUTOEXEC.BAT
|
||||
C:\> Press Ctrl+Alt+Del to reboot
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Deploy to All Machines
|
||||
|
||||
### Deployment Order
|
||||
|
||||
1. **Test machine:** TS-4R (already done above)
|
||||
2. **Pilot machines:** TS-7A, TS-12B (next 2-3 machines)
|
||||
3. **Full rollout:** All remaining machines
|
||||
|
||||
### For Each Machine
|
||||
|
||||
**Repeat these steps for each DOS machine:**
|
||||
|
||||
1. **Update AUTOEXEC.BAT:**
|
||||
```bat
|
||||
C:\> EDIT C:\AUTOEXEC.BAT
|
||||
[Add: SET MACHINE=TS-7A] # Change to actual machine name
|
||||
[Save and exit]
|
||||
```
|
||||
|
||||
2. **Reboot to activate network:**
|
||||
```bat
|
||||
C:\> Press Ctrl+Alt+Del
|
||||
```
|
||||
|
||||
3. **Verify network:**
|
||||
```bat
|
||||
C:\> DIR T:\
|
||||
[Should show COMMON, machine directories]
|
||||
```
|
||||
|
||||
4. **Initial update:**
|
||||
```bat
|
||||
C:\> NWTOC
|
||||
[Pulls all batch files from network]
|
||||
```
|
||||
|
||||
5. **Create backup:**
|
||||
```bat
|
||||
C:\> UPDATE
|
||||
[Backs up to T:\[MACHINE]\BACKUP]
|
||||
```
|
||||
|
||||
6. **Verify:**
|
||||
```bat
|
||||
C:\> DIR C:\BAT\*.BAT
|
||||
[Should show all batch files]
|
||||
|
||||
C:\> CHECKUPD
|
||||
[Should show "All files are up to date"]
|
||||
```
|
||||
|
||||
### Create Machine-Specific Directories
|
||||
|
||||
**On AD2 or via SSH to NAS:**
|
||||
|
||||
```bash
|
||||
# For each machine, create directories
|
||||
sudo mkdir -p /mnt/test/TS-7A/ProdSW
|
||||
sudo mkdir -p /mnt/test/TS-7A/BACKUP
|
||||
|
||||
sudo mkdir -p /mnt/test/TS-12B/ProdSW
|
||||
sudo mkdir -p /mnt/test/TS-12B/BACKUP
|
||||
|
||||
# Set permissions
|
||||
sudo chmod -R 775 /mnt/test
|
||||
sudo chown -R guru:users /mnt/test
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Post-Deployment Verification
|
||||
|
||||
### Verification Checklist
|
||||
|
||||
For each DOS machine:
|
||||
|
||||
- [ ] MACHINE variable set correctly in AUTOEXEC.BAT
|
||||
- [ ] Network drives map on boot (T: and X:)
|
||||
- [ ] NWTOC downloads files successfully
|
||||
- [ ] UPDATE backs up to network
|
||||
- [ ] CHECKUPD reports status correctly
|
||||
- [ ] CTONW uploads to network
|
||||
- [ ] System file updates work (if tested)
|
||||
|
||||
### DattoRMM Monitoring
|
||||
|
||||
**Set up monitoring for:**
|
||||
|
||||
1. **Sync status:**
|
||||
- Monitor: `\\AD2\test\_SYNC_STATUS.txt`
|
||||
- Alert if: File age > 30 minutes
|
||||
- Alert if: Contains "ERROR"
|
||||
|
||||
2. **Backup status:**
|
||||
- Monitor: `\\AD2\test\TS-*\BACKUP` directories
|
||||
- Alert if: No files modified in 7 days
|
||||
|
||||
3. **NAS availability:**
|
||||
- Monitor: PING 172.16.3.30
|
||||
- Alert if: Down for > 5 minutes
|
||||
|
||||
### Test Update Distribution
|
||||
|
||||
**Deploy test batch file to all machines:**
|
||||
|
||||
1. **Create TEST-ALL.BAT:**
|
||||
```bat
|
||||
@ECHO OFF
|
||||
ECHO Test file deployed to all machines
|
||||
ECHO Machine: %MACHINE%
|
||||
ECHO Date: 2026-01-19
|
||||
PAUSE
|
||||
```
|
||||
|
||||
2. **Copy to COMMON:**
|
||||
```powershell
|
||||
Copy-Item "C:\Temp\TEST-ALL.BAT" "\\AD2\test\COMMON\ProdSW\" -Force
|
||||
```
|
||||
|
||||
3. **Wait for sync (15 min) or force:**
|
||||
```bash
|
||||
sudo /root/sync-to-ad2.sh
|
||||
```
|
||||
|
||||
4. **On each DOS machine:**
|
||||
```bat
|
||||
C:\> CHECKUPD
|
||||
[Should show 1 update available]
|
||||
|
||||
C:\> NWTOC
|
||||
[Should download TEST-ALL.BAT]
|
||||
|
||||
C:\> C:\BAT\TEST-ALL.BAT
|
||||
[Should run correctly]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Problem: Network drives don't map on boot
|
||||
|
||||
**Symptoms:**
|
||||
- T: and X: drives not available after boot
|
||||
- STARTNET.BAT shows errors
|
||||
|
||||
**Solutions:**
|
||||
|
||||
1. **Check network cable:**
|
||||
```bat
|
||||
C:\> NET VIEW
|
||||
[Should show \\D2TESTNAS]
|
||||
```
|
||||
|
||||
2. **Manual map:**
|
||||
```bat
|
||||
C:\> NET USE T: \\D2TESTNAS\test /YES
|
||||
C:\> NET USE X: \\D2TESTNAS\datasheets /YES
|
||||
```
|
||||
|
||||
3. **Check PROTOCOL.INI:**
|
||||
```bat
|
||||
C:\> TYPE C:\NET\PROTOCOL.INI
|
||||
[Verify computername, workgroup settings]
|
||||
```
|
||||
|
||||
### Problem: NWTOC says "MACHINE variable not set"
|
||||
|
||||
**Solution:**
|
||||
|
||||
```bat
|
||||
C:\> EDIT C:\AUTOEXEC.BAT
|
||||
[Add: SET MACHINE=TS-4R]
|
||||
[Save]
|
||||
|
||||
C:\> SET MACHINE=TS-4R
|
||||
C:\> NWTOC
|
||||
```
|
||||
|
||||
### Problem: Sync not working between AD2 and NAS
|
||||
|
||||
**Check sync status:**
|
||||
|
||||
```bash
|
||||
# On NAS
|
||||
cat /mnt/test/_SYNC_STATUS.txt
|
||||
|
||||
# Check sync log
|
||||
tail -f /var/log/sync-to-ad2.log
|
||||
|
||||
# Force sync
|
||||
sudo /root/sync-to-ad2.sh
|
||||
```
|
||||
|
||||
**Common issues:**
|
||||
|
||||
1. **AD2 share not accessible:**
|
||||
```bash
|
||||
# Test mount
|
||||
sudo mount -t cifs //192.168.1.XXX/test /mnt/ad2-test -o credentials=/root/.smbcredentials,vers=1.0
|
||||
```
|
||||
|
||||
2. **Credentials incorrect:**
|
||||
```bash
|
||||
# Check credentials file
|
||||
sudo cat /root/.smbcredentials
|
||||
# Should contain:
|
||||
# username=admin
|
||||
# password=xxx
|
||||
```
|
||||
|
||||
3. **Firewall blocking:**
|
||||
```bash
|
||||
# Test connectivity
|
||||
ping 192.168.1.XXX # AD2 IP
|
||||
telnet 192.168.1.XXX 445 # SMB port
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Summary
|
||||
|
||||
After successful deployment:
|
||||
|
||||
1. All DOS machines have MACHINE variable set
|
||||
2. All machines can access T: and X: drives
|
||||
3. NWTOC pulls updates from network
|
||||
4. UPDATE backs up to network
|
||||
5. System file updates work safely
|
||||
6. Sync between AD2 and NAS is automatic
|
||||
7. DattoRMM monitors sync status
|
||||
|
||||
**Commands available on all machines:**
|
||||
|
||||
```
|
||||
NWTOC - Download updates from network
|
||||
CTONW - Upload local changes to network
|
||||
UPDATE - Backup entire C:\ to network
|
||||
CHECKUPD - Check for available updates
|
||||
```
|
||||
|
||||
**Files automatically backed up:**
|
||||
|
||||
- Batch files: C:\BAT\*.BAK
|
||||
- System files: C:\AUTOEXEC.SAV, C:\CONFIG.SAV
|
||||
- Full backup: T:\[MACHINE]\BACKUP\
|
||||
|
||||
---
|
||||
|
||||
**Deployment Date:** __________
|
||||
**Deployed By:** __________
|
||||
**Machines Deployed:** ____ / ____
|
||||
|
||||
**End of Deployment Guide**
|
||||
Reference in New Issue
Block a user