关于使用openstack通过php启动实例并根据请求自动构建实例的指导



这是一个非常开放的问题,我需要一些建议,更重要的是,需要指向正确的方向。

我正在考虑为我的私有云使用openstack(目前使用VMware),因为主要目的是能够从我们的web应用程序中启动一个新的VM实例,因此可以通过php页面触发它来部署新的apache工作服务器。下一个目标是开发我们的代码,以便能够看到服务器负载何时变高,或者何时需要更多的工作服务器来预制任务以自动启动实例?

我一直在研究openstack API,看看这是否是最好的方法?但也要看看juju,看看你是否可以使用符咒来做到这一点,看看juju的api是否最好?

其目的是使其与VMware协同工作或取代VMware。

我目前的设置是在笔记本电脑上运行openstack,使用nova作为存储,所以任何关于指针的帮助都将是很棒的

我知道这是一个悬而未决的问题

有一个SDK页面列出了许多现有的OpenStack API客户端SDK。

参考:

https://wiki.openstack.org/wiki/SDKs#PHP

中列出了目前OpenStack的两个PHP SDK:

参考:

https://github.com/rackspace/php-opencloudhttps://github.com/zendframework/ZendService_OpenStack

我不会使用Juju作为接口。坦率地说,我不确定OpenStack是否适合您所做的工作。但是,如果你想玩devstack并有一个想法,我认为rackspace的php客户端SDK可能是一个好的开始。Devstack也不是获得这种体验的坏方法。

使用php-opencloud:启动服务器的示例

$server = $compute->server();
try {
$response = $server->create(array(
    'name'     => 'My lovely server',
    'image'    => $ubuntu,
    'flavor'   => $twoGbFlavor
));
} catch (GuzzleHttpExceptionBadResponseException $e) {
// No! Something failed. Let's find out:
$responseBody = (string) $e->getResponse()->getBody();
$statusCode   = $e->getResponse()->getStatusCode();
$headers      = $e->getResponse()->getHeaderLines();
echo sprintf("Status: %snBody: %snHeaders: %s", $statusCode, $responseBody, implode(', ', $headers));
}

这将是一个轮询功能:

use OpenCloudComputeConstantsServerState;
$callback = function($server) {
if (!empty($server->error)) {
    var_dump($server->error);
    exit;
} else {
    echo sprintf(
        "Waiting on %s/%-12s %4s%%",
        $server->name(),
        $server->status(),
        isset($server->progress) ? $server->progress : 0
    );
}
};
$server->waitFor(ServerState::ACTIVE, 600, $callback);

相关内容

  • 没有找到相关文章

最新更新