Система хуков#
Хуки в ПВ являются программами, выполняемыми при изменении состояния ВМ или узлов. Хуки могут выполняться как локально, так и удаленно в узле, где работает ВМ. Для настройки системы хуков необходимо установить следующие значения в конфигурационном
файле /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
— хук выполняется на фронтальной машине. Является значением по умолчанию.