PerladvanceddevopsAI generated

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

  1. 01

    Design the playbook format

    ~1.5h

    Define a YAML schema describing tasks like file presence, package installed, service running.

  2. 02

    Implement SSH task execution

    ~2.5h

    Use Net::OpenSSH to connect to a remote host and execute each task's check-and-apply logic idempotently.

  3. 03

    Add parallel host execution

    ~2h

    Use Parallel::ForkManager to apply playbooks across multiple hosts concurrently.

  4. 04

    Implement idempotency checks

    ~2h

    Ensure each task first checks current state and skips changes that are already satisfied.

  5. 05

    Add reporting and dry-run mode

    ~1.5h

    Print 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.

~9.5h · 5 steps

Tech stack

Net::OpenSSHYAMLParallel::ForkManager