Hi, ich weiß das wurde schon 100 mal irgendwie abgehandelt.
Aber ich bin zZ stark am verzweifeln mit der vSphere PowerCLI.
ich möchte eine VM irgendwie nur durch ein script hochfahren.
Ich habs ja schon geschafft ne batch so zu biegen das er die richtige shell öffnet und da dann bis zur "get-viserver" stelle kommt. Danach sollte man die zu verwaltenden server angeben und die credentials eingeben. Folgend sollte der start-VM befehl folgen, jedoch scheitert es schon an der stelle ihm die viserver zu geben. Kann man dem das nich irgendwie inner batch mitgeben ?
Hab ja schon einige tuts zu scripting mit perl unter esx gelesen, aber diese waren leider immer seeehr schwammig formuliert
HILFE !!!
Die Foren-SW läuft ohne erkennbare Probleme. Sollte doch etwas nicht funktionieren, bitte gerne hier jederzeit melden und wir kümmern uns zeitnah darum. Danke!
Malwieder das scripting
-
- King of the Hill
- Beiträge: 12940
- Registriert: 02.08.2008, 15:06
- Wohnort: Hannover/Wuerzburg
- Kontaktdaten:
Leider kein Powershell oder PERL sondern nur PHP...das kann ich nunmal am besten
Gesetzt werden muessen nur VC_HOST,VC_NAME und VC_PASS. Frueher hab ich aus meinen Scripten die vmcontrol.pl aufgerufen.
Gruss
Joerg
Code: Alles auswählen
<?php
error_reporting(E_ALL);
require_once("lib/nusoap.php");
$myconnection = new soapclient(VC_HOST);
$myconnection->useHTTPPersistentConnection();
$namespace = "urn:vim25";
$soapmsg['data'] = new soapval('_this','SessionManager','SessionManager');
$soapmsg['userName'] = VC_NAME;
$soapmsg['password'] = VC_PASS;
$result = $myconnection->call('Login',$soapmsg,$namespace);
unset($soapmsg);
$send['this'] = new soapval('_this', 'SearchIndex', 'SearchIndex');
$send['ip'] = '192.168.xxx.xxx';
$send['vmSearch'] = 'true';
$result3 = $myconnection->call('FindByIp', $send, $namespace);
//PowerOn
unset($soapmsg);
$soapmsg['this'] = new soapval('_this','VirtualMachine',$result3);
$result31 = $myconnection->call('PowerOnVM_Task',$soapmsg,$namespace);
unset($soapmsg);
$soapmsg['data'] = new soapval('_this','SessionManager','SessionManager');
$result4 = $myconnection->call("Logout",$soapmsg,$namespace);
var_dump($result);
print "\n";
var_dump($result3);
print "\n";
var_dump($result31);
print "\n";
var_dump($result4);
?>
Gesetzt werden muessen nur VC_HOST,VC_NAME und VC_PASS. Frueher hab ich aus meinen Scripten die vmcontrol.pl aufgerufen.
Code: Alles auswählen
$cmd = sprintf(VI_TK_PATH.'/Perl/apps/vm/vmcontrol.pl --server %s --username %s --password %s --operation %s --vmname %s',
escapeshellarg($host),
escapeshellarg($user),
escapeshellarg($pass),
escapeshellarg('poweron'),
escapeshellarg($vm_name)
);
Gruss
Joerg
-
- Member
- Beiträge: 5
- Registriert: 06.07.2009, 16:19
-
- King of the Hill
- Beiträge: 12940
- Registriert: 02.08.2008, 15:06
- Wohnort: Hannover/Wuerzburg
- Kontaktdaten:
Scripte werden ihrem jeweiligem Interpreter uebergeben oder dein OS weis was es mit der entsprechenden Endung bzw. MagicMime zutun hat.
Ersteres ist reines PHP welches mittels SOAP das VMWare SDK benutzt.
Das andere zeigt den Einsatz der Perl Programme aus dem VI Toolkit. Das "vmcontrol.pl" kannst du in jede Sprache/Script einbauen welches externe Programme ausfuehren kann. Im einfachsten Falle eine einfache BATCH Datei.
Da du von BATCH Datei gesprochen hast sollte das VI Toolkit doch das passende fuer dich sein. Das war zu ESX 3.5 Zeiten aktuell und die Frage obs fuer vSphere ein Update gab oder obs nun alles vSphere CLI ist.
Gruss
Joerg
Ersteres ist reines PHP welches mittels SOAP das VMWare SDK benutzt.
Das andere zeigt den Einsatz der Perl Programme aus dem VI Toolkit. Das "vmcontrol.pl" kannst du in jede Sprache/Script einbauen welches externe Programme ausfuehren kann. Im einfachsten Falle eine einfache BATCH Datei.
Da du von BATCH Datei gesprochen hast sollte das VI Toolkit doch das passende fuer dich sein. Das war zu ESX 3.5 Zeiten aktuell und die Frage obs fuer vSphere ein Update gab oder obs nun alles vSphere CLI ist.
Code: Alles auswählen
vmcontrol.pl --server "meinserver" --username "meinuser" --password "meinpass" --operation "tudies" --vmname "meinvm"
Gruss
Joerg
-
- Member
- Beiträge: 5
- Registriert: 06.07.2009, 16:19
-
- King of the Hill
- Beiträge: 12940
- Registriert: 02.08.2008, 15:06
- Wohnort: Hannover/Wuerzburg
- Kontaktdaten:
Skaarhybrid hat geschrieben:gilt das alles auch für ESXi ??
Ja.
War deine Frage aber "Gilt das auch fuer den FreeESXI?" dann ist die Anwort "Jein".
Beim FreeESXi ist der Zugriff mittels API auf "ReadOnly" begrenzt. IIRC war er im U3 ausversehen komplett freigeschaltet.
Ich gehe mal davon aus das ein Kommando wie PowerOn als "schreiben" gewertet wird und somit im Normalfall nicht funktioniert. Aber das kannst du auch selber in 10sek. austesten wie es bei dir ist.
mein problem ist einfach nicht zu wissen, WENN ich schon eine geeignete batch habe, wo genau diese eingebunden wird, bzw dann aufgeührt werden kann.....im besten fall halt automatisch
Aeh..... .oO(Ich suche noch nach Worten)
vm_poweron.bat
Code: Alles auswählen
@echo off
echo "Try to startup a VM...."
/path/to/vmcontrol.pl --server "meinesx" --username "meinuser" --password "meinpass" --operation poweron --vmname "meinevm"
Ob ein %errorlevel% gesetzt wird must du spaeter mal testen dann koennte man das auswerten. Aber ich bin der Meinung das nur der Befehl zum Starten abgesetzt wird und nicht gewartet wird vom Programm ob dieser auch erfolgreich ist.
Gruss
Joerg
-
- Member
- Beiträge: 5
- Registriert: 06.07.2009, 16:19
ja, ich meine freeESXi
ich sag mal so, mein wirkliches problem ist folgendes:
Ich habe wie gesagt schon eine passende batch, diese kann auch auf die vSphereCLI zugreifen, leider kann ich bei dem punkt an dem man die zu verwaltenden server angeben soll, bzw danach die credentials, diese werte nicht richtig an die CLI übergeben.
Andere frage, ich lese ständig von der vmcontrol.pl, diese ist in meinen gesammten VI / Vmware verzeichnissen nicht vorhanden, sicher das es diese unter freeESXi gibt ??
ich sag mal so, mein wirkliches problem ist folgendes:
Ich habe wie gesagt schon eine passende batch, diese kann auch auf die vSphereCLI zugreifen, leider kann ich bei dem punkt an dem man die zu verwaltenden server angeben soll, bzw danach die credentials, diese werte nicht richtig an die CLI übergeben.
Andere frage, ich lese ständig von der vmcontrol.pl, diese ist in meinen gesammten VI / Vmware verzeichnissen nicht vorhanden, sicher das es diese unter freeESXi gibt ??
-
- King of the Hill
- Beiträge: 12940
- Registriert: 02.08.2008, 15:06
- Wohnort: Hannover/Wuerzburg
- Kontaktdaten:
Skaarhybrid hat geschrieben:Andere frage, ich lese ständig von der vmcontrol.pl, diese ist in meinen gesammten VI / Vmware verzeichnissen nicht vorhanden, sicher das es diese unter freeESXi gibt ??
Das VI Toolkit installiert man nicht auf dem HOST.. sondern auf dem Rechner welcher die Aktion ausloesen soll. Also in deinem Falle auf dem wo auch deine Batchdatei liegt.
Bei mir dann:
Code: Alles auswählen
C:\Programme\VMware\VMware VI Perl Toolkit\Perl\apps\vm
Hab gerade keinen ESXi 4 zur Hand sonst koennte ich mal Testen.
Solange die 60Tage Trial laueft wird alles funktionieren... erst wenn du deinen Lizenzkey einspielst sieht die Welt ganz anders aus und die API verhaelt sich anders.
Gruss
Joerg
Wer ist online?
Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste