Создание облачного сервера (виртуальной машины)

Можно создать сервер с:

  • загрузочным локальным диском;
  • загрузочным сетевым диском;
  • с загрузочным локальным диском и дополнительным сетевым диском;
  • с загрузочным сетевым диском и дополнительным сетевым диском.

Создание в панели управления

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

В открывшемся окне настройте параметры виртуальной машины:

  1. Укажите имя сервера, регион и зону. Имя машины присваивается автоматически, при необходимости его можно изменить.
  2. Определите источник для установки операционной системы. По умолчанию выбирается образ Ubuntu. Для того чтобы сменить образ операционной системы, нажмите на кнопку Выбрать другой источник. Можно выбрать один из готовых образов, использовать собственный образ, а также использовать ранее созданный диск или снапшот. Дополнительно можно прописать пользовательский скрипт, выполняющийся при загрузке системы, в поле User data, открывающееся по кнопке {…}.
  3. Задайте конфигурацию виртуальной машины. Существует два вида конфигураций сервера:

    • фиксированная — несколько линеек конфигураций, где представлены различные комбинации процессоров и оперативной памяти. Ограничения по ресурсам: до 36 CPU, 128 RAM в зависимости от линейки конфигурации;
    • произвольная — свободный выбор количества ядер и оперативной памяти в пределах ресурсов: 8 CPU, 64 RAM, 512 SSD.
  4. Для всех конфигураций серверов можно использовать дисковые хранилища - локальный (установите соответствующую галочку) или сетевой диск.

  5. Если выбран сетевой диск в качестве системного (галочка “Локальный диск” не установлена), то выберите тип сетевого диска:

    • базовый — для хранения больших объемов данных, которые не нужно часто читать или перезаписывать;
    • быстрый — меньшее время отклика и большая скорость работы по сравнению с базовым диском;
    • универсальный — для размещения системных дисков виртуальных машин.
  6. Укажите размер сетевого диска.

  7. Если в качестве системного диска указан локальный диск и нет необходимости в дополнительном диске, то сетевой диск можно удалить, нажав кнопку Удалить диск.

  8. Для добавления дополнительного сетевого диска нажмите кнопку Добавить сетевой диск.

  9. Выберите подходящий тип подсети, к которой будет подключен сервер. Если у пользователя уже есть какие-то подсети в регионе, в котором создаётся сервер, то в поле отображаются эти подсети.

    Примечание: подробнее о дальнейшей работе с сетями, например, о подключении сервера к внешней сети, в инструкции Управление сетями.

  10. Определите настройки доступа. Укажите root-пароль или добавьте SSH-ключ для более безопасного подключения.

  11. Нажмите кнопку Создать для завершения настройки новой виртуальной машины.

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

Примечание: если вы используете собственный или сторонний образ, при работе с консолью выбранного сервера смена пароля не будет работать.

Подготовка к созданию с помощью CLI

Подробно о начале работы через консольные клиенты читайте в инструкции Начало работы с OpenStack CLI.

Перед созданием облачного сервера вам нужно выбрать образ сервера, доступную зону, сеть и флейвор сервера.

Образ сервера

Вы можете выбрать готовый образ или загрузить собственный, подробнее в инструкции Создание образа.

Просмотрите список всех доступных образов операционных систем, используя команду:

openstack image list --public

Итоговый список выглядит следующим образом:

+--------------------------------------+--------------------------------------------+--------+
| ID                                   | Name                                       | Status |
+--------------------------------------+--------------------------------------------+--------+
| 771635f4-7604-4c1c-abd6-8934237d8816 | CentOS 7 64-bit                            | active |
| 0cd42521-8146-4488-967b-da6f6d15f156 | CentOS 7 Minimal 64-bit                    | active |
| ad82e097-d786-4201-a637-5a50abe95483 | CentOS 8 64-bit                            | active |
| 3b7d0b97-e808-45e4-877f-4b8801563497 | CoreOS                                     | active |
| cf7e6a23-bd30-4cad-98e5-88d0ede05954 | Debian 10 (Buster) 64-bit                  | active |
| 82ed4d6d-ca96-4736-beb3-3ad56f3c3a62 | Debian 8 (Jessie) 64-bit                   | active |
| 145e6700-8f6b-40ac-91d4-102d156aa9d0 | Debian 9 (Stretch) 64-bit                  | active |
| cf67b80c-9c08-439e-97f3-4c12bbc25feb | Fedora 28 64-bit                           | active |
| 37221cd3-f636-40e8-9624-f493a0e148df | Fedora 29 64-bit                           | active |
| 2b87f642-b581-43c1-9b84-46969d6199b6 | Fedora 30 64-bit                           | active |
| 694f5167-67d1-426f-808b-6606ebc14566 | Fedora 31 64-bit                           | active |
| 05372e42-e654-4349-865d-cd941f257e65 | Fedora Atomic 27 64-bit                    | active |
| e95f07cd-fcce-4813-88ca-50dfc6a60a66 | Fedora Atomic 28 64-bit                    | active |
| d0ebf434-cb62-4168-a3f1-1ea17a0a586a | Fedora Atomic 29 64-bit                    | active |
| bd6035e9-6813-44cf-b121-7a03b72a6f8f | RancherOS                                  | active |
| 1da506f9-1afa-4258-8049-9adc6988b5cb | Ubuntu 16.04 LTS 64-bit                    | active |
| 266e724e-d6a8-4b6e-86b8-9d634abe057b | Ubuntu 16.04 LTS GPU Drivers 64-bit        | active |
| c5c8d3cc-9a2c-48ce-adfe-93e066e9ae6e | Ubuntu 18.04 LTS 64-bit                    | active |
| 7d93991b-aa64-41de-a728-8d08018553cf | Ubuntu 18.04 LTS GPU Drivers 64-bit        | active |
| ca311e9f-943c-4ebb-849c-002b04962b4c | Ubuntu 20.04 LTS 64-bit                    | active |
| da041a03-7ae8-405f-bcd7-072f9fede164 | Windows Server 2012 R2 Standard            | active |
| d8735845-de63-4202-983e-c618888ccd08 | Windows Server 2016 Standard               | active |
| 568685fa-573b-48f5-971a-8162c9016c19 | Windows Server 2016 Standard (GPU Drivers) | active |
| 87bf1e26-5cb3-4d89-93eb-c094e1bffa62 | Windows Server 2019 Standard Legacy BIOS   | active |
| 8cd12e23-a228-4dbb-864f-319e80a8dd44 | blank-simple-image                         | active |
| bac517e3-6b48-47cf-8135-a3189785e539 | selectel-rescue-initrd                     | active |
| 1e3206a6-9e37-4d69-9733-855ade507782 | selectel-rescue-kernel                     | active |
+--------------------------------------+--------------------------------------------+--------+

Для просмотра информации об образе по UUID введите:

openstack image show <UUID image>

Для просмотра информации об образе по имени введите:

openstack image show <image name>

Выбрав нужный образ, скопируйте его ID — он понадобится при создании сервера.

 

Доступные зоны

В регионе может быть доступна одна или несколько зон. Каждая зона представляет собой набор серверов виртуализации и хранения данных, расположенных в отдельных стойках. Серверы в различных зонах можно объединять локальными сетями. Доступные в каждой зоне ресурсы определяются квотой зоны, управление которой осуществляется в панели управления проектами.

openstack availability zone list --compute

Список доступных зон выглядит следующим образом:

+-----------+-------------+
| Zone Name | Zone Status |
+-----------+-------------+
|   ru-1a   |  available  |
|   ru-1b   |  available  |
+-----------+-------------+

Сохраните имя выбранной зоны.

 

Просмотр информации о сетях

Для просмотра доступных сетей:

openstack network list

