Система хуков#

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

  • STOP — после остановки ВМ (включая передачу образов ВМ);

  • DONE — после удаления или отключения ВМ;

  • CUSTOM — определяемое пользователем конкретный статус STATE и комбинация состояний LCM_STATE для запуска хука;

  • command — путь может быть абсолютным или относительным (относительно каталога /usr/share/one/hooks);

  • arguments — аргументы для хука. Можно использовать следующую информацию о ВМ:

  • $ID — идентификатор ВМ;

  • $TEMPLATE — шаблон ВМ в формате xml с кодированием base64;

  • PREV_STATE — предыдущий статус ВМ;

  • PREV_LCM_STATE — предыдущее LCM-состояние ВМ;

  • 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 — хук выполняется на сервере управления. Является значением по умолчанию.