# Как перенести виртуальную машину между разными каталогами или облаками


## Описание задачи {#case-description}

Необходимо перенести виртуальную машину из одного облака или каталога в другое облако или каталог.

## Решение {#case-resolution}

{% list tabs %}

- Перенос между облаками

    Для переноса ВМ между облаками выполните следующие действия:

    1. [Создайте образ из диска нужной ВМ](../../../compute/operations/image-create/create-from-disk.md).
    1. [Добавьте IAM-пользователя](../../../organization/operations/add-account.md) в облако с образом, который вы хотите перенести.
    1. [Назначьте IAM-пользователю минимально необходимые роли](../../../iam/operations/roles/grant.md) `resource-manager.clouds.member` и `compute.images.user`.
    1. [Настройте](../../../cli/quickstart.md) утилиту YC CLI для пользователя в целевом облаке.
    1. Получите идентификатор вашего образа. Для этого в [Консоли управления](https://kz.console.yandex.cloud) найдите поле **Идентификатор** на вкладке **Образы** или получите его с помощью YC CLI командой `yc compute image list`.
    1. Получите идентификатор облака, в котором расположен оригинальный образ. Для этого в [Консоли управления](https://kz.console.yandex.cloud) найдите поле **Идентификатор** или получите его с помощью YC CLI командой `yc resource-manager cloud list`.
    1. Создайте новый образ в целевом облаке используя YC CLI:

    ```
    yc compute image create --name <имя_нового_образа> \
    --source-image-id <id_оригинального_образа> \
    --cloud-id <id_облака_где_расположен_оригинальный_образ>
    ```

    После выполнения этих действий [создайте новую виртуальную машину](../../../compute/operations/vm-create/create-from-user-image.md#create-vm-from-image) из полученного образа.

- Перенос между каталогами

    Для изменения каталога ВМ в CLI выполните следующие действия:

    Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), [установите и инициализируйте его](../../../cli/quickstart.md#install).

    По умолчанию используется каталог, указанный при [создании](../../../cli/operations/profile/profile-create.md) профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду `yc config set folder-id <идентификатор_каталога>`. Также для любой команды вы можете указать другой каталог с помощью параметров `--folder-name` или `--folder-id`. Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.

    1. Получите список всех виртуальных машин в каталоге по умолчанию:

        ```bash
        yc compute instance list
        ```

        Результат:

        ```bash
        +----------------------+-----------------+--------------------+---------+----------------------+
        |          ID          |       NAME      |       ZONE ID      | STATUS  |     DESCRIPTION      |
        +----------------------+-----------------+--------------------+---------+----------------------+
        | fhm***************** | first-instance  | kz1-a  | RUNNING | my first vm via CLI  |
        | fhm***************** | second-instance | kz1-a  | RUNNING | my second vm via CLI |
        +----------------------+-----------------+--------------------+---------+----------------------+
        ```      

    1. Получите список всех каталогов в облаке по умолчанию:

        ```bash
        yc resource-manager folder list
        ```

        Результат:

        ```bash
        +----------------------+--------------------+------------------+--------+
        |          ID          |        NAME        |      LABELS      | STATUS |
        +----------------------+--------------------+------------------+--------+
        | b1g***************** | my-folder          |                  | ACTIVE |
        | b1g***************** | default            |                  | ACTIVE |
        +----------------------+--------------------+------------------+--------+
        ```

    1. Посмотрите описание команды CLI для переноса виртуальной машины:

        ```bash
        yc compute instance move --help
        ```

    1. Перенесите виртуальную машину в другой каталог со следующими параметрами: 

        * в параметре `id` укажите идентификатор виртуальной машины, например `fhm*****************`;
        * в параметре `destination-folder-id` укажите идентификатор целевого каталога, например `b1g*****************`.

        ```bash
        yc compute instance move \
            --id fhm***************** \
            --destination-folder-id b1g*****************
        ```

        Подробнее о команде `yc compute instance move` можно узнать в [справочнике CLI](../../../cli/cli-ref/compute/cli-ref/instance/move.md).

{% endlist %}