Ответ будет выглядеть следующим образом:

+--------------------------------------+------------------+-----------------------------------------------------+
| id                                   | name             | subnets                                             |
+--------------------------------------+------------------+-----------------------------------------------------+
| 1c037362-487f-4103-a73b-6cba3f5532dc | nat              | b7be542a-2eef-465e-aacd-34a0c83e6afa 192.168.0.0/24 |
| ab2264dd-bde8-4a97-b0da-5fea63191019 | external-network | 102a9263-2d84-4335-acfb-6583ac8e70aa                |
|                                      |                  | aa9e4fc4-63b0-432e-bcbd-82a613310acb                |
| fce90252-7d99-4fc7-80ae-ef763d12938d | newnetwork       | 5a1a68f9-b885-47b7-9c7e-6f0e08145e3b 192.168.1.0/24 |
+--------------------------------------+------------------+-----------------------------------------------------+

Можно выбрать приватную или публичную сеть. Каждая сеть имеет уникальный идентификационный номер (графа id), его нужно будет указать при создании нового сервера.

Подробнее о настройке сервера после создания, например, подключении плавающего IP-адреса или порта к серверу, в инструкции Управление сетями.

 

Флейвор сервера

В терминологии OpenStaсk конфигурации сервера обозначаются термином flavor.

Для создания сервера вы можете:

Сохраните ID и имя флейвора.

 

Просмотр типов сетевых дисков

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

Просмотрите список доступных типов:

openstack volume type list

Он выглядит следующим образом:

+--------------------------------------+-----------------+-----------+
|                  ID                  |       Name      | Is_Public |
+--------------------------------------+-----------------+-----------+
| 00a8c3b9-715e-438b-845c-89fbc1e9e62b |    fast.ru-1b   |   True   |
| 27c66842-2b9f-4d71-a957-383ca5ee19c4 |    fast.ru-1a   |   True   |
| 2c9a6741-5901-40ff-ba67-4a7e70ad7563 | universal.ru-1a |   True   |
| 48f5caf9-9bc9-49ed-bdf5-0b29c544b0b0 | universal.ru-1b |   True   |
| 9c535a8c-cce1-4780-95bf-76c68b99c52f |     iso.ru-1a   |   True   |
| c7f1cda0-ebcb-4711-8f50-e13e6e4fc9eb |   basic.ru-1b   |   True   |
| ea11f5ad-baeb-461e-9769-47facee5dbcd |   basic.ru-1a   |   True   |
+--------------------------------------+-----------------+-----------+

Для дисков серверов следует использовать типы fast, basic и universal в нужной зоне вида <тип диска>.<имя зоны>, например fast.ru-2b.

Перейдите к созданию облачного сервера. После создания он появится в списке серверов проекта.

Создание сервера с загрузочным локальным диском

С помощью CLI

Для создания облачного сервера с загрузочным локальным диском укажите зону доступности, имя выбранного флейвора, сеть и имя образа, из которого нужно создать сервер, например:

openstack server create \
          --availability-zone ru-2b \
          --flavor SL1.1-1024-8 \
          --nic net-id=net_name \
          --image 'Ubuntu 18.04 LTS 64-bit' \
    test-srv-with-boot-local

Ответ будет выглядеть следующим образом:

