Erste Schritte mit CCIs

Im Kontext der SoftLayer-API werden SoftLayer CloudLayer Computing Instances (CCIs) durch SoftLayer_Virtual_Guest-Objekte dargestellt. Der SoftLayer_Virtual_Guest-Service ermöglicht die Interaktion mit einer bestimmten CCI. Sie können mit allen CCIs in Ihrem Account über den SoftLayer_Account-Service interagieren.

Erstellen

Neue CCIs können Sie über SoftLayer_Virtual_Guest::createObject bestellen.
Zuerst wird ein SoftLayer_Virtual_Guest-Vorlagenobjekt erstellt, das die Details der CCI enthält. Für jedes CCI-Vorlagenobjekt müssen mindestens folgende Eigenschaften definiert werden:

  • hostname - Hostname der neuen CCI
  • domain - Domänenname der neuen CCI
  • startCpus - Anzahl der Verarbeitungskerne
  • maxMemory - Speicherzuordnung in MB
  • hourlyBillingFlag - Setzen Sie dieses Kennzeichen auf 'true', erfolgt die Abrechnung auf Stundenbasis, bei 'false' hingegen erfolgt die Abrechnung auf Monatsbasis.
  • operatingSystemReferenceCode - Code, der angibt, welches Betriebssystem installiert werden soll.
  • localDiskFlag - Setzen Sie dieses Kennzeichen auf 'true', wird eine CCI mit lokalen Festplatten konfiguriert, mit 'false' hingegen wird eine CCI für SAN-Festplatten konfiguriert.
$virtualGuestClient = SoftLayer_SoapClient::getClient('SoftLayer_Virtual_Guest', null, $user, $key);
$virtualGuestTemplate = new stdClass();
$virtualGuestTemplate->hostname = 'test1';
$virtualGuestTemplate->domain = 'example.com';
$virtualGuestTemplate->startCpus = 1;
$virtualGuestTemplate->maxMemory = 1024;
$virtualGuestTemplate->hourlyBillingFlag = true;
$virtualGuestTemplate->operatingSystemReferenceCode = 'UBUNTU_LATEST';
$virtualGuestTemplate->localDiskFlag = false;
 
$result = $virtualGuestClient->createObject($virtualGuestTemplate);
print_r($result);

Alle Optionen für das Bestellen von CCIs können über SoftLayer_Virtual_Guest::getCreateObjectOptions abgerufen werden.
Für die createObject()-Methode fallen Gebühren auf dem Account an. Es ist daher am besten, die CCI-Erstellung ohne Aufgabe einer Bestellung mit SoftLayer_Virtual_Guest::generateOrderTemplate zu testen, um ein Bestellobjekt zu generieren. Der von dieser Methode zurückgegebene SoftLayer_Container_Product_Order kann an SoftLayer_Product_Order::verifyOrder übergeben werden, der über alle Probleme informiert, die eine Verarbeitung der Bestellung verhindern würden.

$orderClient = SoftLayer_SoapClient::getClient('SoftLayer_Product_Order', Null, $user, $key);
$orderContainer = $virtualGuestClient->generateOrderTemplate($virtualGuestTemplate);
print_r($orderClient->verifyOrder($orderContainer);

Liste

Eine Liste aller CloudLayer-Computing-Instanzen (CCIs) kann über den SoftLayer_Account-Service mit der SoftLayer_Account::getVirtualGuests-Methode abgerufen werden. Diese Methode gibt einen Array von Objekten des Datentyps SoftLayer_Virtual_Guest zurück.

$accountClient = SoftLayer_SoapClient::getClient('SoftLayer_Account', Null, $user, $key);
$virtualGuests = $accountClient->getVirtualGuests();
print_r($virtualGuests);

Diese vollständige Liste wird oftmals zum Abrufen von Informationen über alle CCIs in einem Account verwendet und ist auch hilfreich, wenn eine bestimmte CCI gesucht wird, deren ID unbekannt ist.

$accountClient = SoftLayer_SoapClient::getClient('SoftLayer_Account', Null, $user, $key);
$virtualGuests = $accountClient->getVirtualGuests();
foreach ($virtualGuests as $virtualGuest) {
    if ($virtualGuest->hostname == "server1") {
        $serverId = $virtualGuest->id;
    }
}

Details

Um Informationen über eine bestimmte CCI zu erhalten, können wir den SoftLayer_Virtual_Guest::getObject-Service verwenden, der ein SoftLayer_Virtual_Guest-Objekt zurückgibt. Objektmasken können dazu verwendet werden, um Daten einzubeziehen, die in den lokalen Eigenschaften von SoftLayer_Virtual_Guest nicht enthalten sind. Nachfolgend sehen Sie ein Beispiel, bei dem getObject für den SoftLayer_Virtual_Guest-Service mit einer Objektmaske verwendet wird, die die Kennwörter für das auf dem Server installierte Betriebssystem bereitstellt.

$guestClient = SoftLayer_SoapClient::getClient('SoftLayer_Virtual_Guest', $id, $user, $key);
$objectMask = "mask[id, hostname, domain, operatingSystem[passwords]]"
$guestClient->setObjectMask($objectMask);
$virtualGuest = $guestClient->getObject();
print_r($virtualGuest);

Da wir auch eine Reihe von lokalen Eigenschaften definiert haben, beachten Sie, dass die Ausgabe neben den von der Objektmaske gelieferten relationalen Eigenschaften nur den eingeschränkten Satz von lokalen Eigenschaften enthält, die in der Maske definiert wurden.

Entfernen

Sie können CCIs entfernen, indem Sie die ID per Pull-Operation vom SoftLayer_Account-Service extrahieren. In diesem Beispiel extrahieren wir alle Virtual Guest-Datensätze per Pull-Operation vom Account und verwenden die Hostnamen, um den speziellen Guest-Datensatz zu parsen, den wir entfernen möchten. Dabei müssen Sie vorsichtig sein, weil der Hostname eines Virtual Guest-Datensatzes nicht einmalig ist.
SoftLayer_Virtual_Guest::deleteObject

$guestClient = SoftLayer_SoapClient::getClient('SoftLayer_Virtual_Guest', $serverId, $user, $key);
$result = $guestClient->deleteObject();
print_r($result);

Diese Methode führt zum sofortigen Entfernen der Computing-Instanz mit der angegebenen ID.
Hinweis: Das Anhalten einer Instanz mit SoftLayer_Virtual_Guest::pause führt nicht dazu, dass die Abrechnung gestoppt wird. Eine Instanz muss entfernt/gelöscht werden, damit die Abrechnung eingestellt wird.

Neu starten

Es gibt zwei Möglichkeiten für das Aus- und Einschalten einer CCI: