不過這次要分享的是把 libvirt php 編譯起來,並透過 libvirt 去 管理 HOST Server
這篇的範例是使用 CentOS 6.2 去 work (建議使用 64bit 版本)
首先安裝下載
CentOS 64 mini (x86-64) (安裝可以請壯兔解說..
完成 install 完成後 mini 預設網卡 boot 不會 on 安裝完 network 是 off
所以你必須要編輯 /etc/sysconfig/network-scripts/ifcfg-eth0
修改並增加一行設定
BOOTPROTO=dhcp (增加) 需依照您的 network setting
ONBOOT=yes (開機就啟動)
安裝編譯所需要的套件 # yum install wget make gcc make gcc libvirt-devel libxml2-devel php-devel man vim
然後就到 libvirt 官方下載 libvirt for php
# wget http://libvirt.org/sources/php/libvirt-php-0.4.5.tar.gz
解壓縮
# tar zxvf libvirt-php-0.4.5.tar.gz
切換到解壓縮的資料夾
# cd libvirt-php-0.4.5
接下來就是快樂的 gcc time
以下是 ./configure
# make && make install
列出 php model 資訊
# php -m
PHP Code :
<?php
$uri='qemu+ssh://kvm03.2be.com.tw/system';
echo ("Connecting to libvirt (URI:$uri)\n");
$conn=libvirt_connect($uri);
if ($conn==false)
{
echo ("Libvirt last error: ".libvirt_get_last_error()."\n");
exit;
} else {
$hostname = libvirt_connect_get_hostname($conn);
echo("hostname:$hostname\n");
$domains = libvirt_list_domains($conn);
foreach($domains as $guest){
echo($guest)."\n";
}
}
執行結果:
參考的 API 網址:
http://libvirt.org/php/api-reference.html#libvirt_domain_get_uuid_string
不過測試完發現 libvirt_list_active_domains 有錯誤.. (32bit only)
這樣來監控或寫成網頁管理介面就很方便了
寫完這篇發現!bloggger編輯器排版真糟糕..






0 回覆:
張貼意見