PHPでlibvirt APIを使ってみる
以前、libvirt APIのRubyバインディングについて紹介いたしましたが、PHPバインディングを作られた方がいるようなので試してみました。
php-libvirt
インストール
例によってCentOS 5.xにインストールします。
$ sudo yum install libvirt-devel zlib-devel expat-devel curl-devel $ wget http://phplibvirt.cybersales.cz/php-libvirt-0.3a-alpha.tar.gz $ tar xvzf php-libvirt-0.3a-alpha.tar.gz $ cd php-libvirt-0.3a-alpha $ phpize $ ./configure --enable-libvirt $ make $ sudo make install
テスト
サンプルを参考に取り敢えず動かしてみる。
<?php $conn = libvirt_connect("qemu:///system"); if ($conn==false) { echo ("Libvirt last error: ".libvirt_get_last_error()."\n"); exit; } else { $hostname=libvirt_get_hostname($conn); echo ("hostname:$hostname\n"); echo ("Domain count: Active ".libvirt_get_active_domain_count($conn).",Inactive ".libvirt_get_inactive_domain_count($conn).", Total ".libvirt_get_domain_count($conn)."\n"); $domains=libvirt_list_domains($conn); foreach ($domains as $dom) { echo ("Name:\t".libvirt_domain_get_name($dom)."\n"); echo("UUID:\t".libvirt_domain_get_uuid_string($dom)."\n"); $dominfo=libvirt_domain_get_info($dom); print_r($dominfo); } }
$ sudo php libvirt-test.php hostname:kvm-host03 Domain count: Active 2,Inactive 1, Total 3 Name: kvm-svr01 UUID: 0a94915c-395a-b70f-16ac-2159a1087b97 Array ( [maxMem] => 524288 [memory] => 524288 [state] => 1 [nrVirtCpu] => 2 [cpuUsed] => 257848.24 ) Name: kvm-svr02 UUID: 20b71ae8-c000-d186-95a4-456768d9c245 Array ( [maxMem] => 4194304 [memory] => 4194304 [state] => 1 [nrVirtCpu] => 8 [cpuUsed] => 36326.22 ) Name: kvm-svr03 UUID: 060c8bef-4bbe-d784-b107-5b80aa833032 Array ( [maxMem] => 524288 [memory] => 524288 [state] => 5 [nrVirtCpu] => 2 [cpuUsed] => 0 )
一応、動いた。