177 lines
No EOL
4.8 KiB
Markdown
177 lines
No EOL
4.8 KiB
Markdown
# OGP Agent Unified - Deployment Guide
|
|
|
|
## Overview
|
|
|
|
The unified OGP agent (`ogp_agent_unified.pl`) replaces both the Linux and Windows agent files with a single cross-platform solution that automatically detects the operating system and applies the appropriate platform-specific logic.
|
|
|
|
## Requirements
|
|
|
|
### Linux Systems
|
|
- Perl 5.x or higher
|
|
- Required Perl modules:
|
|
- Frontier::Daemon::OGP::Forking
|
|
- Crypt::XXTEA
|
|
- All standard modules (File::Copy, Path::Class, etc.)
|
|
- Screen utility
|
|
- Sudo access (if using sudo functionality)
|
|
|
|
### Windows/Cygwin Systems
|
|
- Cygwin environment with Perl
|
|
- Same Perl modules as Linux
|
|
- Screen utility (available in Cygwin)
|
|
- Administrative privileges may be required
|
|
|
|
## Installation
|
|
|
|
### Step 1: Backup Existing Agents
|
|
```bash
|
|
# Backup existing agents
|
|
cp _agent-linux/ogp_agent.pl _agent-linux/ogp_agent.pl.bak
|
|
cp _agent-windows/ogp_agent.pl _agent-windows/ogp_agent.pl.bak
|
|
```
|
|
|
|
### Step 2: Deploy Unified Agent
|
|
```bash
|
|
# Copy unified agent to both directories
|
|
cp ogp_agent_unified.pl _agent-linux/ogp_agent.pl
|
|
cp ogp_agent_unified.pl _agent-windows/ogp_agent.pl
|
|
```
|
|
|
|
### Step 3: Verify Configuration Files
|
|
Ensure the following configuration files exist and are properly configured:
|
|
- `Cfg/Config.pm` - Main configuration
|
|
- `Cfg/Preferences.pm` - Preferences
|
|
- `ogp_screenrc` - Screen configuration
|
|
|
|
## Usage
|
|
|
|
The unified agent uses the same command-line interface as the original agents:
|
|
|
|
```bash
|
|
# Standard startup
|
|
perl ogp_agent.pl
|
|
|
|
# With options
|
|
perl ogp_agent.pl --no-startups --log-stdout
|
|
```
|
|
|
|
### Command Line Options
|
|
- `--no-startups`: Don't start any games on agent startup
|
|
- `--clear-startups`: Clear all startup configurations
|
|
- `--log-stdout`: Log to standard output instead of file
|
|
|
|
## Platform Detection
|
|
|
|
The agent automatically detects the platform using Perl's `$^O` variable:
|
|
- Linux: `$^O` matches `linux`
|
|
- Windows/Cygwin: `$^O` matches `MSWin32` or `cygwin`
|
|
|
|
You can verify platform detection by calling the `what_os` XML-RPC method.
|
|
|
|
## Platform-Specific Behaviors
|
|
|
|
### Linux-Specific Features
|
|
- Full sudo functionality with password authentication
|
|
- Automated log rotation
|
|
- Dynamic screen configuration modification
|
|
- Complex file permissions (chmod, setfacl, chattr)
|
|
- Bash script execution with respawn logic
|
|
- Wine environment variable support
|
|
|
|
### Windows/Cygwin-Specific Features
|
|
- No sudo functionality (uses Windows permission model)
|
|
- Static log handling
|
|
- Basic screen session cleanup
|
|
- Simple file permissions
|
|
- Batch file execution with priority/affinity control
|
|
- Cygwin path conversion for Windows paths
|
|
|
|
## Troubleshooting
|
|
|
|
### Common Issues
|
|
|
|
1. **Module Not Found Errors**
|
|
```
|
|
Can't locate Frontier/Daemon/OGP/Forking.pm
|
|
```
|
|
Solution: Install missing Perl modules or ensure the module path is correct.
|
|
|
|
2. **Permission Denied**
|
|
```
|
|
Permission denied accessing steamcmd.sh
|
|
```
|
|
Solution: On Linux, ensure execute permissions are set. The agent will attempt to set them automatically.
|
|
|
|
3. **Platform Detection Issues**
|
|
Test platform detection with:
|
|
```bash
|
|
perl test_unification.pl
|
|
```
|
|
|
|
4. **Path Conversion Issues (Windows)**
|
|
Ensure Cygwin is properly installed and `cygpath` utility is available.
|
|
|
|
### Debug Mode
|
|
Enable debug logging by setting `--log-stdout` option:
|
|
```bash
|
|
perl ogp_agent.pl --log-stdout
|
|
```
|
|
|
|
### Log Files
|
|
- Linux: Standard log file location as configured
|
|
- Windows: Same as Linux, but no automatic rotation
|
|
|
|
## Migration from Separate Agents
|
|
|
|
### For Linux Systems
|
|
1. Stop existing agent: `killall ogp_agent.pl`
|
|
2. Replace with unified agent
|
|
3. Start unified agent: `perl ogp_agent.pl`
|
|
|
|
### For Windows Systems
|
|
1. Stop existing agent in Cygwin
|
|
2. Replace with unified agent
|
|
3. Start unified agent: `perl ogp_agent.pl`
|
|
|
|
## Validation
|
|
|
|
After deployment, validate the unified agent is working correctly:
|
|
|
|
1. **Check Platform Detection**
|
|
```bash
|
|
perl test_unification.pl
|
|
```
|
|
|
|
2. **Verify XML-RPC Service**
|
|
Test that the agent responds to XML-RPC calls on the configured port.
|
|
|
|
3. **Test Game Server Operations**
|
|
Verify that game servers can be started, stopped, and managed normally.
|
|
|
|
## Rollback Procedure
|
|
|
|
If issues occur, rollback to the original agents:
|
|
|
|
```bash
|
|
# Linux rollback
|
|
cp _agent-linux/ogp_agent.pl.bak _agent-linux/ogp_agent.pl
|
|
|
|
# Windows rollback
|
|
cp _agent-windows/ogp_agent.pl.bak _agent-windows/ogp_agent.pl
|
|
```
|
|
|
|
## Support
|
|
|
|
For issues with the unified agent:
|
|
1. Check the troubleshooting section above
|
|
2. Review log files for error messages
|
|
3. Test with the validation scripts provided
|
|
4. Compare behavior with original agents if needed
|
|
|
|
## Benefits of Unified Agent
|
|
|
|
- **Single Codebase**: Easier maintenance and updates
|
|
- **Automatic Platform Detection**: No manual configuration needed
|
|
- **Consistent Feature Set**: New features work on both platforms
|
|
- **Reduced Deployment Complexity**: One file for all environments
|
|
- **Better Testing**: Single codebase easier to test and validate |