Как перенести виртуальную машину между разными каталогами или облаками
Статья создана
Обновлена 16 августа 2024 г.
Описание задачи
Необходимо перенести виртуальную машину из одного облака или каталога в другое облако или каталог.
Решение
Перенос между облаками
Перенос между каталогами
Для переноса ВМ между облаками выполните следующие действия:
- Создайте образ из диска нужной ВМ.
- Добавьте IAM-пользователя в облако с образом, который вы хотите перенести.
- Назначьте IAM-пользователю минимально необходимые роли
resource-manager.clouds.member
иcompute.images.user
. - Настройте утилиту YC CLI для пользователя в целевом облаке.
- Получите идентификатор вашего образа. Для этого в Консоли управления
найдите поле Идентификатор на вкладке Образы или получите его с помощью YC CLI командойyc compute image list
. - Получите идентификатор облака, в котором расположен оригинальный образ. Для этого в Консоли управления
найдите поле Идентификатор или получите его с помощью YC CLI командойyc resource-manager cloud list
. - Создайте новый образ в целевом облаке используя YC CLI:
yc compute image create --name <имя_нового_образа> \
--source-image-id <id_оригинального_образа> \
--cloud-id <id_облака_где_расположен_оригинальный_образ>
После выполнения этих действий создайте новую виртуальную машину из полученного образа.
Для изменения каталога ВМ в CLI выполните следующие действия:
{% include [cli-install](../../../_includes/cli-install.md) %}
{% include [default-catalogue](../../../_includes/default-catalogue.md) %}
1. Получите список всех виртуальных машин в каталоге по умолчанию:
```bash
yc compute instance list
```
Результат:
```bash
+----------------------+-----------------+---------------+---------+----------------------+
| ID | NAME | ZONE ID | STATUS | DESCRIPTION |
+----------------------+-----------------+---------------+---------+----------------------+
| fhmXXXXXXXXXXXXXXXXX | first-instance | ru-central1-a | RUNNING | my first vm via CLI |
| fhmXXXXXXXXXXXXXXXXX | second-instance | ru-central1-a | RUNNING | my second vm via CLI |
+----------------------+-----------------+---------------+---------+----------------------+
```
1. Получите список всех каталогов в облаке по умолчанию:
```bash
yc resource-manager folder list
```
Результат:
```bash
+----------------------+--------------------+------------------+--------+
| ID | NAME | LABELS | STATUS |
+----------------------+--------------------+------------------+--------+
| b1gXXXXXXXXXXXXXXXXX | my-folder | | ACTIVE |
| b1gXXXXXXXXXXXXXXXXX | default | | ACTIVE |
+----------------------+--------------------+------------------+--------+
```
1. Посмотрите описание команды CLI для переноса виртуальной машины:
```bash
yc compute instance move --help
```
1. Перенесите виртуальную машину в другой каталог со следующими параметрами:
* в параметре `id` укажите идентификатор виртуальной машины, например `fhmXXXXXXXXXXXXXXXXX`;
* в параметре `destination-folder-id` укажите идентификатор целевого каталога, например `b1gXXXXXXXXXXXXXXXXX`.
```bash
yc compute instance move \
--id fhmXXXXXXXXXXXXXXXXX \
--destination-folder-id b1gXXXXXXXXXXXXXXXXX
```
Подробнее о команде `yc compute instance move` можно узнать в [справочнике CLI](../../../cli/cli-ref/managed-services/compute/instance/move.md).