+-----------------------------+----------------------------------------------------------------+
| Field                       | Value                                                          |
+-----------------------------+----------------------------------------------------------------+
| OS-DCF:diskConfig           | MANUAL                                                         |
| OS-EXT-AZ:availability_zone | ru-2b                                                          |
| OS-EXT-STS:power_state      | NOSTATE                                                        |
| OS-EXT-STS:task_state       | scheduling                                                     |
| OS-EXT-STS:vm_state         | building                                                       |
| OS-SRV-USG:launched_at      | None                                                           |
| OS-SRV-USG:terminated_at    | None                                                           |
| accessIPv4                  |                                                                |
| accessIPv6                  |                                                                |
| addresses                   |                                                                |
| config_drive                |                                                                |
| created                     | 2020-04-28T03:34:29Z                                           |
| flavor                      | SL1.1-1024-8 (1311)                                            |
| hostId                      |                                                                |
| id                          | 980f8c19-3974-466e-803e-9239c8a8a14f                           |
| image                       | Ubuntu 18.04 LTS 64-bit (c5c8d3cc-9a2c-48ce-adfe-93e066e9ae6e) |
| key_name                    | None                                                           |
| name                        | test-srv-with-boot-local                                       |
| progress                    | 0                                                              |
| project_id                  | 04d92ef9fe254caaa90d6ecd2849c1cf                               |
| properties                  |                                                                |
| security_groups             | name='default'                                                 |
| status                      | BUILD                                                          |
| updated                     | 2020-04-28T03:34:29Z                                           |
| user_data                   | None                                                           |
| user_id                     | d38f8bea67f94083803c5066f458664a                               |
| volumes_attached            |                                                                |
+-----------------------------+----------------------------------------------------------------+

 

Через Terraform

Через Terraform можно создать проект с облачным сервером с загрузочным локальным диском, используя готовый пример на GitHub. Пример создания нескольких серверов с загрузочным локальным диском, объединённых в сеть, и сети серверов с балансировщиком нагрузки.

Создание сервера с загрузочным сетевым диском

С помощью CLI

Для создания облачного сервера с одним загрузочным сетевым диском:

  1. Создайте сетевой диск нужного размера и типа из образа (этот диск автоматически будет назначен загрузочным).
  2. Создайте сервер из этого диска. Укажите имя флейвора и сеть.

Пример создания сетевого диска:

openstack volume create --image 'Ubuntu 18.04 LTS 64-bit' --size 5 --type fast.ru-2b BOOT_VOLUME_NAME

Ответ будет выглядеть следующим образом:

+---------------------+--------------------------------------+
| Field               | Value                                |
+---------------------+--------------------------------------+
| attachments         | []                                   |
| availability_zone   | ru-2b                                |
| bootable            | false                                |
| consistencygroup_id | None                                 |
| created_at          | 2020-04-28T03:29:57.000000           |
| description         | None                                 |
| encrypted           | False                                |
| id                  | 3b447abb-a4ff-4f02-baac-a6f7a02bd21e |
| multiattach         | False                                |
| name                | BOOT_VOLUME_NAME                     |
| properties          |                                      |
| replication_status  | None                                 |
| size                | 5                                    |
| snapshot_id         | None                                 |
| source_volid        | None                                 |
| status              | creating                             |
| type                | fast.ru-2b                           |
| updated_at          | None                                 |
| user_id             | d38f8bea67f94083803c5066f458664a     |
+---------------------+--------------------------------------+

Пример создания сервера из сетевого диска:

openstack server create \
          --availability-zone ru-2b \
          --flavor SL1.1-1024 \
          --nic net-id=net_name \
          --volume BOOT_VOLUME_NAME \
    test-srv-with-boot-net-volume

Ответ будет выглядеть следующим образом:

+-----------------------------+--------------------------------------+
| Field                       | Value                                |
+-----------------------------+--------------------------------------+
| OS-DCF:diskConfig           | MANUAL                               |
| OS-EXT-AZ:availability_zone | ru-2b                                |
| OS-EXT-STS:power_state      | NOSTATE                              |
| OS-EXT-STS:task_state       | scheduling                           |
| OS-EXT-STS:vm_state         | building                             |
| OS-SRV-USG:launched_at      | None                                 |
| OS-SRV-USG:terminated_at    | None                                 |
| accessIPv4                  |                                      |
| accessIPv6                  |                                      |
| addresses                   |                                      |
| config_drive                |                                      |
| created                     | 2020-04-28T03:33:32Z                 |
| flavor                      | SL1.1-1024 (1011)                    |
| hostId                      |                                      |
| id                          | 112f9304-4a70-428f-b588-05d61436f9d8 |
| image                       |                                      |
| key_name                    | None                                 |
| name                        | test-srv-with-boot-net-volume        |
| progress                    | 0                                    |
| project_id                  | 04d92ef9fe254caaa90d6ecd2849c1cf     |
| properties                  |                                      |
| security_groups             | name='default'                       |
| status                      | BUILD                                |
| updated                     | 2020-04-28T03:33:31Z                 |
| user_data                   | None                                 |
| user_id                     | d38f8bea67f94083803c5066f458664a     |
| volumes_attached            |                                      |
+-----------------------------+--------------------------------------+

 

