Packer Workflow for Azure Migration

Job ID: 39806532

Budget: $10 – $30 USD

I need a repeatable Packer-based pipeline that will take my on-prem Ubuntu servers and turn them into ready-to-deploy images in Azure. The workflow must capture every installed application alongside the critical configuration files so the resulting image behaves exactly like the source machine once it boots in the cloud.

Here’s the flow I have in mind:

• Packer is triggered locally or from an Azure DevOps/GitHub Actions runner.
• Source is our on-prem VMware/VirtualBox image or raw disk; Packer converts it, provisions updates, and hardens the OS.
• All application binaries and associated configuration files are preserved; anything database-related is handled elsewhere, so there’s no schema or data export in scope.
• The build outputs either a Managed Image or a VHD in a storage account, ready for deployment through ARM/Bicep or Terraform.

Deliverables
1. Packer template(s) in HCL or JSON (your preference) with variables clearly documented.
2. Provisioner scripts (Shell/Ansible) that copy applications and configuration files and perform post-build validation.
3. A concise README explaining prerequisites, how to run the build locally and in CI, and how to consume the resulting image.
4. Sample pipeline YAML for Azure DevOps or GitHub Actions demonstrating headless execution and artifact publishing.

Acceptance criteria
• Building the template from a clean repo clone completes end-to-end with one command.
• Image boots in Azure and passes a basic health check verifying the key services and configuration files are present.
• All steps are idempotent; re-running the pipeline produces the same result without manual cleanup.

If you’ve automated Ubuntu image builds with Packer before, especially targeting Azure, you’ll recognize most of this. Feel free to suggest improvements such as integrating CIS hardening or adding Sentinel tests—I’m open to ideas as long as the core goal remains a seamless applications-plus-configs migration.