> For the complete documentation index, see [llms.txt](https://docs.plenit.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.plenit.com/docs-en/productos/migrations/how-to/como-migrar-una-maquina-virtual-de-microsoft-azure-a-cloud.md).

# How to Migrate a Microsoft Azure Virtual Machine to Plenit

Migrating a virtual machine from Azure to Plenit has two halves: first you generate a disk download link in Azure (in VHD format) and then you complete the import from Plenit's migration tool by pasting that link.

The guide uses a GNU/Linux example, but the flow is the same for other systems.

<br>

> 👍 What you get
>
> The disk of your Azure VM importing into Plenit from its export URL, ready to deploy the destination server.

<br>

### Before you start

* Sign in to the Plenit platform with company administrator permissions or on a subscription of **Servers**.
* Have access to the section **Migrations** within **Cloud Services**.
* Have in Azure the virtual machine you want to export.

<br>

### Step 1. Prepare the export in Azure

Shut down the machine before exporting and take the opportunity to delete content or uninstall software you don't need: the lighter the image, the lower the risk of interruptions during the download or import.

#### 1.1 Open the operating system disk

With the VM powered off, go to its details and open the section **Disks** and select the **operating system disk**.

{/\* 📸 CAPTURE 1 · Azure · Disks section with the operating system disk \*/}

![Access to the operating system disk in Azure](https://REEMPLAZA-URL/servidores-migracion-azure-01.png)

<br>

#### 1.2 Generate the export URL

Inside the disk, open **Disk export**. Azure prepares a secure download URL in **VHD**. Set the **expiration time** and click **Generate URL**.

<br>

> 📘 Give the URL expiration some margin
>
> The default value is 3600 seconds (one hour), which is too short for a migration. Increase it generously: in the example, 172800 seconds (48 hours) are used, so the download does not expire halfway through the transfer.

<br>

{/\* 📸 CAPTURE 2 · Azure · export screen with the expiration time \*/}

![Generation of the export URL with its expiration time](https://REEMPLAZA-URL/servidores-migracion-azure-02.png)

<br>

#### 1.3 Copy the VHD link

When the link is ready, **copy it** and save it for Step 2 (you can also download the VHD to the browser, but for the migration the practical thing is the link).

{/\* 📸 CAPTURE 3 · Azure · generated VHD link, ready to copy \*/}

![Copying the generated VHD file link](https://REEMPLAZA-URL/servidores-migracion-azure-03.png)

<br>

### Step 2. Import the machine from Plenit

In **Cloud Services → Migrations**, click **New migration** to open the wizard. If you have already migrated before, this screen also shows the history.

<br>

#### 2.1 Service and source type

Select **Servers** as the service to migrate and, as type, **Virtual**.

{/\* 📸 CAPTURE 4 · wizard · Servers service and Virtual type \*/}

![Selection of Servers and Virtual type in the wizard](https://REEMPLAZA-URL/servidores-migracion-azure-04.png)

<br>

#### 2.2 Format, delivery method and disk data

Select **Compatible Virtual Disks** as the format and **download via URL** as the delivery method. Then fill in the disk data:

* **File name**, with extension `.vhd`.
* **Disk URL**: the link you copied from Azure.
* **Disk type**: whether it is system or data.
* **Display name**: the disk identifier in the console.

Click **Create** and then **Next**.

{/\* 📸 CAPTURE 5 · wizard · download via URL and .vhd disk data \*/}

![Format, method by URL and disk data](https://REEMPLAZA-URL/servidores-migracion-azure-05.png)

<br>

#### 2.3 Organization, subscription and deployment

Indicate the **organization**, the **subscription** and the **availability zone** where to upload the disk. To the question **Do you want to deploy a new server with the imported disks?**, the usual thing is **Yes**.

{/\* 📸 CAPTURE 6 · wizard · organization, subscription, zone and deployment option \*/}

![Selection of organization, subscription and deployment](https://REEMPLAZA-URL/servidores-migracion-azure-06.png)

<br>

#### 2.4 Destination server

If you chose to deploy, indicate the **name**, the **operating system**, the **size** and the **network type** (standard or VPC). Click **Finish**.

{/\* 📸 CAPTURE 7 · wizard · destination server configuration \*/}

![Destination server configuration](https://REEMPLAZA-URL/servidores-migracion-azure-07.png)

<br>

#### 2.5 Migration status

When finished, Plenit shows the status: first **preparing transfer** and then, **waiting for transfer**. From there the internal processes begin that lead to the deployment of the new server.

<br>

> 🚧 The URL has to stay alive during the transfer
>
> Plenit downloads the disk from the Azure link, so the URL must remain valid while the transfer lasts. If it runs out of time, generate a new one in Azure and repeat the disk registration.

<br>

{/\* 📸 CAPTURE 8 · summary of migration status (preparing/waiting for transfer) \*/}

![Summary of the migration status](https://REEMPLAZA-URL/servidores-migracion-azure-08.png)

### Conclusion

The migration from Azure relies on a temporary link: Azure publishes the disk as a download URL and Plenit consumes it to fetch the VHD. That's why the two details that most often interrupt these migrations are the URL expiration time (give it plenty of margin) and the disk size (clean up and shut down the VM before exporting).

With those two things under control, the wizard does the rest and the server ends up being deployed in the subscription you chose.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.plenit.com/docs-en/productos/migrations/how-to/como-migrar-una-maquina-virtual-de-microsoft-azure-a-cloud.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
