Shared, versioned repository of cross-platform automation scripts used across PlusClouds services (IAAS VM guest agent, S3 backup-agent/storaged, and any future consumer). Every release is a signed, checksummed GitHub Release — consumers pin to a specific tag, never to a branch.
capabilities/<name>/{linux.yml, windows.ps1, macos.sh}— the actual guest-facing operations (change password, change hostname, apply SSH keys, disk resize, etc.), one directory per capability, OS variants side by side so they get reviewed and versioned together instead of drifting apart.capabilities/service-roles/<name>/linux.yml— service roles (mysql, postgresql, tailscale, ...) a VM can opt into. Each directory's name is the catalog keyNextDeveloper/IAAS'siaas_ansible_rolestable syncs against 1:1 — seemeta.ymlbelow andAnsibleRolesService::syncFromToolkit().capabilities/service-roles/<name>/meta.yml— a one-linedescription:for that role, synced intoiaas_ansible_roles.descriptionby the same job. Required for every service role (not just cosmetic — the sync job reads it).capabilities/service-roles/<name>/defaults.yml— everyservice_roles.<name>.config.*key the role'slinux.ymlreads, mapped to its default value, synced intoiaas_ansible_roles.config. Optional (omit it for a role that takes no config), but keep it in lockstep with whateverlinux.ymlactually reads via| default(...)— this is the only way a customer can discover what to put inservice_roles.<name>.configshort of reading this repo.agents/<agent>/— bootstrap/installer material for a specific agent (install scripts, systemd units, config templates). Not a "capability" a customer triggers directly — this is what gets an agent running on a host in the first place.manifest.json— generated at release time byscripts/generate-manifest.sh: every file's sha256, so consumers can verify integrity before executing anything pulled from a release asset.
Never fetch from a branch (main/master) at runtime. Pin to a release tag:
https://github.com/plusclouds/toolkit/releases/download/v1.0.0/toolkit-v1.0.0.tar.gz
https://github.com/plusclouds/toolkit/releases/download/v1.0.0/manifest.json
Verify each file you use against manifest.json before executing it.
This repo consolidates:
NextDeveloper/IAAS's in-packagescripts/vm-serviceandscripts/windows-vm-service(canonical source for capabilities that existed in both places — seeagents/vm-serviceand thecapabilities/linux/windows split)plusclouds/vm-services(superseded by this repo; a few capabilities here — e.g.client-monitoring,zabbix-client— only existed there)
agents/backup-agent and agents/storaged are placeholders for S3's backup-agent and storaged installers, which had no script infrastructure prior to this repo.