GithubHelp home page GithubHelp logo

azure_task_5_move_vm_to_new_region's Introduction

Move the VM to another region

Well done! Your todo web app has become popular! The only small problem is that it has become popular on the west of UK - most of your app users are comming from there. Users are complaining aboud the network latency, and you are realizing that you need to host your app in another Azure region. I have good news for you - you don't need to re-create the VM from scratch, in Azure you can just move resources between regions with Azure Resource Mover. This task it to practice using this service.

How to complete tasks in this module

Tasks in this module are relying on 2 PowerShell scripts:

  • scripts/generate-artifacts.ps1 generates the task "artifacts" and uploads them to cloud storage. An "artifact" is evidence of a task completed by you. Each task will have its own script, which will gather the required artifacts. The script also adds a link to the generated artifact in the artifacts.json file in this repository โ€” make sure to commit changes to this file after you run the script.
  • scripts/validate-artifacts.ps1 validates the artifacts generated by the first script. It loads information about the task artifacts from the artifacts.json file.

Here is how to complete tasks in this module:

  1. Clone task repository

  2. Make sure you completed steps, described in the Prerequisites section

  3. Complete the task, described in the Requirements section

  4. Run scripts/generate-artifacts.ps1 to generate task artifacts. Script will update the file artifacts.json in this repo.

  5. Run scripts/validate-artifacts.ps1 to test yourself. If tests are failing - follow the recomendation from the test script error message to fix or re-deploy your infrastructure. When you will be ready to test yourself again - re-generate the artifacts (step 4) and re-run tests again.

  6. When all tests will pass - commit your changes and submit the solution for a review.

Pro tip: if you stuck with any of the implementation steps - run scripts/generate-artifacts.ps1 and scripts/validate-artifacts.ps1. The validation script might give you a hint on what you should do.

Prerequisites

Before completing any task in the module, make sure that you followed all the steps described in the Environment Setup topic, in particular:

  1. Ensure you have an Azure account and subscription.

  2. Create a resource group called "mate-resources" in the Azure subscription.

  3. In the "mate-resources" resource group, create a storage account (any name) and a "task-artifacts" container.

  4. Install PowerShell 7 on your computer. All tasks in this module use Powershell 7. To run it in the terminal, execute the following command:

    pwsh
    
  5. Install Azure module for PowerShell 7:

    Install-Module -Name Az -Repository PSGallery -Force
    

If you are a Windows user, before running this command, please also run the following: Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

  1. Log in to your Azure account using PowerShell:
    Connect-AzAccount -TenantId <your Microsoft Entra ID tenant id>
    

Requirements

In this task, you will need to work with the infrastructure from the previous task previous task. In order to complete the task, you need to perform the following steps:

  1. Use Azure Resource Mover to move your resources:

    • use 'UK West' as a target region. If your VM size is not available in the 'UK West' Azure region - select any other Azure region where it is available.

    • make sure that all resources will be moved in the new resource group, called mate-azure-task-5. For that, create the target resource group before any other steps, and adjust the configuration of each resource in the Azure Resource Mover before ititiating the Prepare stage.

    • after you moved the resources, check if your web app is still available on the Internet

  2. Run artifacts generation script scripts/generate-artifacts.ps1

  3. Test yourself using the script scripts/validate-artifacts.ps1

  4. Sumbit the solution for a review

  5. When solution is validated, stop the virtual machine and delete the source resource group.

  6. Also, stop the VM you moved to the new region if you are not using it (but don't delete it - you will need it for the next tasks).

Note: source resources are not deleted automatically - you need to do it on our own.

Note

You might face with an error "MoveResourcePrepareFailed" at the stage of preparing the VM for the move. The error message could look like this: " The site recovery operation failed with the error (9.60.7003.1) version of mobility service doesn't support the operating system kernel version (6.5.0-1016-azure) running on the source machine. Please refer the list of operating systems supported by Azure Site Recovery : https://aka.ms/a2a_supported_linux_os_versions. Possible Causes: . Recommended Action: Please refer to https://aka.ms/a2a_supported_linux_os_versions "

No need to worry, you can resolve it! On the prepare page, Azure resource mover installs to your VM a program, called 'mobility service' - this program is used to replicate the data from source VM to the target one. Error message means that mobility service does not support OS kernel version, which is used by your VM. The easiest workaround is to downgrade the kernel version and try to run 'Prepare' stage again. To downgrade the kernel version:

  1. Find the latest supported kernel version for Ubuntu 22.04 here

  2. Follow the steps from the microsoft learn forum to downgrade your VM kernel. On your VM:

    • Identify the necessary packages that you need to install. This is done by executing the following command:
        sudo apt search linux-azure | grep 6.5.0-1015-azure
    
    • Install packages, which you got at the previous step using apt-get. For example:
        sudo apt-get install linux-image-unsigned-6.5.0-1015-azure linux-modules-6.5.0-1015-azure linux-modules-extra-6.5.0-1015-azure
    
    • Remove the current kernel version:
        sudo apt remove linux-image-<kernel version from the error message>
    

    Example command for the kernel version 6.5.0-1016-azure:

        sudo apt remove linux-image-6.5.0-1016-azure
    

    During the process you confirm with that you do not want to abort the removal process.

    • As the last step you initiate a reboot with:
        sudo reboot
    
  3. After that, try to run "Prepare" stage again.

azure_task_5_move_vm_to_new_region's People

Contributors

id27182 avatar

Watchers

 avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.