Через Terraform

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

Создание сервера с загрузочным локальным и дополнительным сетевым диском

С помощью CLI

  1. Создайте пустой сетевой диск нужного размера и типа.
  2. Создайте сервер из флейвора. Укажите зону доступности, сеть, имя сетевого диска и имя образа, из которого нужно создать сервер.

Пример:

openstack volume create --size 20 --type fast.ru-2b ADD_VOLUME_NAME

openstack server create \
          --availability-zone ru-2b \
          --flavor SL1.1-1024-8 \
          --nic net-id=net_name \
          --block-device-mapping vdb=ADD_VOLUME_NAME \
          --image 'Ubuntu 18.04 LTS 64-bit' \
    test-srv-with-boot-local-add-volume

 

Через Terraform

Через Terraform можно создать проект с облачным сервером с загрузочным локальным и дополнительным сетевым диском, используя готовый пример на GitHub.

Создание сервера с загрузочным сетевым и дополнительным сетевым диском

С помощью CLI

  1. Создайте сетевой диск нужного размера и типа из образа (этот диск автоматически будет назначен загрузочным).
  2. Создайте пустой сетевой диск нужного размера и типа.
  3. Создайте сервер из этого диска.

Пример:

openstack volume create --image 'Ubuntu 18.04 LTS 64-bit' --size 5 --type fast.ru-2b  BOOT_VOLUME_NAME

openstack volume create --size 20 --type fast.ru-2b ADD_VOLUME_NAME

openstack server create \
          --availability-zone ru-2b \
          --flavor SL1.1-1024 \
          --nic net-id=net_name \
          --block-device-mapping vdb=ADD_VOLUME_NAME \
          --volume BOOT_VOLUME_NAME \
    test-srv-with-boot-net-volume-add-volume

Создание сервера Windows с загрузочным локальным диском

С помощью CLI

Пример создания облачного сервера на базе Windows с локальным диском:

openstack server create \
          --availability-zone ru-2b \
          --flavor SL1.2-4096-32 \
          --nic net-id=net_name \
          --nic net-id=license_windows_2016_standard \
          --property admin_pass='qwerty' \
          --image 'Windows Server 2016 Standard' \
    test-win-with-boot-local

Создание сервера Windows с загрузочным сетевым диском

С помощью CLI

Пример создания облачного сервера на базе Windows с сетевым диском:

openstack volume create --image 'Windows Server 2016 Standard' --size 32 --type fast.ru-2b  WIN_BOOT_VOLUME_NAME

openstack server create \
          --availability-zone ru-2b \
          --flavor SL1.1-4096 \
          --nic net-id=net_name \
          --nic net-id=license_windows_2016_standard \
          --property admin_pass='qwerty' \
          --volume WIN_BOOT_VOLUME_NAME \
    test-win-with-boot-net-volume

 

Через Terraform

Через Terraform можно создать проект с облачным сервером на Windows с загрузочным сетевым диском, используя готовый пример на GitHub.

 

Восстановление сети с лицензиями

При разворачивании сервера на базе Windows из собственного образа или при удалении лицензионной подсети восстановить ее можно следующим образом (перед этим необходимо выделить лицензии в проекте):

openstack server add network test-win-with-boot-net-volume license_windows_2016_standard