Download PDF
Download page Служба сервера OneGate.
Служба сервера OneGate
Оглавление
Дополнительная информация
Общие сведения
Служба сервера OneGate обеспечивает обмен служебной информацией с программным обеспечением, функционирующем на виртуальной машине. Это позволяет администраторам и пользователям получать диагностическую информацию, выявлять ошибки функционирования программного обеспечения.
В ПК СВ служба сервера OneGate используется для обмена служебными данными между виртуальными машинами, логически объединенными в сервис. Таким образом обеспечивается автоматическая перенастройка сервиса в соответствии с заданными правилами (политикой эластичности) – см. Служба OneFlow.
Служба сервера OneGate обеспечивает соединение с ВМ по протоколу HTTP. Для каждого экземпляра ВМ формируется индивидуальный токен. Приложения, функционирующие на ВМ, используют этот токен для взаимодействия с API службы сервера OneGate.
Для обеспечения взаимодействия с API службы сервера OneGate в операционной системе ВМ необходимо установить пакет one-context
.
В ПК СВ служба сервера OneGate реализована в виде инструмента командной строки opennebula-gate
, который устанавливается автоматически при установке и инициализации сервиса фронтальной машины.
Также можно развернуть службу сервера OneGate на отдельном сервере, для этого необходимо установить пакет opennebula-gate
, который размещен в репозитории ПК СВ.
Настройка службы сервера OneGate
Значения параметров службы сервера OneGate представлены в конфигурационном файле /etc/one/onegate-server.conf
, который имеет формат YAML и по умолчанию размещен на фронтальной машине. Для настройки службы сервера OneGate используются следующие параметры:
Параметр | Описание |
---|---|
Сетевые настройки | |
| Адрес для подключения к API службы управления ПК СВ (по протоколу XML-RPC) |
| Сетевое имя или IP-адрес, который необходимо прослушивать (ожидать запрос на соединение с ВМ) |
| Порт, который необходимо прослушивать (ожидать запрос на соединение с ВМ) |
| Адрес для доступа к службе SSL-прокси (значение устанавливается только при использовании соответствующей службы) |
Аутентификация | |
| Метод аутентификации, используемый при организации соединения с ВМ. Всегда имеет значение:
|
| Метод аутентификации, используемый при подключении к службе управления ПК СВ (oned). Может принимать следующие значения:
|
Настройки подключения к службе OneFlow | |
| Адрес для подключения к службе сервера OneFlow |
Управление доступом | |
| Перечень функций API, вызов которых можно запретить/разрешить. По умолчанию разрешены вызовы всех функций API. |
| Перечень параметров, значения которых запрещено менять при корректировке пользовательского шаблона экземпляра ВМ |
| Перечень действий с ВМ, которые запрещено выполнять |
| Перечень параметров, значения которых будут использованы при создании виртуальной сети из шаблона |
Протоколирование | |
| Уровень протоколирования. Возможные значения:
|
По умолчанию служба сервера OneGate настроена на прослушивание локального адреса (localhost
). Для обеспечения доступа ВМ к службе сервера OneGate необходимо в качестве значения параметра ":host"
указать адрес сервера, на котором развернута эта служба, и к которому имеется сетевой доступ у ВМ. Кроме того, для параметра ":host"
можно указать значение 0.0.0.0
(для прослушивания всех IP-адресов, присвоенных серверу).
После внесения изменений в конфигурационный файл необходимо перезагрузить службу сервера OneGate командой:
Управление службой сервера OneGate
Чтобы запустить, перезапустить или остановить службу сервера OneGate, необходимо выполнить соответствующую команду:
sudo systemctl start opennebula-gate
sudo systemctl restart opennebula-gate
sudo systemctl stop opennebula-gate
sudo systemctl enable opennebula-gate
sudo systemctl disable opennebula-gate
/var/log/one/onegate.log;
/var/log/one/onegate.error.
Кроме того, информация о работе службы сервера OneGate регистрируется в системном журнале. Для просмотра этой информации необходимо выполнить команду:
Настройка ПК СВ для использования службы сервера OneGate
При настройке доступа ВМ к службе сервера OneGate используется параметр ONEGATE_ENDPOINT
, значение которого содержит сетевое имя (IP-адрес) и порт для доступа к службе сервера OneGate. Изменение значения параметра ONEGATE_ENDPOINT
производится в конфигурационном файле /etc/one/one.d/base.conf
.
Пример
ONEGATE_ENDPOINT = "http://192.168.0.5:5030"
После внесения изменений необходимо перезапустить службу управления ПК СВ:
Использование службы сервера OneGate
Для обеспечения взаимодействия с API службы сервера OneGate в операционной системе ВМ необходимо установить пакет one-context
.
Настройка шаблона ВМ
В интерфейсе командной строки
В шаблоне ВМ для параметра CONTEXT–TOKEN
необходимо установить значение "YES"
.
Пример
CPU = "0.5"
MEMORY = "1024"
DISK = [
IMAGE_ID = "0" ]
NIC = [
NETWORK_ID = "0" ]
CONTEXT = [
TOKEN = "YES" ]
Для изменения параметров шаблона необходимо использовать команду:
В веб-интерфейсе ПК СВ
Чтобы изменить параметры шаблона, в веб-интерфейсе ПК СВ необходимо выполнить действия, описанные ниже.
- В меню слева выбрать пункт меню «Шаблоны — ВМ» и на открывшейся странице Шаблоны ВМ выбрать необходимый шаблон.
- На открывшейся странице Шаблон ВМ нажать на кнопку [Обновить].
- На открывшейся странице Изменить шаблон ВМ во вкладке Контекст установить флаг Добавить токен OneGate и нажать на кнопку [Обновить].
Настройка ВМ для доступа к службе сервера OneGate
При развертывании экземпляра ВМ в секции CONTEXT шаблона этой ВМ будет автоматически добавлен параметр ONEGATE_ENDPOINT.
Кроме того, на виртуальном CD-ROM с наименованием CONTEXT, подключенном к этой ВМ, будет автоматически размещен файл token.txt
, содержащий токен. Файл token.txt
доступен только в ОС виртуальной машины.
Дополнительных настроек не требуется.
Использование клиента OneGate в ОС виртуальной машины
Особенности использования клиента OneGate
Клиент OneGate реализован в виде инструмента командной строки onegate
, который автоматически устанавливается при установке пакета one-context
.
Для того чтобы получить подробное описание использования инструмента командной строки onegate
, необходимо выполнить команду:
Получение служебной информации о ВМ
Чтобы получить служебную информацию о ВМ, в ОС этой ВМ необходимо выполнить команду:
VM 8
NAME : master_0_(service_1)
STATE : RUNNING
IP : 192.168.122.23
Чтобы получить служебную информацию о другой ВМ, необходимо в качестве дополнительного аргумента команды указать идентификатор ВМ.
Доступна служебная информация только тех ВМ, которые логически объединены в один сервис или подключены к одному виртуальному маршрутизатору.
Получение служебной информации сервиса
Чтобы получить служебную информацию сервиса, в состав которого входит ВМ, в ОС этой ВМ необходимо выполнить команду:
SERVICE 1
NAME : PANACEA service
STATE : RUNNING
ROLE master
VM 8
NAME : master_0_(service_1)
ROLE slave
VM 9
NAME : slave_0_(service_1)
Чтобы получить служебную информацию о всех ВМ, логически объединенных в сервис, необходимо в качестве дополнительного аргумента команды указать --extended
:
SERVICE 1
NAME : PANACEA service
STATE : RUNNING
ROLE master
VM 8
NAME : master_0_(service_1)
STATE : RUNNING
IP : 192.168.122.23
ROLE slave
VM 9
NAME : slave_0_(service_1)
STATE : RUNNING
Получение служебной информации о виртуальном маршрутизаторе
Чтобы получить служебную информацию о виртуальном маршрутизаторе, к которому подключена ВМ, в ОС этой ВМ необходимо выполнить команду:
VROUTER 0
NAME : vr
VMS : 1
Получение служебной информации о виртуальной сети
Чтобы получить служебную информацию о виртуальной сети в ОС ВМ необходимо выполнить команду:
Доступна служебная информация только о виртуальных сетях, подключенных к тому виртуальному маршрутизатору, к которому имеется доступ ВМ.
Пример
Получение служебной информации о виртуальной сети с идентификатором 0:
VNET
ID : 0
Изменение пользовательского шаблона экземпляра ВМ
С помощью клиента OneGate можно изменить значения параметров, размещенных в пользовательском шаблоне любой ВМ сервиса.
Пример
Изменение значения параметра ACTIVE
для ВМ с идентификатором 9:
Пример вывода после выполнения команды onegate vm show 9 --json
:
{
"VM": {
"NAME": "slave_0_(service_1)",
"ID": "9",
"STATE": "3",
"LCM_STATE": "3",
"USER_TEMPLATE": {
"ACTIVE": "YES",
"FROM_APP": "4fc76a938fb81d3517000003",
"FROM_APP_NAME": "ttylinux - kvm",
"LOGO": "images/logos/linux.png",
"ROLE_NAME": "slave",
"SERVICE_ID": "1"
},
"TEMPLATE": {
"NIC": [ ]
}
}
}
Удаление параметра из пользовательского шаблона экземпляра ВМ
С помощью клиента OneGate можно удалить параметр, размещенный в пользовательском шаблоне любой ВМ сервиса.
Пример
Удаление параметра ACTIVE
для ВМ с идентификатором 9:
Пример вывода после выполнения команды onegate vm show 9 --json
:
{
"VM": {
"NAME": "slave_0_(service_1)",
"ID": "9",
"STATE": "3",
"LCM_STATE": "3",
"USER_TEMPLATE": {
"FROM_APP": "4fc76a938fb81d3517000003",
"FROM_APP_NAME": "ttylinux - kvm",
"LOGO": "images/logos/linux.png",
"ROLE_NAME": "slave",
"SERVICE_ID": "1"
},
"TEMPLATE": {
"NIC": [ ]
}
}
}
Управление состоянием ВМ
С помощью клиента OneGate можно управлять состоянием ВМ, тем самым изменять конфигурацию сервиса. Для управления состоянием ВМ доступны следующие команды:
onegate vm resume
onegate vm stop
onegate vm suspend
onegate vm terminate
onegate vm reboot
onegate vm poweroff
onegate vm resched
onegate vm unresched
onegate vm hold
onegate vm release
Управление количеством ВМ в составе сервиса
С помощью клиента OneGate можно управлять количеством ВМ в составе сервиса.
Пример
Увеличение количества ВМ с ролью "ведомый" (slave) до 2:
Просмотр служебной информации сервиса:
SERVICE 1
NAME : PANACEA service
STATE : RUNNING
ROLE master
VM 8
NAME : master_0_(service_1)
STATE : RUNNING
IP : 192.168.122.23
ROLE slave
VM 9
NAME : slave_0_(service_1)
STATE : RUNNING
NAME : slave_1_(service_1)
STATE : PENDING
Взаимодействие с API службы сервера OneGate в ОС виртуальной машины
Параметры доступа к API службы сервера OneGate
Взаимодействие со службой сервера OneGate осуществляется посредством REST API. При этом заголовок запроса должен содержать следующие данные:
X-ONEGATE-TOKEN – токен, присвоенный ВМ;
X-ONEGATE-VMID – идентификатор ВМ.
Значения указанных выше параметров можно получить из переменной окружения /var/run/one-context/one_env
.
Пример
Вывод значений переменных окружения:
Пример вывода после выполнения команды:
export TOKENTXT="N7HAQYUss4/LHPWvPHLe2A=="
export VMID="9"
export ONEGATE_ENDPOINT="http://192.168.0.1:5030"
export CONTEXT="true"
...
Получение служебной информации о ВМ
Чтобы получить служебную информацию о ВМ, в ОС этой ВМ необходимо отправить запрос вида:
Пример
curl -X "GET" "192.168.0.1:5030/vm" \
--header "X-ONEGATE-TOKEN: N7HAQYUss4/LHPWvPHLe2A==" \
--header "X-ONEGATE-VMID: 9"
Пример ответа сервера после выполнения запроса:
{
"VM":{
"NAME":"slave_0_(service_1)",
"ID":"9",
"STATE":"3",
"LCM_STATE":"3",
"TEMPLATE":{
"NIC:[
{
"IP":"192.168.122.33",
"MAC":"02:00:ac:10:01:64",
"NAME":"NIC0",
"NETWORK":"virtnetwork"
}
],
"NIC_ALIAS":[]
},
"USER_TEMPLATE":{
"AUTOSTARTVM":"0",
"HOT_RESIZE":{
"CPU_HOT_ADD_ENABLED":"NO",
"MEMORY_HOT_ADD_ENABLED":"NO"
},
"HYPERVISOR":"kvm",
"INPUTS_ORDER":"",
"MEMORY_UNIT_COST":"MB",
"READY":"YES",
"SERVICEUSERVM":"1"
}
}
}
Чтобы получить служебную информацию о другой ВМ, необходимо отправить запрос вида:
Доступна служебная информация только тех ВМ, которые логически объединены в один сервис.
Получение служебной информации сервиса
Чтобы получить служебную информацию сервиса, в состав которого входит ВМ, в ОС этой ВМ необходимо отправить запрос вида:
Пример
curl -X "GET" "192.168.0.1:5030/service" \
--header "X-ONEGATE-TOKEN: N7HAQYUss4/LHPWvPHLe2A==" \
--header "X-ONEGATE-VMID: 9"
Пример ответа сервера после выполнения запроса:
{
"SERVICE": {
"id": ...,
"name": ...,
"roles": [
{
"name": ...,
"cardinality": ...,
"state": ...,
"nodes": [
{
"deploy_id": ...,
"running": true|false,
"vm_info": {
// служебная информация о ВМ
}
},
// информация о других узлах ...
]
},
// описание других ролей ...
]
}
}
Получение служебной информации о виртуальном маршрутизаторе
Чтобы получить служебную информацию о виртуальном маршрутизаторе, к которому подключена ВМ, в ОС этой ВМ необходимо отправить запрос вида:
Пример
curl -X "GET" "192.168.0.1:5030/vrouter" \
--header "X-ONEGATE-TOKEN: N7HAQYUss4/LHPWvPHLe2A==" \
--header "X-ONEGATE-VMID: 9"
Пример ответа сервера после выполнения запроса:
{
"VROUTER": {
"NAME": "vr",
"ID": "0",
"VMS": {
"ID": [
"1"
]
},
"TEMPLATE": {
"NIC": [
{
"NETWORK": "vnet",
"NETWORK_ID": "0",
"NIC_ID": "0"
}
],
"TEMPLATE_ID": "0"
}
}
}
Получение служебной информации о виртуальной сети
Чтобы получить служебную информацию о виртуальной сети в ОС ВМ необходимо отправить запрос вида:
Доступна служебная информация только о виртуальных сетях, подключенных к тому виртуальному маршрутизатору, к которому имеется доступ ВМ.
Пример
Получение служебной информации о виртуальной сети с идентификатором 0:
curl -X "GET" "192.168.0.1:5030/vnet/0" \
--header "X-ONEGATE-TOKEN: N7HAQYUss4/LHPWvPHLe2A==" \
--header "X-ONEGATE-VMID: 9"
{
"VNET": {
"ID": "0",
"NAME": "vnet",
"USED_LEASES": "1",
"VROUTERS": {
"ID": [
"0"
]
},
"PARENT_NETWORK_ID": {
},
"AR_POOL": {
"AR": [
{
"AR_ID": "0",
"IP": "192.168.122.100",
"MAC": "02:00:c0:a8:7a:64",
"SIZE": "10",
"TYPE": "IP4",
"MAC_END": "02:00:c0:a8:7a:6d",
"IP_END": "192.168.122.109",
"USED_LEASES": "1",
"LEASES": {
"LEASE": [
{
"IP": "192.168.122.100",
"MAC": "02:00:c0:a8:7a:64",
"VM": "1"
}
]
}
}
]
},
"TEMPLATE": {
"NETWORK_ADDRESS": "192.168.122.0",
"NETWORK_MASK": "255.255.255.0",
"GATEWAY": "192.168.122.1",
"DNS": "1.1.1.1"
}
}
}
Изменение пользовательского шаблона экземпляра ВМ
Для изменения значения параметра, а также добавления параметра в пользовательский шаблон ВМ, в ОС этой ВМ необходимо отправить запрос вида:
Пример
Добавление параметра APP_LOAD
который имеет значение "9.7":
curl -X "PUT" "192.168.0.1:5030/vm" \
--header "X-ONEGATE-TOKEN: N7HAQYUss4/LHPWvPHLe2A==" \
--header "X-ONEGATE-VMID: 9" \
-d "APP_LOAD=9.7"
...
USER TEMPLATE
APP_LOAD="9.7"
AUTOSTARTVM="0"
HOT_RESIZE=[
CPU_HOT_ADD_ENABLED="NO",
MEMORY_HOT_ADD_ENABLED="NO" ]
HYPERVISOR="kvm"
INPUTS_ORDER=""
MEMORY_UNIT_COST="MB"
READY="YES"
...
Чтобы добавить параметр в пользовательский шаблон другой ВМ или изменить значение этого параметра, необходимо отправить запрос вида:
Доступно изменение пользовательского шаблона только тех ВМ, которые логически объединены в один сервис.
Удаление параметра из пользовательского шаблона экземпляра ВМ
Чтобы удалить параметр из пользовательского шаблона ВМ, в ОС этой ВМ необходимо отправить запрос вида:
Пример
Удаление параметра APP_LOAD
:
curl -X "PUT" "192.168.0.1:5030/vm?type=2" \
--header "X-ONEGATE-TOKEN: N7HAQYUss4/LHPWvPHLe2A==" \
--header "X-ONEGATE-VMID: 9" \
-d "APP_LOAD"
...
USER TEMPLATE
AUTOSTARTVM="0"
HOT_RESIZE=[
CPU_HOT_ADD_ENABLED="NO",
MEMORY_HOT_ADD_ENABLED="NO" ]
HYPERVISOR="kvm"
INPUTS_ORDER=""
MEMORY_UNIT_COST="MB"
READY="YES"
...
Чтобы удалить параметр из пользовательского шаблона другой ВМ, необходимо отправить запрос вида:
Доступно изменение пользовательского шаблона только тех ВМ, которые логически объединены в один сервис.
Управление состоянием ВМ
Для управления состоянием ВМ используется запрос вида:
Пример
Установить состояние "готова для размещения" для ВМ с идентификатором 18:
curl -X "POST" "192.168.0.1:5030/vms/18/action" \
--header "X-ONEGATE-TOKEN: N7HAQYUss4/LHPWvPHLe2A==" \
--header "X-ONEGATE-VMID: 9" \
-d "{'action' : {'perform': 'resched'}}"
Управление количеством ВМ в составе сервиса
Чтобы изменить количество ВМ в составе сервиса, необходимо отправить запрос вида:
Пример
Увеличение количества ВМ с ролью "обработчик" (worker) до 10:
curl -X "POST" "192.168.0.1:5030/service/0/scale" \
--header "X-ONEGATE-TOKEN: N7HAQYUss4/LHPWvPHLe2A==" \
--header "X-ONEGATE-VMID: 9" \
-d "{'role_name': 'worker', 'cardinality' : 10, 'force': false}"