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

Перед началом работы

Подготовьте и загрузите образ, из которого будет создаваться ВМ.

Убедитесь, что загруженный образ находится в состоянии READY.

Создайте виртуальную машину из подготовленного образа

  1. Откройте каталог, в котором будет создана виртуальная машина.

  2. Нажмите кнопку Создать ресурс.

  3. Выберите Виртуальная машина.

  4. В поле Имя введите имя виртуальной машины.

    • Длина — от 3 до 63 символов.
    • Может содержать строчные буквы латинского алфавита, цифры и дефисы.
    • Первый символ — буква. Последний символ — не дефис.

    Примечание

    Имя виртуальной машины используется для генерации имени FQDN единожды — при создании ВМ. Если для вас важно имя FQDN, учитывайте это и задавайте нужное имя виртуальной машины при создании. Подробнее про генерацию имени FQDN читайте в разделе Имя хоста и FQDN.

  5. Выберите зону доступности, в которой будет находиться виртуальная машина.

  6. В блоке Диски нажмите Добавить диск.

    1. В поле Имя введите имя диска.
    2. Задайте требуемый размер диска.
    3. В блоке Назначение диска выберите Загрузочный.
    4. Выберите тип диска: HDD или SSD.
    5. В блоке Наполнение выберите Образ. Откроется список загруженных вами образов.
    6. Выберите нужный образ.
    7. Нажмите кнопку Добавить.
  7. В блоке Вычислительные ресурсы:

    • Выберите платформу.
    • Укажите необходимое количество vCPU и объем RAM.
  8. В блоке Сетевые настройки нажмите кнопку Добавить сеть.

  9. В открывшемся окне выберите, к какой подсети необходимо подключить виртуальную машину при создании.

  10. В поле Публичный адрес выберите:

    • Автоматически — чтобы назначить публичный IP-адрес автоматически. Адрес выделяется из пула адресов Яндекс.Облака.
    • Список — чтобы выбрать публичный IP-адрес из списка статических адресов. Подробнее читайте в разделе Сделать динамический публичный IP-адрес статическим документации сервиса Virtual Private Cloud.
    • Без адреса — чтобы не назначать публичный IP-адрес.
  11. Укажите данные для доступа на виртуальную машину:

    • В поле Логин введите имя пользователя.
    • В поле SSH ключ вставьте содержимое файла открытого ключа. Пару ключей для подключения по SSH необходимо создать самостоятельно. Для создания ключей используйте сторонние инструменты, например утилиты ssh-keygen в Linux и macOS или PuTTYgen в Windows.
  12. Нажмите кнопку Создать ВМ.

Если у вас еще нет интерфейса командной строки Яндекс.Облака, установите и инициализируйте его.

По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name или --folder-id.

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

    $ yc compute instance create --help
    
  2. Получите список образов в каталоге по умолчанию:

    $ yc compute image list
    +----------------------+-------------------+--------+-------------+--------+
    |          ID          |       NAME        | FAMILY | PRODUCT IDS | STATUS |
    +----------------------+-------------------+--------+-------------+--------+
    |         ...          |         ...       |        |             |  ...   |
    | fd8gkcd3l6ov84aon8s1 |  your-test-image  |        |             | READY  |
    |         ...          |         ...       |        |             |  ...   |
    +----------------------+-------------------+--------+-------------+--------+
    
  3. Выберите идентификатор (ID) или имя (NAME) нужного образа.

  4. Создайте виртуальную машину в каталоге по умолчанию:

    $ yc compute instance create \
      --name test-vm-from-image \
      --zone ru-central1-a \
      --create-boot-disk name=disk1,size=5,image-id=fd8gkcd3l6ov84aon8s1 \
      --public-ip \
      --ssh-key ~/.ssh/id_rsa.pub
    
    

    Данная команда создаст виртуальную машину с загрузочным диском на 5 ГБ из заранее загруженного образа с именем test-vm-from-image.

    • Длина — от 3 до 63 символов.
    • Может содержать строчные буквы латинского алфавита, цифры и дефисы.
    • Первый символ — буква. Последний символ — не дефис.

    Примечание

    Имя виртуальной машины используется для генерации имени FQDN единожды — при создании ВМ. Если для вас важно имя FQDN, учитывайте это и задавайте нужное имя виртуальной машины при создании. Подробнее про генерацию имени FQDN читайте в разделе Имя хоста и FQDN.

    На машине будет создан пользователь yc-user с публичным ключом из файла ~/.ssh/id_rsa.pub. Виртуальная машина получит публичный IP-адрес. Чтобы создать виртуальную машину без публичного IP, исключите флаг --public-ip.

Воспользуйтесь методом Create для ресурса Instance.

Если у вас ещё нет Terraform, установите его и настройте провайдер Яндекс.Облака.

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

  1. Опишите в конфигурационном файле параметры ресурсов, которые необходимо создать:

    Примечание

    Если у вас уже есть подходящие ресурсы (облачная сеть и подсеть), описывать их повторно не нужно. Используйте их имена и идентификаторы в соответствующих параметрах.

    • yandex_compute_instance — описание виртуальной машины:
      • name — имя виртуальной машины.
      • platform_idплатформа.
      • resources — количество ядер vCPU и объем RAM, доступные виртуальной машине. Значения должны соответствовать выбранной платформе.
      • boot_disk — настройки загрузочного диска. Укажите идентификатор загруженного образа.
      • network_interface — настройка сети. Укажите идентификатор выбранной подсети. Чтобы автоматически назначить виртуальной машине публичный IP-адрес, укажите nat = true.
      • metadata — в метаданных необходимо передать открытый ключ для SSH-доступа на виртуальную машину. Подробнее в разделе Метаданные виртуальной машины.
    • yandex_vpc_network — описание облачной сети.
    • yandex_vpc_subnet — описание подсети, к которой будет подключена виртуальная машина.

    Пример структуры конфигурационного файла:

    resource "yandex_compute_instance" "vm-1" {
    
      name        = "vm-from-image"
      platform_id = "standard-v2"
    
      resources {
        cores  = <количество ядер vCPU>
        memory = <объем RAM в ГБ>
      }
    
      boot_disk {
        initialize_params {
          image_id = "<идентификатор образа>"
        }
      }
    
      network_interface {
        subnet_id = "${yandex_vpc_subnet.subnet-1.id}"
        nat       = true
      }
    
      metadata = {
        ssh-keys = "<имя пользователя>:<содержимое SSH-ключа>"
      }
    }
    
    resource "yandex_vpc_network" "network-1" {
      name = "network1"
    }
    
    resource "yandex_vpc_subnet" "subnet-1" {
      name       = "subnet1"
      zone       = "<зона доступности>"
      network_id = "${yandex_vpc_network.network-1.id}"
    }
    

    Более подробную информацию о ресурсах, которые вы можете создать с помощью Terraform, см. в документации провайдера.

  2. Проверьте корректность конфигурационных файлов.

    1. В командной строке перейдите в папку, где вы создали конфигурационный файл.

    2. Выполните проверку с помощью команды:

      $ terraform plan
      

    Если конфигурация описана верно, в терминале отобразится список создаваемых ресурсов и их параметров. Если в конфигурации есть ошибки, Terraform на них укажет.

  3. Разверните облачные ресурсы.

    1. Если в конфигурации нет ошибок, выполните команду:

      $ terraform apply
      
    2. Подтвердите создание ресурсов.

    После этого в указанном каталоге будут созданы все требуемые ресурсы. Проверить появление ресурсов и их настройки можно в консоли управления.