VK Cloud logo

Создание в CLI

Набор инструментов для работы с инфраструктурой позволяет создавать инстансы и управлять ими из командной строки.

Рассмотрим создание виртуальной машины при использовании Openstack CLI.

Перед началом работы

Для создания виртуальной машины следует зарегистрироваться на Платформе VK Cloud, убедиться в наличии активированного сервиса Облачных вычислений, положительного баланса счета личного кабинета, а также достаточного количества квот ресурсов для создания желаемой конфигурации инстанса.

Обзор

Основные параметры CLI для запуска инстанса:

  • Источник инстанса — может быть образ, снапшот (снимок) или том блочного хранилища, который содержит образ или снапшот.
  • Name (имя инстанса) — отображаемое имя инстанса. Также задает hostname в ОС.
  • Flavor (флейвор) — конфигурация инстанса, определяющая ограничения объема виртуальных CPU и RAM для виртуальной машины.
  • Key pair (ключевая пара) — это учётные данные SSH, которые используются для настройки аутентификации основного пользователя развертываемой ОС в инстансе. Необходимо создать хотя бы одну пару ключей для каждого проекта. Если ключевая пара уже создана с помощью внешнего инструмента, можно импортировать ее в OpenStack. Также можно использовать пару ключей для нескольких инстансов, принадлежащих этому проекту.
  • Security Group (группа безопасности) — определяет правила для входящего и исходящего трафика. Группы безопасности содержат набор политик брандмауэра, известных как правила группы безопасности.
  • Floating IP-address (плавающий IP-адрес) — при необходимости можно назначить плавающий (общедоступный) IP-адрес инстансу.
  • Network (сеть) — позволяет определить сеть, в которой будет находиться инстанс. По умолчанию в проекте уже создана сеть ext-net.
  • Volume (диск или том) — используется для подключения диска (блочного устройства) к инстансу.

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

Сбор параметров

Отображение списка доступных флейворов

Выбранный идентификатор (ID) флейвора будет использован для создания инстанса:

openstack flavor list

Получить список доступных образов

Выбранный идентификатор группы безопасности будет использован при создании инстанса:

openstack image list

Список доступных групп безопасности

Выбранный идентификатор группы безопасности будет использована при создании инстанса:

openstack security group list

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

При назначении инстансу группы безопасности "default" будет невозможен доступ к этой машине через SSH.

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

openstack security group show default

Создание группы безопасности

По умолчанию группа безопасности "default" применяется ко всем инстансам и включает правила брандмауэра, запрещающие удаленный доступ к виртуальным машинам. Для образов Linux, таких как Ubuntu или CentOS, рекомендуется разрешить как минимум ICMP (ping) и SSH.

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

1openstack security group create \
2--description ICMP+SSH
3--project YOURPROJECT_ID
4SECURITY_GROUP_NAME

Для добавления правила, разрешающего SSH:

openstack security group rule create --proto tcp --dst-port 22 ICMP+SSH

Для добавления разрешающего правила для ICMP:

openstack security group rule create --proto icmp ICMP+SSH

Список доступных ключевых пар

Обзор доступных ключевых пары и выбор идентификатора требуемой ключевой пары для доступа по SSH:

openstack keypair list

Сгенерировать ключевую пару и загрузить ее в проект можно при помощи команд:

1ssh-keygen -q -N ""
2openstack keypair create --public-key ~/.ssh/id_rsa.pub mykey

Список доступных сетей

Проверить наличие доступных в проекте сетей:

openstack network list

Запуск инстанса

Для начала следует создать диск из образа с операционной системой:

openstack volume create --size 20 --type ms1 --image fcdee862-6053-4270-9812-728b47ad2833 --bootable Ubuntu_boot_disk

Полученный ID диска будет необходим для запуска инстанса.

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

  • Флейвор — b7d20f15-82f1-4ed4-a12e-e60277fe955f
  • Диск — b4071336-46a3-4cb7-ae3b-403f815862ad
  • Ключевая пара — myKey
  • Группа безопасности — 77864043-2111-4e6a-8e4d-ba51ef82ad4b
  • Сеть — 298117ae-3fa4-4109-9e08-8be5602be5a2
  • Имя сервера — можно выбрать любое имя при желании, но в этом примере будет использоваться myNewServer.

Если загружать инстанс с INSTANCE_NAME, длина которого превышает 63 символа, VK Cloud автоматически урезает его при преобразовании в имя хоста, чтобы обеспечить правильную работу dnsmasq.

В этом примере команда разбивается на отдельные строки:

1openstack server create --flavor b7d20f15-82f1-4ed4-a12e-e60277fe955f \
2                        --volume b4071336-46a3-4cb7-ae3b-403f815862ad \
3                        --key-name myKey \
4                        --security-group 77864043-2111-4e6a-8e4d-ba51ef82ad4b \
5                        --network 298117ae-3fa4-4109-9e08-8be5602be5a2 \
6                        myNewServer

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

Можно удалить символ \ и поместить каждый параметр в одну строку.

Например:

openstack server create --flavor b7d20f15-82f1-4ed4-a12e-e60277fe955f --volume b4071336-46a3-4cb7-ae3b-403f815862ad --key-name myKey --security-group 77864043-2111-4e6a-8e4d-ba51ef82ad4b --network 298117ae-3fa4-4109-9e08-8be5602be5a2 myNewServer

Если сервер был создан правильно, можно увидеть такой вывод:

+-----------------------------+------------------------------------------------------------+
| Field                       | Value                                                      |
+-----------------------------+------------------------------------------------------------+
| OS-DCF:diskConfig           | MANUAL                                                     |
| OS-EXT-AZ:availability_zone |                                                            |
| 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                   |                                                            |
| adminPass                   | H7abydAd8Lhi                                               |
| config_drive                |                                                            |
| created                     | 2020-08-09T20:22:58Z                                       |
| flavor                      | Standard-2-4-50 (b7d20f15-82f1-4ed4-a12e-e60277fe955f)     |
| hostId                      |                                                            |
| id                          | da4312fa-461f-4fcd-83ed-2441c93a73fb                       |
| image                       | Ubuntu-19.10-202003 (fcdee862-6053-4270-9812-728b47ad2833) |
| key_name                    | myKey                                                      |
| name                        | myNewServer                                                |
| progress                    | 0                                                          |
| project_id                  | 74f4a279430d481792c7d4c2cf233c26                           |
| properties                  |                                                            |
| security_groups             | name='77864043-2111-4e6a-8e4d-ba51ef82ad4b'                |
| status                      | BUILD                                                      |
| updated                     | 2020-08-09T20:22:59Z                                       |
| user_id                     | 4b8b2d73b31e423fabfb898d8ecaec29                           |
| volumes_attached            |                                                            |
+-----------------------------+------------------------------------------------------------+

Состояние bilding означает, что инстанс запущен, но еще не готов к использованию. Состояние active указывает на то, что инстанс активен. Скопируйте значение административного пароля из поля adminPass. Вы можете использовать этот пароль позже для входа на свой сервер через консоль KVM.

Также можно увидеть информацию о новом инстансе в панели VK Cloud.

Для получения дополнительных параметров используется следующая команда:

openstack help server create

Можно также помещать произвольные локальные файлы в файловую систему экземпляра во время создания с помощью параметра --file <dest-filename = source-filename>. Доступно хранение до пяти файлов.

Например, если у есть специальный файл авторизованных ключей с именем special_authorized_keysfile, который нужно поместить в инстанс, а не использовать обычную инъекцию ключа SSH, можно добавить параметр –file, как показано в следующем примере:

--file /root/.ssh/authorized_keys=special_authorized_keysfile

Проверить состояние инстанса:

Для просмотра списка всех серверов используется команда list:

openstack server list

В списке показаны идентификатор, имя, статус, IP-адреса, образ и флейвор для всех инстансов в проекте.

Если при создании инстанса не предоставить ключевую пару, осуществить доступ к такому инстансу будет невозможно.