Move Terraform Providers to Other Folders

Create a new control file with the name .terraformrc or terraform.rc in your profile folder.

Add the following lines:

plugin_cache_dir   = "$HOME/.terraform.d/plugin-cache"

Create the folder .terraform.d/plugin-cache in your profile folder.

The providers will be downloaded to the cache folder when you run terraform init.


If you don’t want to create the control file in the profile folder. Alternative is to create an environment variable.

export TF_PLUGIN_CACHE_DIR="$HOME/.terraform.d/plugin-cache"

How to Copy Azure Images to Other Subscriptions or Regions

Copy Azure Images to Other Subscriptions

The Azure image was introduced in 2014 by Microsoft. It’s a more comprehensive image for Microsoft Azure Virtual Machines. Azure is a highly available cloud. Solution design needs to always take failover and tolerance into account. Therefore, copy Azure images to other subscriptions or regions is something we need to consider.

There are three methods to copy Azure images to other subscriptions or regions:

Option 1

Firstly, the easiest way to achieve that is to use the Image Gallery. It’s introduced in the middle of 2019. As Microsoft states: “Shared Image Gallery provides a simple way to share your applications with others in your organization, within or across Azure Active Directory (AD) tenants and regions. This enables you to expedite regional expansion or DevOps processes and simplify your cross-region HA/DR setup.

The high-level procedure is to create a new Image Gallery, create image definition and version, and then add replica regions in the version. If you want to use the image gallery in other subscriptions. You need to grant proper access permission of other subscriptions accounts to the image gallery through RBCA.

Option 2

The first solution above is GUI based. I’m a super fan of scripting. In other words, I prefer to use Azure CLI to achieve it. The official Azure CLI doesn’t contain the image copy command. However, there is an Azure CLI Image Copy Extension you can use. Basically, it copies the source image’s virtual disk file to destination subscriptions or regions.

You need to install Azure CLI, and then install the extension use the command below.

az extension add --name image-copy-extension

Option 3

The last option is actually the manual process of the secondary solution. Basically, you need to create a new VM from the source image, and then move the VM to the other subscriptions or regions. Finally, capture an image by the moved VM. This is not my recommendation.

How to reset Azure Migrate Appliance

Azure Migrate appliance is a simple tool to move VMware virtual machines to Azure. But it has limitation to migrate VMs on multiple vCenter servers. In other words, you have to deploy multiple appliances to support multi-vCenter. This is a time-consuming task. In fact, there is a way to reset the Azure Migrate Appliance.

There is a file appliance.json in Azure Migrate appliance. It stores the key information of the Azure Migrate project. The credentials, vCenter server, and key vault information are all stored in the file. Also the registration status.

The file is located in C:\ProgramData\Microsoft Azure\Config\. It’s a JSON file. The variable IsApplianceRegistered indicates if the appliance registered or not.

Change the value from True to False will reset Azure Migrate appliance status. Of course, you still need to reboot the appliance.

This reset is no impact to stored credential and vCenter server data.

Connectivity check failed on Azure Migrate Appliance

Azure Migrate is a straightforward method to migrate VMware virtual machines to Azure. You just deploy an Azure Migrate Appliance on the on-premise data center. And then replicate VMware virtual machines to Azure. The Azure Migrate Appliance upgrades to the latest version in launching. You may see the connectivity check failed in the “Set up prerequisites” step after the updating.

The connectivity check to Azure is failing

If the connectivity check failed error is related to “https://www.office.com/login“. Then the reason is the undocumented URL. “*.office.com” should be whitelisted on the firewall. The URL is presented in prerequisites recently. In addition, Microsoft is not yet updating it in their document at this moment.

Failed to register Azure Migrate appliance

Azure provides a lot of pre-configured images for customers. But it’s not always satisfied the needs. People may want to migrate on-premise virtual machines to Azure. There are several ways to migrate VMware virtual machines to Azure. The easiest way is to leverage Azure Migrate. This article introduces how to fix failed to register Azure Migrate appliance.

There are two ways to deploy Azure Migrate appliance:

  1. Deploy the appliance by importing the OVA file.
  2. Install the application with scripts on an existing virtual machine.

There is an issue if you installed it with option 2 above. As a result, you may see the “failed to register Azure Migrate” error below.

An error occurred as the scenario type (VMware/Hyper/Physical) of the appliance ‘xxx’ – does not match the one in the Azure Migrate project key.

Looks like this is a bug in the installation scripts. Therefore you have to run the installer with the following parameters:

./AzureMigrateInstaller.ps1 -Scenario VMware -Cloud Public

Public cloud and web hosting provider Krypt reviews

My blog finally backed online!! Due to a updating issue on PhotoVPS infrastructure, my virtual machine ran into unstable since Monday. I didn’t notice it till Wednesday. The virtual  machine got intermittently network connectivity issue, PhotoVPS engineers can only temporarily fix it.  I was struggled by the situation, finally I decided order a new virtual machine on Krypt. Krypt is ideally place for me since they are VMware certified partner, they helps VMware improves vCloud products and develops in public cloud market. The network performance is also the greatest from North American to China in US service providers, they have dedicate bandwidth to China Telecom.

Continue reading “Public cloud and web hosting provider Krypt reviews”