Easily install and uninstall essential DevOps tools on Linux & Windows with a single script! Whether you're a DevOps Engineer, Cloud Enthusiast, or System Administrator, this toolkit automates setup and cleanup of your environment β saving time and effort.
π SECURITY-HARDENED v3.5.0 - Now with enterprise-grade security and command injection protection!
β
One-Click Installation & Uninstallation β Set up or clean up all required DevOps tools effortlessly.
β
Multi-OS Support β Works on Ubuntu, Debian, CentOS, Fedora, Arch, Alpine & Windows.
β
Auto-Detection β Automatically detects your OS and applies the correct package manager.
β
Interactive Categorized Menus β Select tools by number, range (1-5), list (2,4) or all β with live queue feedback.
β
CLI & Automation Friendly β Every script supports non-interactive modes for pipelines and batch runs (e.g. devops.sh install, install_devops_tools.ps1 -Install Terraform,Git).
β
Dry Run Mode Everywhere β Preview what would be installed/uninstalled on both Linux & Windows before changing anything.
β
Idempotent Installs β Tools that already validate as installed are skipped automatically (opt-out with -Reinstall), so re-runs are always safe.
β
Retry Failed Installs β Resume or repair partial runs from the state file (--retry-failed on Linux, or a retry prompt on Windows).
β
Tool Health Verification β Re-check every installed tool against PATH at any time from the launcher (verify action).
β
Advanced Cleanup β Stops services, removes configs, logs, and binaries cleanly.
β
Timestamped Logs β Every operation is logged for traceability, with automatic log rotation and per-tool log cleanup.
β
Universal Launchers β Use a single devops.ps1 / devops.sh to install or uninstall tools.
β
π Security-Hardened β Eliminated command injection vulnerabilities and unsafe code execution.
β
π‘οΈ Input Validation β Comprehensive validation prevents malicious command injection.
β
β‘ Performance Optimized β Improved resource management, atomic state file writes and deadlock prevention.
β
π Enterprise Ready β Production-grade security with 90%+ risk reduction.
- π‘οΈ Command Injection Protection β Eliminated all
evalusage andInvoke-Expressionvulnerabilities - π Input Validation β Detects and blocks dangerous command patterns (
&&,||,;,|, etc.) - π Safe Execution β Uses
bash -cand temp file execution instead of unsafe methods - π« Mutex Deadlock Prevention β Timeout-based mutex handling prevents hanging operations
- π Resource Management β Proper cleanup prevents memory leaks and resource exhaustion
- π TLS 1.2 Enforcement β Secure network connections with modern encryption
- π οΈ Administrator Privilege Check β Ensures proper permissions before execution
- β Package Verification β Validates installations and configurations
- π Secure Update Mechanism β Checks authenticity of updates with backup/restore
- π State Management β Tracks tool installations and configurations
- π Comprehensive Logging System β Detailed operation tracking with timestamps and mutex-based file access
- π Installation Status Tracking β Real-time status monitoring with JSON state management
- π¨ Robust Error Handling β Enhanced error capture with specific error messages and recovery options
- π Operation History β Maintains detailed history of all actions with log rotation
- π Debug Mode β Detailed logging for troubleshooting and development
- π Parallel Installation Support β Faster multi-tool installations with job limiting (
-j N), timeout-aware background jobs, and accurate success/failure accounting - β±οΈ Timeout Management β Prevents hanging operations with configurable timeouts
- π Auto-Recovery β Re-run
--retry-failed(Linux) or the retry prompt (Windows) to repair partial installs from the state file - πΎ Atomic State Persistence β
flock-guarded, uniquely-templated state file updates keepdevops_state.jsonsafe during parallel installs - π§ Memory Leak Prevention β Automatic cleanup of temporary resources and timeouts
- β‘ Concurrent Access β Improved mutex and lock handling for multiple script instances
- π§Ή Log Rotation β Launcher and installer logs rotate/clean automatically so they never grow unbounded
- π Automatic Update Checks β Notifies of new versions with GitHub API integration
- π¦ Version Management β Tracks and manages tool versions with state persistence
- π§Ή Clean Uninstallation β Complete removal of tools and configs with verification
- πΎ Backup & Restore β Saves configurations before major changes with automatic backup
- π System Cleanup β Removes unused packages and temporary files after operations
Every script can now run non-interactively β perfect for CI pipelines, configuration management, and batch provisioning:
| Script | Mode / Flags | Purpose |
|---|---|---|
devops.ps1 / devops.sh |
install | uninstall | update | status | info | verify | logs | doctor | export | upgrade |
Run any launcher action and exit β no menu |
devops.ps1 |
-NoUpdateCheck, -Yes |
Skip the startup update check / auto-confirm prompts |
devops.sh |
-s (--skip-update), -h (--help) |
Skip update check / show usage |
install_devops_tools.ps1 |
-List, -Install Terraform,Git, -All, -DryRun, -Reinstall, -Upgrade, -Profile <file>, -PackageManager winget, -SkipRequirements |
Non-interactive installs |
install_devops_tools.sh |
-l, -i "docker,terraform", -a, -d (--dry-run), -s/-p, -j N, -r (--retry-failed), -U (--upgrade), --from <file>, --skip-requirements |
Non-interactive installs |
uninstall_devops_tools.ps1 |
-List, -Uninstall Docker,Terraform, -All, -DryRun, -Force |
Non-interactive uninstallation |
uninstall_devops_tools.sh |
-l, -u "docker,terraform", -a, -d (--dry-run), -f (--force) |
Non-interactive uninstallation |
π‘ Privileges: elevation is only enforced for actions that change the system β read-only actions (
status,info,verify,logs,doctor,export,-DryRun,-List) run as a normal user.
- π§ Linux Distribution Support β Ubuntu, Debian, CentOS, RHEL, Fedora, Arch, Alpine, SUSE
- πͺ Windows Support β Windows 10/11 with PowerShell 5.0+ and Chocolatey
- π¦ Package Manager Detection β Automatic detection of apt, yum, dnf, pacman, zypper, apk, choco
- π§ Service Management β systemd, init.d, Windows service support
- π Internationalization β Multi-language error messages and logging
The catalog below is exactly what the scripts install/uninstall (run -List / -l on the installer any time for the authoritative list):
βοΈ Docker π³ | βοΈ Kubernetes (kubectl) βΈοΈ | βοΈ Minikube | βοΈ Helm β΅ | βοΈ Istio (istioctl) β΄οΈ | βοΈ Podman π¦
βοΈ Terraform | βοΈ Ansible | βοΈ Packer | βοΈ Vagrant
βοΈ Jenkins π€΅ | βοΈ GitLab Runner | βοΈ Git | βοΈ ArgoCD | βοΈ Flux
βοΈ AWS CLI | βοΈ Azure CLI | βοΈ Google Cloud SDK (gcloud)
βοΈ Prometheus π₯ | βοΈ Grafana π | βοΈ K9s π
βοΈ HashiCorp Vault π | βοΈ HashiCorp Consul πΈοΈ
πͺ Windows note: the PowerShell installer uses Chocolatey packages β a few catalog entries have Windows-specific package ids (e.g.
gcloudsdk,istioctl) and Windows services (Jenkins, Prometheus, Grafana) are not started as services. The universal state file keeps both platforms in sync.
iwr -useb https://raw.githubusercontent.com/NotHarshhaa/DevOps-Tool-Installer/main/devops.ps1 | iexcurl -s https://raw.githubusercontent.com/NotHarshhaa/DevOps-Tool-Installer/main/devops.sh | bashThese combined launchers (devops.ps1 and devops.sh) automatically guide you to install or uninstall tools via an interactive prompt!
Security Note: The one-liner downloads and executes the script. For security-conscious environments, use Method 2.
git clone https://github.com/NotHarshhaa/DevOps-Tool-Installer.git
cd DevOps-Tool-Installer
chmod +x devops.sh
./devops.shgit clone https://github.com/NotHarshhaa/DevOps-Tool-Installer.git
cd DevOps-Tool-Installer
.\devops.ps1Security Note: Always review scripts before execution, especially in production environments.
-
Download the script manually:
- Windows: devops.ps1
- Linux: devops.sh
-
Verify the script contents (security best practice)
-
Execute with appropriate permissions:
- Windows:
powershell -ExecutionPolicy Bypass -File devops.ps1 - Linux:
chmod +x devops.sh && sudo ./devops.sh
- Windows:
Skip the menus entirely β ideal for scripts, pipelines, and cloud-init:
# Install specific tools without prompts (parallel by default)
sudo scripts/install_devops_tools.sh -i "docker,terraform"
# Install everything, sequentially, limited to 8 parallel jobs
sudo scripts/install_devops_tools.sh -a -s -j 8
# Preview what would be installed (dry run, no changes)
sudo scripts/install_devops_tools.sh -d -i "kubernetes-cli,helm"
# Re-install tools recorded as failed in the state file
sudo scripts/install_devops_tools.sh -r
# Uninstall tools without prompts (force), preview first (dry run)
sudo scripts/uninstall_devops_tools.sh -u "docker,terraform" -f
sudo scripts/uninstall_devops_tools.sh -d -u "docker,terraform"
# Install tools from a shareable profile file (workstation-as-code)
./devops.sh export # save installed tools to profiles/devops_profile.txt
sudo scripts/install_devops_tools.sh --from profiles/devops_profile.txt
# Upgrade only the tools that are already installed
sudo ./devops.sh upgrade
# Launcher one-shot actions
./devops.sh status
./devops.sh verify
./devops.sh logs
./devops.sh doctor# Install specific tools without prompts
powershell -File scripts\install_devops_tools.ps1 -Install Terraform,Git
# Install everything (already-installed tools are skipped automatically)
powershell -File scripts\install_devops_tools.ps1 -All
# Preview a plan (no changes), or reinstall over existing tools
powershell -File scripts\install_devops_tools.ps1 -DryRun -Install Git
powershell -File scripts\install_devops_tools.ps1 -Reinstall -Install Git
# Uninstall tools without prompts, or list them first
powershell -File scripts\uninstall_devops_tools.ps1 -Uninstall Docker,Terraform
powershell -File scripts\uninstall_devops_tools.ps1 -List
# Export installed tools to a shareable profile, and re-apply it anywhere
.\devops.ps1 export
powershell -File scripts\install_devops_tools.ps1 -Profile profiles\devops_profile.txt
# Upgrade only the tools that are already installed
.\devops.ps1 upgrade
# Launcher one-shot actions
.\devops.ps1 status
.\devops.ps1 verify
.\devops.ps1 logs
.\devops.ps1 doctorAdditionally, interactive tool menus accept multi-select: enter 3, a range like 1-5, a list like 2,4, or all β l re-lists the catalog (Windows), and the Linux menus show the same numbering across runs (categories are sorted for stable numbering).
- Windows: PowerShell 5.0+ ; Administrator privileges required for install/uninstall actions (read-only actions β
status,info,verify,logs,-DryRun,-Listβ run as a normal user) - Linux: Bash 4.0+ ; root/sudo required for install/uninstall actions (
jq,curlrequired for update checks, verified automatically) - Network: Internet connection for downloads and updates
- Disk: Minimum 10GB free space for installations
- TLS: TLS 1.2 support for secure connections
π§Ή This tool supports clean uninstallation with:
- β
Interactive selection with installed-status detection (
[Installed]/[Not Found]) - β
Multi-select and range selection (
3,1-5,2,4,all installed) - β Advanced cleanup (services, configs, logs, binaries, even APT/Choco package purge)
- β
Dry run mode on both platforms (
-d/--dry-runon Linux,-DryRunon Windows) - β
Forced non-interactive runs (
-f/--forceon Linux,-Forceon Windows) - β
Timestamped logs saved in the
logs/folder
# Linux: preview, then remove specific tools without prompts
sudo scripts/uninstall_devops_tools.sh -d -u "docker,terraform"
sudo scripts/uninstall_devops_tools.sh -u "docker,terraform" -f
# Linux: remove every tool detected as installed
sudo scripts/uninstall_devops_tools.sh -a
# List the catalog with installed status
sudo scripts/uninstall_devops_tools.sh -l# Windows: list tools with installed status, then uninstall without prompts
powershell -File scripts\uninstall_devops_tools.ps1 -List
powershell -File scripts\uninstall_devops_tools.ps1 -Uninstall Docker,Terraform
# Dry run, or remove every detected tool
powershell -File scripts\uninstall_devops_tools.ps1 -DryRun -Uninstall Docker,Terraform
powershell -File scripts\uninstall_devops_tools.ps1 -AllUse the universal launcher:
curl -s https://raw.githubusercontent.com/NotHarshhaa/DevOps-Tool-Installer/main/devops.sh | bashUse PowerShell launcher:
iwr -useb https://raw.githubusercontent.com/NotHarshhaa/DevOps-Tool-Installer/main/devops.ps1 | iexπ§ After running the launcher, you'll be prompted with an 8-option menu:
- Install Tools
- Uninstall Tools
- Check for Updates
- View Installation Status
- System Information
- Verify Installed Tools β re-checks every tool recorded in the state file against
PATH - View Recent Logs β tail the manager, installer, and uninstaller logs
- Exit
Optionally run any of these directly without the menu (install, uninstall, update, status, info, verify, logs, doctor, export, upgrade).
The full release history and detailed release notes for every version now live in CHANGELOG.md.
1οΈβ£ Run the script (via quick method or cloned repo)
2οΈβ£ Choose Install or Uninstall
3οΈβ£ Select tools interactively
4οΈβ£ Script detects your OS and uses the appropriate package manager
5οΈβ£ All operations are validated, logged, and tracked in the state file β then verified from the launcher
π€ No time for menus? Jump to Method 4 in the Installation Guide for the non-interactive CLI modes.
| OS | Package Manager |
|---|---|
| Ubuntu/Debian | apt |
| CentOS/RHEL | yum |
| Fedora | dnf |
| Arch Linux | pacman |
| Alpine | apk |
| SUSE | zypper |
| Windows | choco |
This release addresses critical security vulnerabilities and implements defense-in-depth protections:
| Security Aspect | Before | After | Risk Reduction |
|---|---|---|---|
| Command Injection | π΄ High Risk | π’ Mitigated | 90% |
| Code Execution | π΄ High Risk | π’ Controlled | 95% |
| Resource Leaks | π‘ Medium Risk | π’ Prevented | 85% |
| Deadlocks | π‘ Medium Risk | π’ Eliminated | 85% |
| Network Security | π‘ Basic | π’ TLS 1.2 | 70% |
- π« Eliminated
evalUsage - All bash scripts now usebash -cfor safe execution - π‘οΈ Removed
Invoke-Expression- PowerShell scripts use temp file execution - π Input Validation - Detects dangerous patterns (
&&,||,;,|,`,$(,&) - β±οΈ Mutex Timeouts - Prevents hanging with 1000ms timeout
- πΎ Resource Cleanup - Automatic cleanup prevents memory leaks
- π TLS 1.2 Enforcement - Secure HTTPS connections
- π Safe Logging - Mutex-based file access prevents corruption
- β Principle of Least Privilege - Scripts require appropriate permissions
- β Input Sanitization - All user inputs validated and sanitized
- β Safe Execution - No arbitrary code execution
- β Resource Management - Proper cleanup and disposal
- β Error Handling - Secure error reporting without information leakage
- β Network Security - Modern encryption and certificate validation
Contributions are welcome!
- π Report bugs by opening issues
- β¨ Suggest new tools or features
- π§ Submit PRs to improve install/uninstall logic
- π Security researchers - Please report security vulnerabilities privately
π¬ Telegram: Join our group
β GitHub: Follow me
π Blog: ProDevOpsGuy
πΌ LinkedIn: Harshhaa Vardhan Reddy
If this project saved you time, consider giving it a β on GitHub!


