Настоящий документ представляет собой рукводство по быстрому старту использования публичного облака AITU. Рукводство определяет порядок использования/управления ресурсами облака пользователями.
Aitu Cloud - публичое облако, в основе которого лежит проект с открытым исходным кодом OpenStack. Что такое OpenStack? OpenStack — это облачная операционная система, которая управляет большими пулами вычислительных ресурсов, хранилищ и сетевых ресурсов в центре обработки данных, и все они управляются через панель управления, которая дает администраторам контроль, а их пользователям предоставляется возможность выделять ресурсы через веб-интерфейс и при помощи клиента командной строки.
В aitu.cloud имеется возможность использовать разные способы управления проектом и его ресурсами: Horizon Dashboard, API(например через openstack client), Terraform.
Ссылки на ресурсы:
Для использования Horizon необходмио авторизоваться в Aitu Cloud или использовать URL, предоставленный облачным провайдером со своими авторизационными данными.
Документация Openstack Horizon Dashboard
Перед созданием Виртуальной машины(далее - ВМ), требуется создать следующие ресурсы:
Примечание:
Создание flavor’a доступно только администраторам облака/ проекта, поскольку это влияет на эффективное планирование в облаке.
Flavor - это тип инстанса или другими словами шаблон для его создания. В нем указываются объемы ресурсов выделяемых для ВМ (СPU Cores,RAM,Volume и т.д.).
Тарифы на ресурсы в облаке aitu можете посмотреть по ссылке.
Авторизуйтесь в облаке aitu и при создании и выборе параметров ВМ, укажите тот тип ВМ (flavor) который соответствует запрашиваемым ресурсам.
Ссылки на официальные ресурсы:
Образ операционной системы (далее- образ ОС) представляет собой файл, в котором содержится виртуальный диск с уже установленной на нем операционной системой. Образы ОС используются для создания ВМ в облаке такикх как ui.aitu.cloud.
В большинстве случаев облачный провайдер предоставляет готовые образы ОС с базовыми настройками под его облачную систему. Но также Вы можете при необходимости создать свой образ следуя инструкции по ссылке
При создании ВМ необходимо выбрать образ ОС из которой она будет запущена.
Образ ОС можно выбрать при создании ВМ из предоставленных в Horizon.
Примечание:
Список указан в качестве примера. Список доступных образов ОС может изменяться.
Перед созданием ВМ Вам необходимо создать сеть которую сможете привязать к созданной ВМ. Если Вам необходим доступ из вне на ваши ресурсы посмотрите пункт “Создание роутера”.
Шаг 1. Войдите в панель Horizon и перейдите в Network -> Networks
Шаг 2. Нажмите Create Network
Шаг 3. Заполните параметры
Шаг 4. Укажите адрес сети – например 192.168.0.0/24
Шаг 5. Укажите адреса DNS серверов которые будете использовать или введите те, которые предоставлены облачным провайдером
Большинство образов ОС предназначенных для облачных систем поддерживают аутентификацию по публичному ключу, а не привычную аутентификацию по паролю. Для этого перед запуском инстанса, Вы должны добавить публичный ключ .
Шаг 1. Для создания key pair перейдите во вкладку Compute -> Key Pairs и нажмите Create Key Pair
Шаг 2. Просмотрите список ключей
Шаг 3. Создайте пару ключей
Примечание:
После создания ключ пары у вас сгенерируются public/private ключи и загрузится файл с раширением pem.
После создания необходимых ресурсов можно перейти к созданию самой ВМ:
Перейдите во вкладку compute -> instances и нажмите Launch instance
Далее заполните параметры. Пункты, отмеченные * звездочкой, обязательны к заполнению/выбору. Необходимо выбрать источник, флейвор и сеть.Также можно указать keypair для доступа к ВМ по public/private ключу. Можно указать дополнительные параметры необходимые для Вашего варианта развертывания.
Ниже Вы можете увидеть примеры выбора параметров для запуска/создания ВМ. (Для более подробной инструкции перейти по ссылке)
$ openstack volume type list
+--------------------------------------+---------------+-----------+
| ID | Name | Is Public |
+--------------------------------------+---------------+-----------+
| 2f50e7ca-41b2-4340-a5ba-9350f840d45b | encr_standard | True |
| 75715241-df3f-486e-a2a1-dcb2c39cfc36 | encr_fast | True |
| d5c2f8bf-6759-416b-9020-a02a26015462 | standard | True |
| da73daf1-66e2-4c83-8788-91a57cf96115 | fast | True |
+--------------------------------------+---------------+-----------+
Шаг 1. Войдите в панель Volumes -> Volumes -> Create Volume. Нажмите Create volume
Шаг 2. Укажите имя диска и выберите необходимые параметры диска
Horizon:
Шифрование диска — технология защиты информации, переводящая данные на диске в нечитаемый код, который нелегальный пользователь не сможет легко расшифровать.
Зашифрованный диск создается также как и обычный диск. При создании передайте флаг, указывающий, что типом диска будет encr_standard или encr_fast. Если этот аргумент опущен, используется тип диска по умолчанию.
Авторизуйтесь при помощи своих учетных данных в панели управления облаком и перейдите во вкладку Volumes :
Нажмите на кнопку Create Volume и в поле Type выберите необходимый тип диска .
После создания диска можете его присоединить к существующей ВМ.
Дополнительная информация по зашифрованным дискам.
В Horizon присоединение диска выполняется наведением на ВМ и раскрытием дополнительного меню. Нажмите Attach и выберите необходимый volume/disk
Увеличить диск можно двумя способами: “на лету” и отсоединив диск от ВМ.
Увеличение диска “на лету” можно выполнить через Openstack CLI и
Horizon UI. В Horizon UI находим сам диск, выбираем
Extend Volume
и указываем новый размер.
Увеличить размер диска “на лету” через Openstack CLI производится следующей командой, размер диска задатеся в ГБ, следом нужно указать volume id:
openstack --os-volume-api-version 3.42 volume set --size 20 5d09fd2e-e312-4d03-b8b7-b5a680d1bcdf
Примечание:
Если на диске уже размечена файловая система, то можно только увеличить размер диска. Иначе уменьшение размера диска приведет к потере данных!
Как выглядит процесс увеличения размера диска offline:
Для начала необходимо отсоединить диск /dev/vdb в системе,а затем отсоединить от самой ВМ. Как видно из рисунка ниже, объем диска 10 Гб.
Отсоедините диск в Horizon.
Перейдите во вкладку Volumes. Нажмите Detach Volume.
Нажмите Extend Volume и выбирите новый размер диска.
После этого нужно обратно присоединить диск к ВМ и сделать resize диска.
Далее заходим на ВМ по SSH и монтируем диск, меняем размер диска:
$ lsblk
$ sudo mount /dev/vdb /mnt
Затем меняем размер:
$ resize2fs /dev/vdb
Роутер необходим чтобы соединить разные сети и передавать дата трафик между этими сетями. В этом примере рассмотрим создание роутера, присоединение интерфейсов внешней и внутренней сети, присваивание floating IP на ВМ для получения доступа из сегмента Интернет по протоколу SSH, 22 port TCP(security groups).
Для этого зайдите в Horizon, введите логин и пароль, предоставленные при регистрации. Перейдите во вкладку Network.
Шаг 1. Нажмите на кнопку Create Network. Создайте внутренню сеть и далее соедините внутреннюю сеть с роутером. После этого можно будет присваивать floating IP для ВМ
Шаг 2. Во вкладке Routers нажмите на Create Router. И далее введите необходимые параметры - название роутера и внешнюю сеть.
Плавающие IP — это публичные IP-адреса, которые можно присвоить виртуальной машине для доступа из сегмента сети Интернет. По умолчанию плавающие IP-адреса не назначаются вирутальным машинам. Пользователям необходимо явно назначить их из существующего пула адресов, а затем присоединить их к ВМ. Вы в любой момент можете отсоединить IP от ВМ и присоединить его к другой ВМ.
Примечание:
Если в открывшемся окне видите надпись ‘No Floating IP addresses allocated’, Вам необходимо нажать на значок плюса ‘Allocate Floating IP’ в графе Pool выбрать необходимый пул адресов и нажать на ‘Allocate IP’ для выделения и присвоения адреса ВМ.
Шаг 1.Для этого Вам необходимо перейти во вкладки Network > Security Groups и нажать на кнопку Manage Rules.
Шаг 2. Далее нажать на Add Rule и в пункте Rule выбрать SSH. Добавить IP адрес/сеть в формате CIDR откуда требуется доступ. Опционально можно добавить в пункт Description описание доступа.
Также выбрав Custom TCP/UDP rule или Other Protocol вы можете создавать свои правила.
После настройки правил в Security Groups и импорта ваших ключей, Вы можете зайти на ВМ по SSH.
Используйте логин для авторизации ниже из таблицы в соответствии с используемым образом ОС.
+----------------------------------+------------------------+
| Image | Cloud user login |
+----------------------------------+------------------------+
| Centos 8 Stream | centos |
| Centos 7 | centos |
| Alma Linux | almalinux |
| Ubuntu | ubuntu |
+----------------------------------+------------------------+
Пример команды SSH авторизации:
$ ssh centos@192.168.0.1
Политики Anti-Affinity и Affinity дают возможность распологать Виртуальные Машины на разных или на одном хосте гипервизора в зависимости от требований.
Для примемения политик к ВМ, перед созданием ВМ необходимо создать Server Group. Далее при создании ВМ выбрать необходимую группу серверов.
Server Group - это группа серверов, которая предоставляет механизм для группировки серверов в соответствии с определенной политикой. Список доступных политик по Server Group:
Anti Affinity - Server Group c обязательным расположением виртуальных машин на разных хостах(hypervisor). Если не останется свободного пространства на хостах (hypervisor), то виртуальные машины не будут созданы.
Soft Anti Affinity - Server Group c необязательным расположением виртуальных машин на разных хостах(hypervisor).Система попытается создать виртуальные машины на разных хостах. Но если не останется свободного пространства (hypervisor), виртуальные машины будут созданы на одном хосте.
Affinity - Server Group c обязательным расположением виртуальных машины на одном хосте (hypervisor). Если на хосте (hypervisor) не будет свободного пространства, то виртуальные машины не будут созданы.
Soft Affinity - Server Group c необязательным расположением виртуальных машин на одном хосте(hypervisor). Система попытается создать виртуальные машины на одном хосте. Но если на хосте (hypervisor) не будет свободного пространства, то виртуальные машины будут созданы на разных хостах.
В aitu.cloud имеется возможность использовать разные способы управления проектом и его ресурсами: Horizon Dashboard, API(например через openstack client), Terraform.
Ссылки на ресурсы:
Шаги перед использованием openstack command line client:
Установить openstackclient в соответствии с используемой операционной системой согласно официальной документации Openstack
Настроить переменные среды для доступов к aitu.cloud API:
Для использования openstack CLI можно воспользоваться импортом RC файла в Horizon (рис. ниже), или создать его самостоятельно по примерам из официальной документации Openstack.
Данный файл необходим для передачи переменных среды чтобы авторизоваться
Содержимое RC файла выглядит следующим образом:
#!/usr/bin/env bash
# To use an OpenStack cloud you need to authenticate against the Identity
# service named keystone, which returns a **Token** and **Service Catalog**.
# The catalog contains the endpoints for all services the user/tenant has
# access to - such as Compute, Image Service, Identity, Object Storage, Block
# Storage, and Networking (code-named nova, glance, keystone, swift,
# cinder, and neutron).
#
# *NOTE*: Using the 3 *Identity API* does not necessarily mean any other
# OpenStack API is version 3. For example, your cloud provider may implement
# Image API v1.1, Block Storage API v2, and Compute API v2.0. OS_AUTH_URL is
# only for the Identity API served through keystone.
export OS_AUTH_URL=https://keystone.qshy.aitu.cloud:5000/v3
# With the addition of Keystone we have standardized on the term **project**
# as the entity that owns the resources.
export OS_PROJECT_ID=0123456789abcdef
export OS_PROJECT_NAME="aitu"
export OS_USER_DOMAIN_NAME="Default"
if [ -z "$OS_USER_DOMAIN_NAME" ]; then unset OS_USER_DOMAIN_NAME; fi
export OS_PROJECT_DOMAIN_ID="default"
if [ -z "$OS_PROJECT_DOMAIN_ID" ]; then unset OS_PROJECT_DOMAIN_ID; fi
# unset v2.0 items in case set
unset OS_TENANT_ID
unset OS_TENANT_NAME
# In addition to the owning entity (tenant), OpenStack stores the entity
# performing the action as the **user**.
export OS_USERNAME="user"
# With Keystone you pass the keystone password.
echo "Please enter your OpenStack Password for project $OS_PROJECT_NAME as user $OS_USERNAME: "
read -sr OS_PASSWORD_INPUT
export OS_PASSWORD=$OS_PASSWORD_INPUT
# If your configuration has multiple regions, we set that information here.
# OS_REGION_NAME is optional and only valid in certain environments.
export OS_REGION_NAME="KZ"
# Don't leave a blank variable, unset it if it was empty
if [ -z "$OS_REGION_NAME" ]; then unset OS_REGION_NAME; fi
export OS_INTERFACE=public
export OS_IDENTITY_API_VERSION=3
Как видно из текста, в файле RC указаны переменные, которые экспортируются как переменные среды. В зависимости от уровня доступа и способов доступа в aitu.cloud переменные могут отличаться и вы можете их менять самостоятельно. В таком случае, необходимую информацию рекомендуются искать в документации Openstack согласно Вашей версии Openstack.
Перед созданием Виртуальной машины(далее - ВМ), требуется создать следующие ресурсы:
Примечание:
Создание flavor’a доступно только администраторам облака/ проекта, поскольку это влияет на эффективное планирование в облаке.
Flavor - это тип инстанса или другими словами шаблон для его создания. В нем указываются объемы ресурсов выделяемых для ВМ (СPU Cores,RAM,Volume и т.д.).
Тарифы на ресурсы в облаке aitu можете посмотреть по ссылке.
До того как вы начнете, выполните в консоли команду для того чтобы экспортировать переменные среды в консоли для авторизации в сервисе Keystone и дальнейших доступов к ресурсам в aitu.cloud (шаг 1).
Ссылки на официальные ресурсы:
Шаг 1. Выполните комманду в консоли.
$ source openrc.sh.
Шаг 2. Отобразите список доступных flavor:
$ openstack flavor list
Шаг 3. Выберите для себя необходимый flavor:
+-------------+-----------+-------+-----+----------+------+---------+
| ID | Name | RAM| Disk| Ephemeral| VCPUs|Is Public|
+-------------+-----------+-------+-----+----------+------+---------+
| 11f6a5a3-...| p1.xsmall | 4096| 10| 0| 1| True |
| 135f76c9-...| r1.5xlarge| 393216| 10| 0| 48| True |
| 2312fccc-...| g1.2xlarge| 131072| 10| 0| 32| True |
| 26c7acd8-...| r1.2xlarge| 65536| 10| 0| 8| True |
| 2987a268-...| g1.3xlarge| 196608| 10| 0| 48| True |
| 3110f8a8-...| g1.5xlarge| 393216| 10| 0| 96| True |
| 32cabb8a-...| r1.large | 16384| 10| 0| 2| True |
| 34a1a3c9-...| b1.small | 2048| 10| 0| 1| True |
| ... |... |... |... |... |... |... |
+-------------+-----------+-------+-----+----------+------+---------+
Образ операционной системы (далее - образ) представляет собой файл, в котором содержится виртуальный диск с уже установленной на нем операционной системой. Образы ОС используются для создания ВМ в облаке такикх как ui.aitu.cloud.
В большинстве случаев облачный провайдер предоставляет готовые образы ОС с базовыми настройками под его облачную систему. Но также Вы можете при необходимости создать свой образ следуя инструкции по ссылке
При создании ВМ необходимо выбрать образ ОС из которой она будет запущена.
Образ ОС можно выбрать при создании ВМ из предоставленных в Horizon.
$ openstack image list
Список образов ОС в облаке aitu.cloud
Примечание:
Список указан в качестве примера. Список доступных образов ОС может изменяться.
+--------------------------------------+------------------------------------------------+--------+
| ID | Name | Status |
+--------------------------------------+------------------------------------------------+--------+
| d03d26d7-a211-4254-8287-0b76f3b0f5de | AlmaLinux-8-GenericCloud-8.6-20220718.x86_64 | active |
| 49ea9425-efee-4df2-b06f-9af26e54d5e6 | CentOS-7-x86_64-GenericCloud-2003 | active |
| 7c1c7a68-f6c4-4172-b0d8-c7d1f2a977ab | CentOS-Stream-GenericCloud-8-20220125.1.x86_64 | active |
| 5dd801d5-fc70-4a5f-b745-8d529eb4bd4b | Rocky-8-GenericCloud.x86_64 | active |
| dd0acdaf-5b62-4248-a364-42898ad805f6 | ubuntu-22.04-jammy-server-cloudimg-amd64 | active |
+--------------------------------------+------------------------------------------------+--------+
Примечание:
При создании образа ОС имеется возможность добавлять теги с ключом –tag. Теги могут помочь при поиске определенных образов. Для добавления нескольких тегов используйте ключ –tag для каждого тега. Примеры ниже.
$ openstack image create --tag <tag> <image>
Либо добавить тег к существующему образу
$ openstack image set --tag <tag> <image>
Добавление нескольких тегов.
$ openstack image set --tag <tag> --tag <tag>... <image>
Убрать тег с образа
$ openstack image unset --tag <tag> <image>
Для удаления образа в CLI выполните команду
$ openstack image delete <image>
Перед созданием ВМ Вам необходимо создать сеть которую сможете привязать к созданной ВМ. Если Вам необходим доступ из вне на ваши ресурсы посмотрите пункт “Создание роутера”.
Шаг 1. Войдите в панель Horizon и перейдите в Network -> Networks
$ openstack network create <network_name>
$ openstack subnet create <network_subnet_name> --network <network_name> --subnet-range 192.0.2.0/24
Большинство образов ОС предназначенных для облачных систем поддерживают аутентификацию по публичному ключу, а не привычную аутентификацию по паролю. Для этого перед запуском инстанса, Вы должны сгенерировать и добавить публичный ключ.
Шаг 1. Выполните в консоли
$ source openrc.sh
Шаг 2. Сгенерируйте ssh ключ
$ ssh-keygen -q -N ""
Шаг 3. Импорт/добавление сгенерированной пары ключей{#keypair-import}
$ openstack keypair create --public-key ~/.ssh/id_rsa.pub mykey
+-------------+-------------------------------------------------+
| Field | Value |
+-------------+-------------------------------------------------+
| fingerprint | ee:3c:1e:56:d3:b2:63:6d:0d:ce:43:39:2c:ba:4d |
| name | mykey |
| user_id | 58126687cbcc4888bfa9ab73a2256f27 |
+-------------+-------------------------------------------------+
Примечание:
Либо, Вы можете пропустить команду ssh-keygen и использовать существующий публичный ключ. Проверьте добавленую пару ключей:
Для просмотра доступных пар ключей в CLI выполните команду:
$ openstack keypair list
+-------+-------------------------------------------------+
| Name | Fingerprint |
+-------+-------------------------------------------------+
| mykey | ee:3d:2e:97:d4:e2:6a:54:6d:0d:ce:43:39:2c:ba:4d |
+-------+-------------------------------------------------+
Выбор параметров ВМ:
Шаг 1. Отобразите список доступных образов ОС:
$ openstack image list
Шаг 2. Выделите для себя необходимый image для запуска ВМ:
+----------------------+--------------------+--------+
| ID | Name | Status |
+----------------------+--------------------+--------+
| 397e713c-b95b-418…. | cirros… | active |
| df430cc2-3406-4061… | cirros-...kernel… | active |
| 3cf852bd-2332-48f4… | cirros… | active |
+----------------------+--------------------+--------+
Примечание:
Вы также можете выбрать необходимый образ при помощи команды grep:
$ openstack image list | grep 'cirros'
| df430cc2-3406-4061… cirros-0.3.5-x86_64-uec-kernel | active |
Примечание:
В указанных примерах выше строки сокращены, так как это обучающий материал/инструкция.
Последний шаг создания ВМ со всеми вышеуказанными параметрами:
$ openstack server create --flavor m1.nano --image <image_name> \
--network <network_name> --security-group default \
--key-name <mykey> <vm_name>
$ openstack volume type list
+--------------------------------------+---------------+-----------+
| ID | Name | Is Public |
+--------------------------------------+---------------+-----------+
| 2f50e7ca-41b2-4340-a5ba-9350f840d45b | encr_standard | True |
| 75715241-df3f-486e-a2a1-dcb2c39cfc36 | encr_fast | True |
| d5c2f8bf-6759-416b-9020-a02a26015462 | standard | True |
| da73daf1-66e2-4c83-8788-91a57cf96115 | fast | True |
+--------------------------------------+---------------+-----------+
$ openstack volume create --size 8 --availability-zone <availability_zone_name> <volume_name>
Шифрование диска — технология защиты информации, переводящая данные на диске в нечитаемый код, который нелегальный пользователь не сможет легко расшифровать.
Зашифрованный диск создается также как и обычный диск. При создании передайте флаг, указывающий, что типом диска будет encr_standard или encr_fast. Если этот аргумент опущен, используется тип диска по умолчанию.
Авторизуйтесь при помощи своих учетных данных:
$ . openrc.sh
Создайте зашифрованный диск объемом 10 ГБ:
$ openstack volume create --size 10 --type encr_standard <volume_name>
Дополнительная информация по зашифрованным дискам.
Шаг 1. Необходимо узнать имя ли ID диска и ВМ:
$ openstack volume list
$ openstack server list
Пример присоединения диска:
$ openstack server add volume <server_name> <volume_name> --device /dev/vdb
Дополнительные команды:
$ openstack volume show <volume_name>
$ openstack server remove volume <server_name> <volume_name>
$ openstack volume delete <volume_name>
Как выглядит процесс:
Примечание:
Горячее увеличение диска не поддерживается.
В качестве альтернативы для возможности увеличения диска рекомендуется использовать LVM. LVM предоставляет возможность при помощи добавления диска расширить существующий логический том без отсоединения диска от ВМ. Могут быть ограничения связанные с реализацией файловых систем.
Для изменения размера диска в CLI необходимо отмонтировать диск в системе.
$ umount /dev/vdX
Для отсоединения диска от ВМ выполните:
$ openstack server remove volume <server_name> <volume_name>
После этого можно задать новый размер диска:
$ openstack volume set 573e024d-5235-49ce-8332-be1576d323f8 --size 10
И заново присоединить диск к ВМ:
$ openstack server add volume <server_name> <volume_name>
Далее заходим на ВМ по SSH и монтируем диск, меняем размер диска:
$ lsblk
$ sudo mount /dev/vdb /mnt
Затем делаем resize в системе:
$ resize2fs /dev/vdb
Роутер необходим чтобы соединить разные сети и передавать дата трафик между этими сетями. В этом примере рассмотрим создание роутера, присоединение интерфейсов внешней и внутренней сети, присваивание floating IP на ВМ для получения доступа из сегмента Интернет по протоколу SSH, 22 port TCP(security groups).
Создайте роутер в CLI
$ openstack router create <router_name>
Задайте шлюз роутера. В данном примере укажите как шлюз внешней сети. Например qshyospubliccloud.
$ openstack router set ROUTER --external-gateway <network_name>
Добавьте внутреннюю сеть через/на которую хотите получить доступ из/на ВМ
$ openstack router add subnet ROUTER <network_subnet_name>
Примечание:
Вы можете отобразить опции команды добавив
--help
в конце команды
Плавающие IP — это публичные IP-адреса, которые можно присвоить виртуальной машине для доступа из сегмента сети Интернет. По умолчанию плавающие IP-адреса не назначаются вирутальным машинам. Пользователям необходимо явно назначить их из существующего пула адресов, а затем присоединить их к ВМ. Вы в любой момент можете отсоединить IP от ВМ и присоединить его к другой ВМ.
Вам необходимо зарезервировать плавающий IP-адрес из пула подсетей внешней сети. Это можно сделать с помощью команды:
$ openstack floating ip create --project admin --subnet <public_subnet> <public_network>
Далее выбрать созданный адрес и ВМ из списка:
$ openstack floating ip list
$ openstack server list
$ openstack server add floating ip <server> <ip-address>
Группы безопасности — это наборы правил IP-фильтрации, которые применяются ко всем ВМ проекта и определяют сетевой доступ к ВМ. Групповые правила зависят от проекта; участники проекта могут редактировать правила по умолчанию для своей группы и добавлять новые наборы правил. Для того чтобы получить доступ из/на ВМ необходимо добавить или изменить правила для группы безопасности(secutiry group). Потому что группа безопасности по умолчанию (default) будет сбрасывать все входящие соединения на ВМ. Чтобы получить список правил для группы безопасности, выполните следующую команду:
$ openstack security group rule list SECURITY_GROUP_NAME
Чтобы разрешить SSH-доступ к ВМ, выберите один из следующих вариантов:
Разрешить доступ со всех IP-адресов в виде IP-подсети 0.0.0.0/0 в формате CIDR:
$ openstack security group rule create <secutiry_group_name> --protocol tcp --dst-port 22:22 --remote-ip 0.0.0.0/0
Разрешить доступ только с IP-адресов из других групп безопасности для доступа к указанному порту:
$ openstack security group rule create <secutiry_group_name> --protocol tcp --dst-port 22:22 --remote-group <source_secutiry_group_name>
Чтобы разрешить проверку связи с ВМ, выберите один из следующих вариантов:
Разрешить эхо-запрос ICMP (ping) со всех IP-адресов
$ openstack security group rule create --protocol icmp <security_group_name>
Разрешить пинговать ВМ только членам других групп безопасности.
$ openstack security group rule create --protocol icmp --remote-group <source_secutiry_group_name> <secutiry_group_name>
Чтобы разрешить доступ через UDP-порт, например разрешить доступ к DNS-серверу, работающему на ВМ, выберите один из следующих вариантов:
Разрешить доступ UDP со всех IP-адресов, указанных как IP-подсеть 0.0.0.0/0в нотации CIDR.
$ openstack security group rule create --protocol udp --dst-port 53:53 <secutiry_group_name>
Разрешить доступ к указанному порту только IP-адресам из других групп безопасности (исходных групп).
$ openstack security group rule create --protocol udp --dst-port 53:53 --remote-group <source_secutiry_group_name> <secutiry_group_name>
После настройки правил в Security Groups и импорта ваших ключей, Вы можете зайти на ВМ по SSH.
Используйте логин для авторизации ниже из таблицы в соответствии с используемым образом ОС.
+----------------------------------+------------------------+
| Image | Cloud user login |
+----------------------------------+------------------------+
| Centos 8 Stream | centos |
| Centos 7 | centos |
| Alma Linux | almalinux |
| Ubuntu | ubuntu |
+----------------------------------+------------------------+
Пример команды SSH авторизации:
$ ssh centos@192.168.0.1
Политики Anti-Affinity и Affinity дают возможность распологать Виртуальные Машины на разных или на одном хосте гипервизора в зависимости от требований.
Для примемения политик к ВМ, перед созданием ВМ необходимо создать Server Group. Далее при создании ВМ выбрать необходимую группу серверов.
$ openstack server group create --policy <policy> <name>
$ openstack server group list
$ openstack server create <server_name> --image <image_name> --flavor <flavor_name> --nic net-id=<network_name> --hint group=<server_group_ID>
Server Group - это группа серверов, которая предоставляет механизм для группировки серверов в соответствии с определенной политикой. Список доступных политик по Server Group:
Anti Affinity - Server Group c обязательным расположением виртуальных машин на разных хостах(hypervisor). Если не останется свободного пространства на хостах (hypervisor), то виртуальные машины не будут созданы.
Soft Anti Affinity - Server Group c необязательным расположением виртуальных машин на разных хостах(hypervisor).Система попытается создать виртуальные машины на разных хостах. Но если не останется свободного пространства (hypervisor), виртуальные машины будут созданы на одном хосте.
Affinity - Server Group c обязательным расположением виртуальных машины на одном хосте (hypervisor). Если на хосте (hypervisor) не будет свободного пространства, то виртуальные машины не будут созданы.
Soft Affinity - Server Group c необязательным расположением виртуальных машин на одном хосте(hypervisor). Система попытается создать виртуальные машины на одном хосте. Но если на хосте (hypervisor) не будет свободного пространства, то виртуальные машины будут созданы на разных хостах.
Также для управления ресурсами в облаке можно использовать Terraform.
Terraform использует парадигму Infrastructure-as-Code в управлении ресурсами инфраструктуры. Инфраструктура как код (англ. Infrastructure-as-Code; Iac) — это подход для управления и описания инфраструктуры через код, а не через ручное редактирование конфигураций на серверах или интерактивное взаимодействие. Этот подход может включать в себя как декларативный способ описания инфраструктуры, так и императивный. Но декларативный подход встречается чаще.
Terraform — программное обеспечение с открытым исходным кодом, созданное HashiCorp. Пользователи могут определят инфраструктуру с помощью декларативного языка конфигурации, известного как HashiCorp Configuration Language (HCL) или JSON.
Для управления ресурсами в облаке AITU используйте Terraform OpenStack Provider
OpenStack Provider используется для взаимодействия со многими ресурсами, поддерживаемыми OpenStack. Провайдер должен быть настроен с использованием соответствующих учетных данных, прежде чем его можно будет использовать.
В качестве шаблона для описания своей инфраструктуры можете использовать публичный репозиторий кода Aitu.Cloud