使用PHP-AWS操作Eucalyptyus私有云(1)

By , 2013年3月12日 7:22 下午

PHP-AWS是一个用来操作各种AWS服务的类库,目前支持EC2、S3、SQS和AWIS四种服务,也可以用来操作各种与AWS相兼容的其他云服务。这篇博客文章以EC2服务为例,演示如何使用PHP-AWS对基于Eucalyptus的私有云进行操作。

首先从github上下载PHP-AWS类库:

git clone https://github.com/tylerhall/php-aws/

进入php-aws目录,修改class.ec2.php文件,主要是设定身份认证信息和EC2端点。在这里我使用的是桉树社区云(Eucalyptus Community Cloud,ECC)服务的帐号进行测试。

var $_key = “EC2_ACCESS_KEY”;
var $_secret = “EC2_SECRET_KEY”;
var $_server = “http://eucalyptus.ecc.eucalyptus.com:8773/services/Eucalyptus”;

下面这段程序,列出所有可用的映像:

require_once(“class.ec2.php”);
$ec2 = new EC2();
$images = $ec2->getImages();
foreach ($images as $image_id=>$image)
{
$image_location = $image[“location”];
print_r($image_id . ” ” . $image_location . “\n”);
}

下面这段程序,启动一个虚拟机实例(需要将emi-XXXXXXXX替换成实际的EMI名称):

$ec2->runInstances(“emi-575A398B”, 1, 1, “key_name”);

下面这段程序,列出所有虚拟机实例:

$instances = $ec2->getInstances();
foreach ($instances as $instance_id=>$instance)
{
$image_id = $instance[“imageId”];
$state = $instance[“state”];
$dns = $instance[“dns”];
print_r($instance_id . ” ” . $image_id . ” ” . $state . ” ” . $dns . “\n”);
}

下面这段程序,销毁一个虚拟机实例(需要将i-XXXXXXXX替换成实际的实例名称):
 
$ec2->terminateInstances(“i-0DF73F93”);

Leave a Reply

Panorama Theme by Themocracy