Skip to content

atulkamble/Azure-Migration-Project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 

Repository files navigation

Here's a comprehensive guide to setting up an Azure Migrate Project along with example steps and code snippets to assist in automation:


Objective:

To migrate on-premises workloads, virtual machines (VMs), databases, and applications to Azure using Azure Migrate.


Pre-requisites:

  1. Azure Subscription with sufficient permissions.
  2. Access to on-premises environment for assessment and migration.
  3. Azure Migrate Service enabled in the Azure portal.
  4. Migration goals defined (e.g., VMs, databases, or apps).

Steps for the Azure Migrate Project:

1. Create an Azure Migrate Project

Portal Steps:

  • Go to the Azure Migrate Hub.
  • Click on + Add tools and select Create project.
  • Provide:
    • Subscription.
    • Resource group.
    • Project name.
    • Region.
  • Click Create.

Automate with Azure CLI:

az account set --subscription "<SUBSCRIPTION_ID>"

az group create --name "<RESOURCE_GROUP>" --location "<LOCATION>"

az migrate project create \
  --resource-group "<RESOURCE_GROUP>" \
  --location "<LOCATION>" \
  --name "<PROJECT_NAME>" \
  --solution-name "Azure Migrate"

2. Discover On-Premises Workloads

  • Download and configure the Azure Migrate Appliance:
    • From the Azure portal, download the OVA/Installer for your environment.
    • Install the appliance in your on-premises data center.

Automate Appliance Setup with PowerShell:

# Example: Setting up Appliance
$MigrationApplianceURL = "<MIGRATION_APPLIANCE_URL>"
Invoke-WebRequest -Uri $MigrationApplianceURL -OutFile "AzureMigrateApplianceInstaller.exe"
Start-Process -FilePath "AzureMigrateApplianceInstaller.exe" -Wait
  • Register the appliance using the key generated in Azure Migrate.

3. Assess Workloads

  • In the Azure Migrate portal:
    • Select the project.
    • Add Assessment tools (e.g., Azure Migrate: Server Assessment).
  • Run discovery and wait for data to sync.

Automate with Azure CLI:

az migrate appliance add \
  --project-name "<PROJECT_NAME>" \
  --resource-group "<RESOURCE_GROUP>" \
  --name "<APPLIANCE_NAME>" \
  --type "ServerAssessment" \
  --appliance-key "<APPLIANCE_KEY>"

4. Migrate Workloads

  • Choose a migration tool (e.g., Azure Migrate: Server Migration).
  • Replicate workloads from on-premises to Azure:
    • Configure replication settings in the Azure portal.
    • Monitor replication.

Automate with Azure CLI:

az migrate replication create \
  --resource-group "<RESOURCE_GROUP>" \
  --project-name "<PROJECT_NAME>" \
  --appliance-name "<APPLIANCE_NAME>" \
  --vm-name "<VM_NAME>" \
  --replication-properties @replication-config.json

Example replication-config.json:

{
    "replicationPolicy": {
        "recoveryPointObjectiveInMinutes": 5,
        "recoveryTimeObjectiveInMinutes": 30
    },
    "targetAzureVm": {
        "size": "Standard_D2s_v3",
        "networkInterface": [
            {
                "name": "NIC1",
                "ipAllocationMethod": "Dynamic"
            }
        ]
    }
}

5. Cutover and Finalize Migration

  • Perform a test migration.
  • Validate the workload on Azure.
  • Execute the final cutover to Azure.

Automate Cutover with Azure CLI:

az migrate replication cutover \
  --resource-group "<RESOURCE_GROUP>" \
  --project-name "<PROJECT_NAME>" \
  --vm-name "<VM_NAME>"

Code Repository Example

For a full automation script, you can create a repository structure as follows:

azure-migrate-project/
│
├── scripts/
│   ├── create_project.sh       # Azure CLI script to create a migrate project
│   ├── setup_appliance.ps1     # PowerShell script to configure appliance
│   ├── replication_config.json # JSON file for replication settings
│
├── README.md                   # Documentation
└── .gitignore                  # Ignore unnecessary files

Sample README.md:

# Azure Migrate Project Automation

## Overview
Automate the setup and migration process using Azure Migrate with CLI and PowerShell.

## Steps
1. Run `create_project.sh` to create the Azure Migrate project.
2. Download and configure the migration appliance with `setup_appliance.ps1`.
3. Edit `replication_config.json` for replication settings.
4. Use Azure CLI to perform assessments and migrations.

Monitoring

  • Use Azure Monitor and Azure Service Health to ensure smooth operations.
  • Automate alerting with Azure Monitor using CLI:
    az monitor metrics alert create \
      --name "MigrationAlert" \
      --resource-group "<RESOURCE_GROUP>" \
      --scopes "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Migrate/migrateProjects/<PROJECT_NAME>" \
      --condition "avg DiskWriteBytes > 1000000" \
      --action-group "<ACTION_GROUP>"

Let me know if you'd like further details or enhancements!

About

Azure Migration Project

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published