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

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

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

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

Для создания облачного сервера в панели управления Облачной платформой:

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

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

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

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

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

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

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

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

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

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

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

Подготовка к созданию с помощью 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 можно создать проект с облачным сервером с загрузочным локальным диском, используя готовый пример на 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. Создайте сервер. Параметр 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