libvirtのqemu hookを利用してインスタンス作成・削除時に通知する

スポンサード リンク

共有サーバ上でQEMU/KVMのインスタンスが作成・削除されたことを通知したい。 これはlibvirtのhookスクリプトを利用して実現できる。

libvirtがイベント発生時に呼び出すhookスクリプトは以下のとおり。

At present, there are five hook scripts that can be called:

/etc/libvirt/hooks/daemon

Executed when the libvirt daemon is started, stopped, or reloads its configuration

/etc/libvirt/hooks/qemu

Executed when a QEMU guest is started, stopped, or migrated

/etc/libvirt/hooks/lxc

Executed when an LXC guest is started or stopped

/etc/libvirt/hooks/libxl

Executed when a libxl-handled Xen guest is started, stopped, or migrated

/etc/libvirt/hooks/network

今回はqemuのインスタンスなので,hookスクリプトを /etc/libvirt/hooks/qemu に実行権限を付与して保存する。

..code-block:: sh

# cat << EOM > /etc/libvirt/hooks/qemu #!/bin/bash

date >> /tmp/log echo "$@" >> /tmp/log EOM

# chmod +x /etc/libvirt/hooks/qemu

保存後はlibvirtのdaemonを再起動して有効化する。

..code-block:: sh

# service libvirt-bin restart

試しにvagrantを使ってqemuのインスタンスを起動し,また停止する。

..code-block:: sh

# vagrant up # vagrant destroy

# cat /tmp/log

Sat Feb 4 21:18:22 JST 2017 vagrant_my_vm_name prepare begin - Sat Feb 4 21:18:23 JST 2017 vagrant_my_vm_name start begin - Sat Feb 4 21:18:24 JST 2017 vagrant_my_vm_name started begin - Sat Feb 4 21:18:36 JST 2017 vagrant_my_vm_name stopped end - Sat Feb 4 21:18:37 JST 2017 vagrant_my_vm_name release end -

上記のように,domain名を引数としてスクリプトが実行されることが確認できた。 started beginstopped end が引数にあったときにメールを飛ばすような スクリプトを作成すれば今回の目的は達成できる。

Comments !

social