Хуки в ПК СВ являются программами, выполняемыми при изменении состояния ВМ или серверов виртуализации. Хуки могут выполняться как локально, так и удаленно в сервере виртуализации, где работает ВМ. Для настройки системы хуков необходимо установить следующие значения в конфигурационном файле /etc/one/oned.conf:

  • executable — путь исполняемого модуля драйвера хука, может быть абсолютным или относительным (относительно каталога /usr/lib/one/mads/);
  • arguments — конфигурационный файл для исполняемого модуля драйвера хука, может быть абсолютным или относительным (относительно каталога /etc/one/).

Пример:

HM_MAD = [
executable = "one_hm"
]
CODE

Хуки виртуальной машины (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 предыдущее состояние ВМ.

      Здесь можно ознакомиться с подробным описанием статусов и состояний ВМ.

  • 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"
]
CODE

Хуки сервера виртуализации (HOST_HOOK)

Хуки сервера виртуализации определяются по следующим параметрами:

  • name — имя хука;
  • on — условия выполнения хука:
    • CREATE — при создании сервера виртуализации (использование команды onehost create);
    • ERROR — при нахождении сервера виртуализации в состоянии сбоя;
    • DISABLE — после отключения сервера виртуализации;
  • command — путь может быть абсолютным или относительным (относительно каталога /usr/share/one/hooks);
  • arguments — аргументы для хука. Можно использовать следующую информацию о сервере виртуализации:
    • $ID — идентификатор сервера виртуализации;
    • $TEMPLATE — шаблон сервера виртуализации в формате xml с кодированием base64;
  • remote — удаленное выполнение. Возможные значения:
    • YES — хук выполняется на сервере виртуализации;
    • NO — хук выполняется на сервере управления. Является значением по умолчанию.