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

При создании облачного сервера — виртуальной машины — в качестве загрузочного (системного) диска можно выбрать локальный диск или сетевой диск.

К любому серверу в качестве дополнительных можно добавлять сетевые диски.

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

Чтобы создать облачный сервер, в панели управления:

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

  4. В поле User data, открывающееся по кнопке {…}, дополнительно можно прописать пользовательский скрипт, выполняющийся при загрузке системы.

  5. Выберите конфигурацию виртуальной машины. Есть два вида конфигураций:

    • фиксированная — несколько линеек конфигураций с различным соотношением виртуальных процессорных ядер и оперативной памяти. Ограничения по ресурсам: до 36 vCPU и 128 ГБ RAM;
    • произвольная — свободный выбор соотношения ресурсов: до 8 vCPU и 64 ГБ RAM.
  6. Чтобы выбрать локальный диск в качестве загрузочного, отметьте галочку Локальный диск.

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

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

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

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

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

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

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

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

Созданный облачный сервер появится в списке серверов проекта.

Подготовка к созданию с помощью 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 |
| 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 |
+--------------------------------------+------------------+-----------------------------------------------------+

Можно выбрать приватную или публичную сеть. UUID сети нужно будет указать при создании сервера.

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

 

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

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

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

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

 

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

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

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

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.

Через 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.

Через 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.

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

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

С помощью CLI

  1. Создайте сетевой диск нужного размера и типа из образа – он будет загрузочным.
  2. Создайте дополнительный пустой сетевой диск нужного размера и типа.
  3. Создайте сервер. Параметр volume – загрузочный диск, а block-device-mapping – дополнительный диск.

Пример:

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