这是最近编写的一个用于管理kvm
虚拟池,基于libvirt
的composer
工具包。**Github
**项目地址:https://github.com/Pengfei-Gao/php-libvirt
,使用说明如下:
安装方式有很多,你可以直接下载官方的release
版本,但是我们在这个主要说明从源代码安装的方式,第一步,使用git
拷贝一个副本:
git clone git://libvirt.org/libvirt-php
接下来从源代码编译安装,我们可以使用./configure --help
来查看编译选项,当然了一般来说使用默认的就可以了:
./configure
make
make install
在编译完成后会生成libvirt-php.so
这个文件,在大多数情况下,make
脚本会帮我们完成扩展的配置,我们可以使用:
php -m | grep libvirt
来查看安装是否成功,如果安装失败,那么你可以需要手动做出一些配置:
extension=libvirt-php.so
安装完成后就可以正常使用这个库了。
打开终端,在你的项目目录里面安装包文件:
composer require lps/libvirt
如果你使用了laravel
、yii
之类的已经集成composer
完整功能的框架,那么你可以在你的框架里面直接根据命名空间引入类库,如果你使用的框架没有引入composer
(譬如yaf
).
你可能需要在框架的入口处引入类库:
include __DIR__."/vendor/autoload.php";
实例化libvirt
类库:
use Lps\Libvirt;
$libvirt = new Libvirt();
查看主机上的所有虚拟机:
$res = $libvirt->listDomains();
var_dump($res);
获取连接主机的uri
:
$libvirt->getUri();
创建/删除一个大小为500M,名为test
,格式为raw
的系统磁盘镜像:
$libvirt->createImage("test",500,raw);
$libvirt->deleteImage('test');
管理虚拟机:
use Lps\Domain;
use Lps\Libvirt;
//创建虚拟机
$res = $libvirt->createDomain( $name, $arch, $memMB, $maxmemMB, $vcpus, $iso_image, $disks, $networks, $flags);
$domain = new Domain($res);
//为虚拟机设置内存为1G:
$domain->setMemory(1024);
//关机
$domain->shutdown();