理想未来ってなんやねん

娘可愛い。お父さん頑張る。

PHPでlibvirt APIを使ってみる

以前、libvirt APIRubyバインディングについて紹介いたしましたが、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);
    }
}

上記ソースをlibvirt-test.phpとして保存。

$ 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
)

一応、動いた。

ドキュメント

ドキュメントは下記のURLを参照
Libvirt


取り敢えず、動かしてみるところまで。
続きは週末にでも弄ってみたいと思います。