Mission 02
VM Migration Factory
Automate VM delivery from request to monitored production service: provisioning, configuration, inventory, monitoring, and load-balancer registration.
This mission turns VM work into a repeatable workflow: request, provision, configure, register, monitor, and route traffic.
It is useful for migrations, provider changes, or teams that still run important workloads outside Kubernetes and need the same discipline: reviewable changes, clear inventory, and no hidden manual steps.
When this is NOT a fit
- You only create a few short-lived VMs per year and manual provisioning is already documented, reviewed, and low-risk.
- The target platform, IP plan, naming scheme, or ownership model is still undecided.
- Existing workloads cannot tolerate even planned cutovers, DNS changes, or load-balancer registration windows.
- The organization wants a one-time lift-and-shift without keeping the automation as an operated product afterward.
Common failure modes we’ve seen
- Terraform creates the VM, but inventory, DNS, monitoring, backup policy, and load-balancer registration still require tickets and manual edits.
- Golden images drift from Ansible roles, so the first boot succeeds but patching, users, agents, and hardening differ by provider.
- NetBox or Consul is treated as a secondary record instead of the source of truth, which breaks automation during migrations.
- Cutover plans miss connection draining, health checks, or rollback triggers, causing avoidable incidents during otherwise simple moves.
What's included
- Pipeline design: Git-triggered Terraform plan/apply across multiple providers with shared variable files (~80% common, ~20% provider-specific)
- Dynamic inventory: Consul and NetBox as source of truth, new VMs auto-register on creation
- Automated configuration: Ansible meta-playbook discovers unconfigured VMs via NetBox custom fields, runs the right playbook, marks as configured
- Traffic cutover: HAProxy backends auto-register via Consul service discovery, new VMs receive traffic without manual intervention
- Monitoring integration: Automatic registration into your monitoring stack (Centreon, Prometheus, or equivalent)
- Migration execution: Planned VM migrations from vSphere, Proxmox upgrades, or cross-DC moves with minimal downtime
Deliverables
- Fully functional Git-to-live-traffic VM delivery pipeline
- Terraform multi-provider module templates (vSphere, Proxmox, OpenStack)
- Ansible dynamic inventory integration with NetBox custom fields
- HAProxy or load balancer auto-registration via Consul
- Operational runbook for adding new VM types and providers
- Migration playbook template for existing fleet
Tech stack
TerraformAnsibleConsulNetBoxJenkinsHAProxyCentreon
Want to scope this?
Think this fits your needs? Let's scope it together.