2014-04-15 6 views
1

나는 올바른 방향으로 조언을하고 더 중요한 것은 조언이 필요한 매우 열려있는 질문입니다.openstack을 사용하여 PHP를 통해 인스턴스를 시작하고 요청에 따라 인스턴스를 자동으로 빌드하는 방법에 대한 지침?

오픈 소스를 사용하여 개인용 클라우드 (현재 VMware 사용)를 주된 목표로 삼고 있습니다. 웹 응용 프로그램 내에서 새 VM 인스턴스를 시작할 수 있으므로 PHP 페이지를 통해 배포 할 수 있습니다. 새로운 아파치 작업자 서버 예를 들어. 다음 목표는 서버 부하가 커지거나 인스턴스를 자동 실행하기 위해 더 많은 작업자 서버가 작업을 수행해야 할 때를 확인할 수 있도록 코드를 개발하는 것입니다.

오픈 스택 API를 사용하여 이것이 최선의 방법인지 확인해 봤습니다. 그러나 주주를보고 매력을 사용하여 이것을 할 수 있는지 알아보고 주주를위한 API가 최상인지 확인하십시오.

목표는 VMware에서 작동하거나 VM웨어를 대체하는 것입니다.

내 현재 설정 때문에 포인터에 도움 내가 그에게

답변

1

음의 많은 나열하는 SDK 페이지가 오픈 질문을 알고

좋은 것 스토리지로 노바를 사용하여 노트북에서 OpenStack은 실행 존재하는 OpenStack API 클라이언트 SDK.

참고 : 현재 OpenStack은 두 PHP의 SDK를 거기에

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

표시 기준 :

참조 :

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

내가으로 주주를 사용하지 것이다 인터페이스. 그리고 솔직히 OpenStack이 당신이하고있는 일에 적합한 도구인지 모르겠습니다. 그러나 devstack으로 놀고 아이디어를 얻고 싶다면 rackspace의 PHP 클라이언트 SDK가 좋은 시작이라고 생각합니다. Devstack은 그 경험을 얻는 나쁜 방법이 아닙니다. PHP-opencloud와 서버를 회전의

예 :

use OpenCloud\Compute\Constants\ServerState; 

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

$server = $compute->server(); 

try { 
$response = $server->create(array(
    'name'  => 'My lovely server', 
    'image' => $ubuntu, 
    'flavor' => $twoGbFlavor 
)); 
} catch (\Guzzle\Http\Exception\BadResponseException $e) { 

// No! Something failed. Let's find out: 

$responseBody = (string) $e->getResponse()->getBody(); 
$statusCode = $e->getResponse()->getStatusCode(); 
$headers  = $e->getResponse()->getHeaderLines(); 

echo sprintf("Status: %s\nBody: %s\nHeaders: %s", $statusCode, $responseBody, implode(', ', $headers)); 
} 

이것은 폴링 기능이 될 것입니다