Перейти к основному содержимому

Создать несколько облачных серверов через OpenStack CLI

Последнее изменение:

Используйте флаг --debug в командах OpenStack CLI, чтобы включить отображение отладочной информации при выполнении команд. Флаг выводит полные запросы к OpenStack API, ответы серверов, а также внутренние шаги выполнения команды. Это помогает диагностировать проблемы с аутентификацией, конфигурацией или взаимодействием с сервисами OpenStack.

  1. Опционально: настройте OpenStack CLI.

  2. Опционально: добавьте SSH-ключ сервисному пользователю.

  3. Создайте приватную сеть и подсеть.

  4. Создайте облачный роутер, подлюченный к внешней сети.

  5. Подключите приватную сеть к облачному роутеру.

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

  7. Создайте облачные серверы.

  8. Создайте публичные IP-адреса.

  9. Подключите публичные IP-адреса к облачным серверам.

1. Опционально: настроить OpenStack CLI

Используйте подраздел Настроить OpenStack CLI средствами ОС или Настроить OpenStack CLI в Docker-контейнере⁠ инструкции OpenStack CLI.

Если вы уже настроили OpenStack CLI, запустите его.

2. Опционально: добавить публичный SSH-ключ сервисному пользователю

Если у сервисного пользователя, через которого вы авторизовались в OpenStack API, уже добавлен SSH-ключ, пропустите шаг.

  1. Создайте SSH-ключ.

  2. В панели управления в верхнем меню нажмите Аккаунт.

  3. Перейдите в раздел Сервисные пользователи.

  4. Откройте страницу сервисного пользователя → вкладка Доступ.

  5. В строке SSH-ключи нажмите Добавить ключ.

  6. Введите имя ключа.

  7. В поле Публичный ключ вставьте публичный ключ, который вы создали на шаге 1.

  8. Нажмите Добавить.

3. Создать приватную сеть и подсеть

  1. Откройте CLI.

  2. Создайте приватную сеть:

    openstack network create <network_name>

    Укажите <network_name> — имя приватной сети.

  3. Создайте подсеть в приватной сети:

    openstack subnet create \
    --subnet-range <cidr> \
    <dhcp> \
    --gateway <gateway> \
    --network <network> \
    <subnet_name>

    Укажите:

    • <cidr> — CIDR приватной подсети, например 192.168.0.0/24;
    • <dhcp>— настройка опции DHCP. Укажите одно из значений:
      • --dhcp — включить DHCP;
      • --no-dhcp — отключить DHCP;
    • <gateway> — IP-адрес шлюза по умолчанию, например 192.168.0.1;
    • <network> — ID или имя приватной сети, которую вы создали на шаге 2;
    • <subnet_name> — имя приватной подсети.

4. Создать облачный роутер, подлюченный к внешней сети

  1. Создайте облачный роутер:

    openstack router create <router_name>

    Укажите <router_name> — имя облачного роутера.

  2. Опционально: подключите облачный роутер к внешней сети — для роутера будет выделен внешний IP-адрес:

    openstack router set --external-gateway external-network <router>

    Укажите <router> — ID или имя облачного роутера, который вы создали на шаге 1.

5. Подключить подсеть к облачному роутеру

  1. Подключите подсеть к облачному роутеру:

    openstack router add subnet <router> <subnet>

    Укажите:

6. Добавить порты для серверов в подсеть

  1. Создайте порт в подсети:

    openstack port create \
    --network <network> \
    --fixed-ip subnet=<subnet>,ip-address=<port_ip_address> \
    <port_name>

    Укажите:

    • <network> — ID или имя приватной сети, сети глобального роутера, которую вы создали на этапе 4. Список сетей можно посмотреть с помощью команды openstack network list;
    • <subnet> — ID или имя подсети, которую вы создали на этапе 4. Список подсетей можно посмотреть с помощью команды openstack subnet list;
    • <port_ip_address> — IP-адрес порта;
    • <port_name> — имя порта.
  2. Повторите шаг 1, чтобы создать порты для каждого нового облачного сервера.

7. Создать облачные серверы

  1. Создайте облачный сервер:

    openstack server create \
    [--image <image> | --volume <volume> | --snapshot <snapshot>] \
    --flavor <flavor> \
    --availability-zone <pool_segment> \
    --nic port-id=<port_uuid> \
    --security-group <security_group> \
    --key-name <key_name> \
    <server_name>

    Укажите:

    • тип источника:
      • --image <image> — для создания сервера из готового или собственного образа. Параметр <image> — ID или имя образа. Образ должен находиться в одном пуле с сервером. Список образов можно посмотреть с помощью команды openstack image list;
      • --volume <volume> — для создания сервера из сетевого диска. Параметр <volume> — ID или имя диска. Диск должен находиться в одном сегменте пула с сервером. Список сетевых дисков можно посмотреть с помощью команды openstack volume list;
      • --snapshot <snapshot> — для создания сервера из снапшота. Параметр <snapshot> — ID или имя снапшота. Снапшот должен находиться в одном сегменте пула с сервером. Список снапшотов можно посмотреть с помощью команды openstack snapshot list;
    • <flavor> — ID или имя флейвора. Флейворы соответствуют конфигурациям облачного сервера и определяют количество vCPU, RAM и размер локального диска (опционально) сервера. Можно использовать флейворы фиксированных конфигураций или создать флейвор. Например, 4011 — ID для создания сервера с фиксированной конфигурацией линейки Memory Line с 2 vCPU, 16 ГБ RAM в пуле ru-9. Список флейворов можно посмотреть с помощью команды openstack flavor list или в таблице Список флейворов фиксированной конфигурации во всех пулах;
    • <pool_segment>сегмент пула, в котором будет создан облачный сервер, например ru-9a. Список доступных сегментов пула можно посмотреть в инструкции Матрицы доступности;
    • <port_uuid> — ID порта, который вы создали на этапе 7. Список портов можно посмотреть с помощью команды openstack port list;
    • <security_group> — ID или имя группы безопасности, которая будет назначена на все порты сервера. Чтобы создать сервер с группой безопасности, в сети должна быть включена фильтрация трафика (port security). Список групп можно посмотреть с помощью команды openstack security group list;
    • <key_name> — имя публичного SSH-ключа для сервисного пользователя, который вы добавили на этапе 2. Список ключей можно посмотреть с помощью команды openstack keypair list;
    • опционально: --block-device-mapping vdb=<extra_volume> — ID или имя дополнительного диска. Список дисков можно посмотреть с помощью команды openstack volume list;
    • опционально: --tag <tag_name> --os-compute-api-version 2.52тег для добавления дополнительной информации о сервере;
    • опционально: --tag preemptible --os-compute-api-version 2.72 — тег для создания прерываемого сервера;
    • опционально: --user-data <user_data.file> — путь до скрипта с данными, закодированными в Base64. Сценарии и задачи из скрипта выполнятся при первой загрузке операционной системы. Примеры скриптов можно посмотреть в инструкции User data;
    • <server_name> — имя сервера.
  2. Повторите шаг 1, чтобы создать нужное количество серверов.

8. Создать публичные IP-адреса

  1. Создайте публичный IP-адрес:

    openstack floating ip create external-network
  2. Повторите шаг 1, чтобы создать публичные IP-адреса для всех облачных серверов.

9. Подключить публичные IP-адреса к облачным серверам

  1. Подключите публичный IP-адрес к порту облачного сервера:

    openstack floating ip set --port <port> <public_ip_address>

    Укажите:

    • <port> — ID порта облачного сервера, который вы добавили на этапе 7;
    • <public_ip_address> — ID или публичный IP-адрес, который вы создали на этапе 9. Список публичных IP-адресов можно посмотреть с помощью команды openstack floating ip list.
  2. Повторите шаг 1, чтобы подключить публичные IP-адреса ко всем облачным серверам.