Custom Configuration Management Tool
Build a lightweight configuration-management CLI (a mini-Ansible) that reads YAML playbooks describing desired file/package/service state on remote hosts, connects via SSH, and applies changes idempotently in parallel across hosts. Learners practice SSH automation, YAML-driven configuration, and parallel execution control in Perl.
- Estimate
- ~9.5h
- Steps
- 5
- Completed by
- 0
- Proposed by
- codeseed.app
Net::OpenSSH · YAML · Parallel::ForkManager
Project roadmap
- 01
Design the playbook format
~1.5hDefine a YAML schema describing tasks like file presence, package installed, service running.
- 02
Implement SSH task execution
~2.5hUse Net::OpenSSH to connect to a remote host and execute each task's check-and-apply logic idempotently.
- 03
Add parallel host execution
~2hUse Parallel::ForkManager to apply playbooks across multiple hosts concurrently.
- 04
Implement idempotency checks
~2hEnsure each task first checks current state and skips changes that are already satisfied.
- 05
Add reporting and dry-run mode
~1.5hPrint a per-host, per-task change summary and support a --check dry-run mode.
Resources
Ready to build this?
Get a GitHub repo and start building. Your AI reviewer checks each step as you go.
Tech stack