Skip to content

Latest commit

 

History

18 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tools and Scripts

License: MIT

Small utilities for DevOps, IT operations, security work, migrations, and self-hosted infrastructure. Each tool lives in its own folder with its documentation, examples, safeguards, and tests.

Contents

Quick start

Clone the repository, choose one tool, and read that tool's README before running it:

git clone https://github.com/Duresa7/tools-and-scripts.git
cd tools-and-scripts
python -m venv .venv
. .venv/bin/activate
python -m pip install -r requirements-dev.txt

PowerShell uses a different activation command:

git clone https://github.com/Duresa7/tools-and-scripts.git
Set-Location tools-and-scripts
py -m venv .venv
.\.venv\Scripts\Activate.ps1
py -m pip install -r requirements-dev.txt

You don't need the whole repository to run one tool. Download its folder and keep the files together.

Run the complete repository check before editing or sharing a tool:

python check.py

Tool catalog

Networking

  • NetworkManager cutover: move a Linux interface to a prepared NetworkManager profile, verify its exact address, route, and DNS state, and restore the prior network configuration after a failed cutover.

Monitoring

  • Prometheus target check: compare the active-target API with an expected set and reject missing, duplicate, unexpected, forbidden, or unhealthy targets.

Backup and recovery

  • Semaphore SQLite guard: create an online SQLite backup and compare Semaphore records without printing stored credentials.

Migrations

  • TeamSpeak channel migration: export a channel tree through ClientQuery and recreate it through ServerQuery with a dry-run import path.

Identity and access

  • SSH key rotation: audit, stage, verify, and retire public keys across POSIX and Windows targets with an allowlist and a gated retirement step.

Status and safety

"Locally checked" means automated tests and static checks cover the code path. It does not claim that a tool has passed the full operating-system matrix on dedicated machines.

Tool Platform Runtime Privilege Changes state Preview Rollback Tested status
NetworkManager cutover Linux Bash 4+ Elevation for cutover Network files, profiles, services Yes Automatic on failed validation Locally checked; live matrix pending
Prometheus target check Linux, macOS, Windows Python 3.11+ Ordinary user No Read-only command Not applicable Locally checked; live matrix pending
Semaphore SQLite guard Linux, macOS, Windows Python 3.11+ Read access to database; write access to backup folder Creates a backup file Comparison is read-only Original database is never replaced Locally checked; live matrix pending
TeamSpeak channel migration Linux, macOS, Windows Python 3.11+ Query accounts only Export writes JSON; import creates channels Import dry run Keep the export and remove created channels manually Locally checked; live matrix pending
SSH key rotation Linux controller; POSIX and Windows targets Ansible Core 2.17+ Per-target settings Authorized-key files Audit and check mode Replacement is verified before retirement Locally checked; live matrix pending

Every state-changing tool documents the exact confirmation, backup, and rollback behavior in its own README. Don't test network cutovers, key retirement, or channel creation against an active system that can't tolerate interruption.

Compatibility

Compatibility validation separates completed local checks from the pending Debian 13, Ubuntu 24.04, Rocky 10, Windows 11, and Windows Server 2025 live matrix. No live compatibility claim is complete until every required scenario has a sanitized passing record.

Configuration rules

  • Copy an annotated example to its ignored local filename before editing it.
  • Search examples for CUSTOMIZE:. Each marker identifies a value owned by your environment.
  • Keep credentials out of command history and configuration files. Tools read secrets from named environment variables or hidden prompts.
  • Prefer an ordinary login account. Apply sudo, Ansible become, or Windows elevation only to the write that requires it.
  • Command-line values override local configuration. Local configuration overrides documented defaults.

Examples use RFC 5737 addresses such as 192.0.2.10; those addresses aren't live systems.

Local checks

python check.py is the only complete verification command. It runs the Python tests and formatter checks, compiles Python files, parses Markdown links and example configurations, checks every command's help, validates Bash and PowerShell syntax, runs ShellCheck, validates and lints the Ansible project, checks every Ansible playbook's syntax, and scans the complete Git history with Gitleaks.

python -m pip install -r requirements-dev.txt
python check.py

The command doesn't skip a missing checker. It fails with the required installation step. On Windows, Bash, ShellCheck, Ansible Core, and Ansible Lint run inside WSL because Ansible controllers are Linux-based.

Adding a tool

Future tool template defines the folder layout, required README sections, configuration rules, safety metadata, comment policy, and minimum tests.

License

MIT

About

Tested Python, Bash, and Ansible utilities for infrastructure maintenance, migration, validation, and recovery.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages