Система хуков#
Хуки в ПВ являются программами, выполняемыми при изменении состояния ВМ или серверов виртуализации. Хуки могут выполняться как локально, так и удаленно в сервере виртуализации, где работает ВМ. Для настройки системы хуков необходимо установить следующие значения в конфигурационном файле /etc/one/oned.conf
:
executable
— путь исполняемого модуля драйвера хука, может быть абсолютным или относительным (относительно каталога/usr/lib/one/mads/
);arguments
— конфигурационный файл для исполняемого модуля драйвера хука, может быть абсолютным или относительным (относительно каталога/etc/one/
).
Примечание
Пример
HM_MAD = [ executable =
"one_hm"
]
Хуки виртуальной машины (VM_HOOK)#
Хуки ВМ определяются по следующим параметрами:
name
— имя хука;on
— условия выполнения хука:
CREATE
— при создании ВМ;
PROLOG
— при нахождении ВМ в состоянииPROLOG
;
RUNNING
— после успешной загрузки ВМ;
UNKNOWN
— при нахождении ВМ в неизвестном состоянии;
SHUTDOWN
— после отключения ВМ;
DONE
— после удаления или отключения ВМ;
CUSTOM
— определяемое пользователем конкретный статусSTATE
и комбинация состоянийLCM_STATE
для запуска хука;
command
— путь может быть абсолютным или относительным (относительно каталога/usr/share/one/hooks
);arguments
— аргументы для хука. Можно использовать следующую информацию о ВМ:
remote
— удаленное выполнение. Возможные значения:
YES
— хук выполняется на сервере виртуализации, где установлена ВМ;
NO
— хук выполняется на сервере управления. Является значением по умолчанию.
Примечание
Пример
VM_HOOK = [ name = "advanced_hook", on = "CUSTOM", state = "ACTIVE", lcm_state = "BOOT_UNKNOWN", command = "log.rb", arguments = "$ID $PREV_STATE $PREV_LCM_STATE"
]
Хуки узла (HOST_HOOK)#
Хуки узла определяются по следующим параметрами:
name
— имя хука;on
— условия выполнения хука:
CREATE
— при создании сервера виртуализации (использование командыonehost create
);
ERROR
— при нахождении сервера виртуализации в состоянии сбоя;
DISABLE
— после отключения узла;
command
— путь может быть абсолютным или относительным (относительно каталога/usr/share/one/hooks
);arguments
— аргументы для хука. Можно использовать следующую информацию об сервере виртуализации:
$ID
— идентификатор сервера виртуализации;
$TEMPLATE
— шаблон сервера виртуализации в форматеxml
с кодированиемbase64
;
remote
— удаленное выполнение. Возможные значения:
YES
— хук выполняется на сервере виртуализации;
NO
— хук выполняется на сервере управления. Является значением по умолчанию.