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

Hilfe bei Problemen mit Installation & Benutzung des VMware ESX/ESXi Server 3.

Moderatoren: irix, Dayworker

Member
Beiträge: 5
Registriert: 06.07.2009, 16:19

Malwieder das scripting

Beitragvon Skaarhybrid » 06.07.2009, 16:32

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 !!!

King of the Hill
Beiträge: 12940
Registriert: 02.08.2008, 15:06
Wohnort: Hannover/Wuerzburg
Kontaktdaten:

Beitragvon irix » 06.07.2009, 19:56

Leider kein Powershell oder PERL sondern nur PHP...das kann ich nunmal am besten :)

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

Beitragvon Skaarhybrid » 07.07.2009, 08:37

wo muss dieses script aufgeführt werden ?
bzw. müssen beide code-schnipsel in ein script ?? oO

King of the Hill
Beiträge: 12940
Registriert: 02.08.2008, 15:06
Wohnort: Hannover/Wuerzburg
Kontaktdaten:

Beitragvon irix » 07.07.2009, 08:50

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.

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

Beitragvon Skaarhybrid » 07.07.2009, 12:15

gilt das alles auch für ESXi ??
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

King of the Hill
Beiträge: 12940
Registriert: 02.08.2008, 15:06
Wohnort: Hannover/Wuerzburg
Kontaktdaten:

Beitragvon irix » 07.07.2009, 13:09

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

Beitragvon Skaarhybrid » 07.07.2009, 14:45

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 ??

King of the Hill
Beiträge: 12940
Registriert: 02.08.2008, 15:06
Wohnort: Hannover/Wuerzburg
Kontaktdaten:

Beitragvon irix » 07.07.2009, 15:04

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
Es empfiehlt sich dann diese Verzeichnis mit in %PATH% aufzunehmen.


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


Zurück zu „ESX 3 & ESXi 3“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste