Создать несколько облачных серверов через OpenStack CLI
Используйте флаг --debug в командах OpenStack CLI, чтобы включить отображение отладочной информации при выполнении команд.
Флаг выводит полные запросы к OpenStack API, ответы серверов, а также внутренние шаги выполнения команды.
Это помогает диагностировать проблемы с аутентификацией, конфигурацией или взаимодействием с сервисами OpenStack.
-
Опционально: настройте OpenStack CLI.
-
Опционально: добавьте SSH-ключ сервисному пользователю.
1. Опционально: настроить OpenStack CLI
Используйте подраздел Настроить OpenStack CLI средствами ОС или Настроить OpenStack CLI в Docker-контейнере инструкции OpenStack CLI.
Если вы уже настроили OpenStack CLI, запустите его.
2. Опционально: добавить публичный SSH-ключ сервисному пользователю
Если у сервисного пользователя, через которого вы авторизовались в OpenStack API, уже добавлен SSH-ключ, пропустите шаг.
-
В панели управления в верхнем меню нажмите Аккаунт.
-
Перейдите в раздел Сервисные пользователи.
-
Откройте страницу сервисного пользователя → вкладка Доступ.
-
В строке SSH-ключи нажмите Добавить ключ.
-
Введите имя ключа.
-
В поле Публичный ключ вставьте публичный ключ, который вы создали на шаге 1.
-
Нажмите Добавить.
3. Создать приватную сеть и подсеть
-
Откройте CLI.
-
Создайте приватную сеть:
openstack network create <network_name>Укажите
<network_name>— имя приватной сети. -
Создайте подсеть в приватной сети:
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. Создать облачный роутер, подлюченный к внешней сети
-
Создайте облачный роутер:
openstack router create <router_name>Укажите
<router_name>— имя облачного роутера. -
Опционально: подключите облачный роутер к внешней сети — для роутера будет выделен внешний IP-адрес:
openstack router set --external-gateway external-network <router>Укажите
<router>— ID или имя облачного роутера, который вы создали на шаге 1.
5. Подключить подсеть к облачному роутеру
-
Подключите подсеть к облачному роутеру:
openstack router add subnet <router> <subnet>Укажите:
<router>— ID или имя облачного роутера, который вы создали на этапе 5;<subnet>— ID или имя приватной подсети, которую вы создали на этапе 4.
6. Добавить порты для серверов в подсеть
-
Создайте порт в подсети:
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>— имя порта.
-
Повторите шаг 1, чтобы создать порты для каждого нового облачного сервера.
7. Создать облачные серверы
-
Создайте облачный сервер:
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>— имя сервера.
- тип источника:
-
Повторите шаг 1, чтобы создать нужное количество серверов.
8. Создать публичные IP-адреса
-
Создайте публичный IP-адрес:
openstack floating ip create external-network -
Повторите шаг 1, чтобы создать публичные IP-адреса для всех облачных серверов.
9. Подключить публичные IP-адреса к облачным серверам
-
Подключите публичный IP-адрес к порту облачного сервера:
openstack floating ip set --port <port> <public_ip_address>Укажите:
<port>— ID порта облачного сервера, который вы добавили на этапе 7;<public_ip_address>— ID или публичный IP-адрес, который вы создали на этапе 9. Список публичных IP-адресов можно посмотреть с помощью командыopenstack floating ip list.
-
Повторите шаг 1, чтобы подключить публичные IP-адреса ко всем облачным серверам.