Files
taylanbakircioglu 6aae0f4309 Initial commit
2025-10-27 12:14:03 +03:00

148 lines
4.1 KiB
Markdown

# HAProxy Agent Utilities
This directory contains utility scripts for managing HAProxy agents.
## Agent Uninstall Scripts
Complete agent removal scripts that clean up all agent components while leaving HAProxy installation untouched.
### macOS Uninstall Script
**File:** `uninstall-agent-macos.sh`
**Usage:**
```bash
sudo ./uninstall-agent-macos.sh
```
**Features:**
- ✅ Terminates all agent processes (including daemon mode)
- ✅ Stops and removes all launchd services
- ✅ Removes agent binaries from all possible locations
- ✅ Cleans up configuration and log directories
- ✅ Removes temporary files and sockets
- ✅ Comprehensive verification with detailed reporting
- ✅ HAProxy installation remains untouched
**Process Patterns Handled:**
- `haproxy-agent`
- `/usr/local/bin/haproxy-agent`
- `/opt/homebrew/bin/haproxy-agent`
- `com.haproxy.agent`
- `haproxy-agent daemon`
- `bash.*haproxy-agent`
- `nohup.*haproxy-agent`
### Linux Uninstall Script
**File:** `uninstall-agent-linux.sh`
**Usage:**
```bash
sudo ./uninstall-agent-linux.sh
```
**Features:**
- ✅ Terminates all agent processes (including daemon mode)
- ✅ Stops, disables, and masks systemd services
- ✅ Removes agent binaries from all possible locations
- ✅ Cleans up configuration and log directories
- ✅ Removes temporary files and sockets
- ✅ Cleans agent-related cron jobs
- ✅ Reloads systemd daemon
- ✅ Comprehensive verification with detailed reporting
- ✅ HAProxy installation remains untouched
**Process Patterns Handled:**
- `haproxy-agent`
- `/usr/local/bin/haproxy-agent`
- `/usr/bin/haproxy-agent`
- `haproxy-agent.service`
- `haproxy-agent daemon`
- `bash.*haproxy-agent`
- `nohup.*haproxy-agent`
## What Gets Cleaned Up
### Both Scripts Remove:
**Processes:**
- All haproxy-agent processes (normal and daemon mode)
- Background processes started with nohup
- Service-managed processes
**Services:**
- **macOS:** launchd services (com.haproxy.agent, etc.)
- **Linux:** systemd services (haproxy-agent.service, etc.)
**Files and Directories:**
- Agent binaries in all standard locations
- Configuration directories (`/etc/haproxy-agent`, etc.)
- Log directories (`/var/log/haproxy-agent`, etc.)
- PID files (`/var/run/haproxy-agent.pid`, etc.)
- Temporary files and sockets
- Service definition files (plist/service files)
**Additional Linux Cleanup:**
- Agent-related cron jobs
- Systemd service masks and resets
## What Remains Untouched
- ✅ HAProxy installation and binaries
- ✅ HAProxy configuration files
- ✅ HAProxy service/daemon
- ✅ HAProxy logs
- ✅ System HAProxy packages
## Verification
Both scripts provide comprehensive verification:
- **Process Check:** Ensures no agent processes remain
- **Service Check:** Verifies no agent services are loaded
- **Binary Check:** Confirms all agent binaries are removed
- **Detailed Reporting:** Shows any remaining components
## Usage Examples
### Complete Agent Removal (macOS)
```bash
# Download and run the script
sudo ./uninstall-agent-macos.sh
# Verify cleanup
ps aux | grep haproxy-agent
launchctl list | grep haproxy
```
### Complete Agent Removal (Linux)
```bash
# Download and run the script
sudo ./uninstall-agent-linux.sh
# Verify cleanup
ps aux | grep haproxy-agent
systemctl list-units | grep haproxy-agent
systemctl status haproxy-agent # Should show "Unit not found"
```
## Notes
- **Root Required:** Both scripts require root permissions
- **Safe Operation:** HAProxy service remains completely untouched
- **Daemon Mode Support:** Handles modern daemon-mode agents
- **Deep Cleanup:** Uses both targeted and deep search methods
- **Comprehensive:** Covers all possible agent installation patterns
- **Verification:** Provides detailed cleanup verification
## Troubleshooting
If the script reports remaining components:
1. **Remaining Processes:** Check the process list and manually kill if needed
2. **Remaining Services:** Manually stop/disable services if needed
3. **Remaining Binaries:** Check the reported locations and remove manually
The scripts are designed to handle all common scenarios, but in rare cases manual cleanup may be needed for custom installations.