Создать виртуальную машину из публичного образа Windows
В этом разделе приведена инструкция для создания виртуальной машины с операционной системой Windows. Для создания виртуальной машины на базе Linux воспользуйтесь инструкцией Создать виртуальную машину из публичного образа Linux.
Чтобы создать виртуальную машину:
-
В консоли управления выберите каталог, в котором будет создана виртуальная машина.
-
В списке сервисов выберите Compute Cloud.
-
Нажмите кнопку Создать ВМ.
-
В блоке Базовые параметры:
-
Введите имя и описание ВМ. Требования к имени:
- Длина — от 3 до 63 символов.
- Может содержать строчные буквы латинского алфавита, цифры и дефисы.
- Первый символ — буква. Последний символ — не дефис.
Примечание
Имя виртуальной машины используется для генерации имени FQDN единожды — при создании ВМ. Если для вас важно имя FQDN, учитывайте это и задавайте нужное имя ВМ при создании.
-
Выберите зону доступности, в которой будет находиться виртуальная машина.
-
(опционально) Выберите или создайте сервисный аккаунт. Использование сервисного аккаунта позволяет гибко настраивать права доступа к ресурсам.
-
-
В блоке Образы из Cloud Marketplace:
- Выберите Windows.
- Выберите версию и редакцию операционной системы.
-
(опционально) В блоке Диски настройте загрузочный диск:
- Укажите нужный размер диска.
- Выберите тип диска.
-
(опционально) Если вы хотите создать виртуальную машину из существующего диска, в блоке Диски добавьте диск.
-
В блоке Вычислительные ресурсы:
- Выберите платформу.
- Укажите гарантированную долю и необходимое количество vCPU, а также объем RAM.
- При необходимости сделайте виртуальную машину прерываемой.
-
В блоке Сетевые настройки:
- Укажите идентификатор подсети или выберите облачную сеть из списка. Если сети нет, нажмите кнопку Создать новую сеть и создайте ее:
- В открывшемся окне укажите имя новой сети и выберите, к какой подсети необходимо подключить виртуальную машину. У каждой сети должна быть как минимум одна подсеть (если подсети нет, создайте ее). Затем нажмите кнопку Создать.
- В поле Публичный адрес выберите способ назначения адреса:
- Автоматически — чтобы назначить случайный IP-адрес из пула адресов Yandex.Cloud.
- Список — чтобы выбрать публичный IP-адрес из списка зарезервированных заранее статических адресов. Подробнее читайте в разделе Сделать динамический публичный IP-адрес статическим.
- Без адреса — чтобы не назначать публичный IP-адрес.
- (опционально) Выберите опцию защиты от DDoS-атак.
- Укажите идентификатор подсети или выберите облачную сеть из списка. Если сети нет, нажмите кнопку Создать новую сеть и создайте ее:
-
При создании виртуальной машины в операционной системе будет автоматически создан пользователь
Administrator
. В поле Пароль задайте пароль для этого пользователя, с которым можно будет войти на виртуальную машину по RDP.Не используйте легко подбираемые пароли. Пароли должны соответствовать требованиям сложности политики безопасности Windows.
В образах Windows Server от Yandex.Cloud у пароля пользователя
Administrator
по умолчанию не истекает срок действия. -
Нажмите кнопку Создать ВМ.
Виртуальная машина появится в списке. При создании виртуальной машине назначаются IP-адрес и имя хоста (FQDN). Эти данные можно использовать для доступа к виртуальной машине по RDP.
Если у вас еще нет интерфейса командной строки Yandex.Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
-
Посмотрите описание команды CLI для создания виртуальной машины:
$ yc compute instance create --help
-
Выберите один из публичных образов на базе операционной системы Windows.
Чтобы получить список доступных образов, выполните следующую команду:
yc compute image list --folder-id standard-images
Результат выполнения команды:
+----------------------+-------------------------------------+--------------------------+----------------------+--------+ | ID | NAME | FAMILY | PRODUCT IDS | STATUS | +----------------------+-------------------------------------+--------------------------+----------------------+--------+ ... | fdvk34al8k5nltb58shr | centos-7-1549279494 | centos-7 | dqni65lfhvv2den5gtv9 | READY | | fdv7ooobjfl3ts9gqp0q | windows-2016-gvlk-1548913814 | windows-2016-gvlk | dqnnc72gj2ist3ktjj1p | READY | | fdv4f5kv5cvf3ohu4flt | ubuntu-1604-lts-1549457823 | ubuntu-1604-lts | dqnnb6dc7640c5i968ro | READY | ... +----------------------+-------------------------------------+--------------------------+----------------------+--------+
-
Создайте YAML-файл (например,
metadata.yaml
) и укажите следующие данные:#ps1 net user administrator "<пароль>"
-
Создайте виртуальную машину в каталоге по умолчанию:
$ yc compute instance create \ --name second-instance \ --metadata-from-file user-data=metadata.yaml \ --zone ru-central1-a \ --public-ip \ --create-boot-disk image-folder-id=standard-images,image-family=windows-2016-gvlk
Данная команда создаст виртуальную машину со следующими характеристиками:
- С именем
second-instance
. - С OC Windows Server 2016.
- В зоне доступности
ru-central1-a
. - С пользователем
Administrator
. - С публичным IP.
Чтобы создать виртуальную машину без публичного IP, исключите флаг
--public-ip
.Задайте:
-
Имя виртуальной машины в флаге
--name
.Имя должно быть уникальным в рамках каталога. Может содержать строчные буквы латинского алфавита, цифры и дефисы. Первый символ должен быть буквой. Последний символ не может быть дефисом. Максимальная длина имени — 63 символа.
Примечание
Имя виртуальной машины используется для генерации имени FQDN единожды — при создании ВМ. Если для вас важно имя FQDN, учитывайте это и задавайте нужное имя ВМ при создании.
-
Пароль администратора в файле
metadata.yaml
. Пароль необходим для доступа на виртуальную машину по RDP.Не используйте легко подбираемые пароли. Пароли должны соответствовать требованиям сложности политики безопасности Windows.
В образах Windows Server от Yandex.Cloud у пароля пользователя
Administrator
по умолчанию не истекает срок действия.
- С именем
Создайте виртуальную машину с помощью метода Create для ресурса Instance
:
-
Получите IAM-токен, используемый для аутентификации в примерах:
- Инструкция для пользователя с аккаунтом на Яндексе.
- Инструкция для сервисного аккаунта.
-
Получите идентификатор каталога.
-
Получите информацию об образе, из которого надо создать виртуальную машину (идентификатор образа и минимальный размер диска):
- Если вы знаете семейство образа, получите информации о последнем образе в этом семействе:
$ export IAM_TOKEN=CggaATEVAgA... $ export FAMILY=windows-2016-gvlk $ curl -H "Authorization: Bearer ${IAM_TOKEN}" \ "https://compute.api.cloud.yandex.net/compute/v1/images:latestByFamily?folderId=standard-images&family=${FAMILY}" { "productIds": [ "f2eu62v659or2tqv28l0" ], "os": { "type": "WINDOWS" }, "id": "fd85s1nlcavgdpc16hj3", "folderId": "standard-images", "createdAt": "2019-04-30T10:53:56Z", "name": "windows-2016-gvlk-1556619485", "description": "Windows Server 2016 Datacenter is a operating system for virtualized private cloud environments. This version is activated with GVLK. Website and documentation: https://www.microsoft.com/en-us/cloud-platform/windows-server", "family": "windows-2016-gvlk", "storageSize": "26344423424", "minDiskSize": "26843545600", "status": "READY" }
- Вы можете получить информацию об образе из списка публичных образов.
- Если вы знаете семейство образа, получите информации о последнем образе в этом семействе:
-
Получите идентификатор подсети и идентификатор зоны доступности. В запросе укажите идентификатор каталога, в котором создана подсеть:
$ export IAM_TOKEN=CggaATEVAgA... $ export FOLDER_ID=b1gvmob95yysaplct532 $ curl -H "Authorization: Bearer ${IAM_TOKEN}" \ "https://vpc.api.cloud.yandex.net/vpc/v1/subnets?folderId=${FOLDER_ID}" { "subnets": [ { "v4CidrBlocks": [ "10.130.0.0/24" ], "id": "b0c6n43ftldh30l0vfg2", "folderId": "b1gvmob95yysaplct532", "createdAt": "2018-09-23T12:15:00Z", "name": "default-ru-central1-c", "description": "Auto-created default subnet for zone ru-central1-c", "networkId": "enpe3m3fagludao8aslg", "zoneId": "ru-central1-c" }, ... ] }
-
Создайте файл с телом запроса на создание виртуальной машины, например
body.json
. Укажите следующие параметры:-
folderId
— идентификатор каталога. -
name
— имя, которое будет присвоено виртуальной машине при создании. -
zoneId
— зона доступности, которая соответствует выбранной подсети. -
platformId
— платформа. -
resourceSpec
— ресурсы, доступные виртуальной машине. Значения должны соответствовать выбранной платформе. -
metadata
— в метаданных в свойствеuser-data
необходимо передать скрипт с паролем администратора, например:"metadata": { "user-data": "#ps1\nnet user Administrator Passw0rd" },
Не используйте легко подбираемые пароли. Пароли должны соответствовать требованиям сложности политики безопасности Windows.
В образах Windows Server от Yandex.Cloud у пароля пользователя
Administrator
по умолчанию не истекает срок действия. -
bootDiskSpec
— настройки загрузочного диска. Укажите идентификатор выбранного образа и размер диска. Размер диска должен быть не меньше минимального размера диска, указанного в информации об образе. -
networkInterfaceSpecs
— настройки сети.subnetId
— идентификатор выбранной подсети.primaryV4AddressSpec
— IP-адрес, который будет присвоен виртуальной машине. Чтобы добавить публичный IP-адрес виртуальной машине, укажите:"primaryV4AddressSpec": { "oneToOneNatSpec": { "ipVersion": "IPV4" } }
Подробнее про формат тела запроса в справочнике API.
Пример файла
body.json
:{ "folderId": "b1gvmob95yysaplct532", "name": "instance-demo-no-pwauth", "zoneId": "ru-central1-c", "platformId": "standard-v1", "resourcesSpec": { "memory": "4294967296", "cores": "2", }, "metadata": { "user-data": "#ps1\nnet user Administrator Passw0rd" }, "bootDiskSpec": { "diskSpec": { "size": "26843545600", "imageId": "fd85s1nlcavgdpc16hj3" } }, "networkInterfaceSpecs": [ { "subnetId": "b0c6n43ftldh30l0vfg2", "primaryV4AddressSpec": { "oneToOneNatSpec": { "ipVersion": "IPV4" } } } ] }
-
-
Создайте виртуальную машину:
$ export IAM_TOKEN=CggaATEVAgA... $ curl -X POST \ -H "Content-Type: application/json" \ -H "Authorization: Bearer ${IAM_TOKEN}" \ -d '@body.json' \ https://compute.api.cloud.yandex.net/compute/v1/instances
Если у вас ещё нет Terraform, установите его и настройте провайдер Yandex.Cloud.
-
Опишите в конфигурационном файле параметры ресурсов, которые необходимо создать:
Примечание
Если у вас уже есть подходящие ресурсы (облачная сеть и подсеть), описывать их повторно не нужно. Используйте их имена и идентификаторы в соответствующих параметрах.
yandex_compute_instance
— описание виртуальной машины:name
— имя виртуальной машины.platform_id
— платформа.resources
— количество ядер vCPU и объем RAM, доступные виртуальной машине. Значения должны соответствовать выбранной платформе.boot_disk
— настройки загрузочного диска. Укажите идентификатор выбранного образа. Вы можете получить идентификатор образа из списка публичных образов.network_interface
— настройка сети. Укажите идентификатор выбранной подсети. Чтобы автоматически назначить виртуальной машине публичный IP-адрес, укажитеnat = true
.metadata
— в метаданных в параметреuser-data
необходимо передать скрипт с паролем администратора.
yandex_vpc_network
— описание облачной сети.yandex_vpc_subnet
— описание подсети, к которой будет подключена виртуальная машина.
Пример структуры конфигурационного файла:
resource "yandex_compute_instance" "vm-1" { name = "windows-vm" 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 = { user-data = "#ps1\nnet user Administrator <пароль администратора>" } } resource "yandex_vpc_network" "network-1" { name = "network1" } resource "yandex_vpc_subnet" "subnet-1" { name = "subnet1" zone = "<зона доступности>" network_id = "${yandex_vpc_network.<имя сети>.id}" }
Более подробную информацию о ресурсах, которые вы можете создать с помощью Terraform, см. в документации провайдера.
-
Проверьте корректность конфигурационных файлов.
-
В командной строке перейдите в папку, где вы создали конфигурационный файл.
-
Выполните проверку с помощью команды:
$ terraform plan
Если конфигурация описана верно, в терминале отобразится список создаваемых ресурсов и их параметров. Если в конфигурации есть ошибки, Terraform на них укажет.
-
-
Разверните облачные ресурсы.
-
Если в конфигурации нет ошибок, выполните команду:
$ terraform apply
-
Подтвердите создание ресурсов.
После этого в указанном каталоге будут созданы все требуемые ресурсы. Проверить появление ресурсов и их настройки можно в консоли управления.
-
Примечание
Обычно запуск виртуальной машины и инициализация RDP занимает до 6 минут. В редких случаях загрузка может значительно превышать указанное время. Например, при использовании:
- Виртуальных машин с гарантированной долей vCPU меньше 100%.
- Виртуальных машин, которые производят нагрузку свыше лимита IOPS на загрузочный диск.
- Сетевых HDD-дисков малого объема.
Публичный IP-адрес можно сделать статическим. Подробнее читайте в разделе Сделать публичный IP-адрес виртуальной машины статическим.