Seite 1 von 1

wunsch/Anregung automatisierte Scripterstellung

Verfasst: 16 Sep 2010, 17:55
von schoelpert
Hallo,

ich habe mich mal daran gesetzt ein Script zu schreiben welches die eingegebenen Installationsscripte automatisch anlegt.
In meinem Script werden nur die Leeren Dateien angelegt, diese sollen aber in Zukunft durch Templates ersetzt werden.
Die entweder vom Admin selbst angelegt werden oder durch eine art Auswahlmenü vorbereitet werden.

z.B.
EINGABE:
--
Packetart: Auswahl - MSI
Dateiname: Eingabe Setupdatei - setupXY.msi
Schalter: Eingabe Schalter - /qn | evtl. auch eine art Auswahl
--
AUSGABE in der Datai
--
msiexec setupXY.msi /qn

Sofern Sie es erlauben würde ich es hier Posten, vielleicht wird es noch anderen eine Hilfe sein, ich war es nur leid die Dateien noch anzulegen

Soweit zu meiner Vorstellung :-)

Mit freundlichen Grüßen

PS: es ist nicht das Professionellste Script, da es mein erstes in Python ist.

Re: wunsch/Anregung automatisierte Scripterstellung

Verfasst: 16 Sep 2010, 18:42
von j.schneider
Hört sich gut an, immer her damit :D

Re: wunsch/Anregung automatisierte Scripterstellung

Verfasst: 16 Sep 2010, 19:55
von schoelpert
wie gesagt mein erstes python script, es ist an ihr opsi-makeprod angepasst.

das folgende Script soll noch soweit erweitert werden das es die Dateien automatisch mit einigen Daten füllt, entweder über Templates in form von
Dateien, die der Anwender dann anpassen kann, oder über ein Menü, durch das dann ein Template zusammen gesetzt wird.

Code: Alles auswählen

if (setupScript != ''):
                InstallDatei = open( os.path.join(destDir, productId,'CLIENT_DATA/'+setupScript), 'w' )
                InstallDatei.close()

        if (updateScript != ''):
                UpdateDatei = open( os.path.join(destDir, productId,'CLIENT_DATA/'+updateScript), 'w' )
                UpdateDatei.close()

        if (uninstallScript != '' ):
                UninstallDatei = open( os.path.join(destDir, productId,'CLIENT_DATA/'+uninstallScript), 'w' )
                UninstallDatei.close()

        if (alwaysScript != '' ):
                AlwaysDatei = open( os.path.join(destDir, productId,'CLIENT_DATA/'+alwaysScript), 'w' )
                AlwaysDatei.close()


        if (onceScript != '' ):
                OnceDatei = open( os.path.join(destDir, productId,'CLIENT_DATA/'+onceScript), 'w' )
                OnceDatei.close()
neuer code:
setzt nun auch berechtigungen und fügt den Inhalt aus einem Template, welches "/home/opsiproducts/tmp/install.tmp"

Code: Alles auswählen

 f = 0
        while (f < 5 ):
                if (values[f].get('value') != ''):
                        InstallDatei = open( os.path.join(destDir, productId,'CLIENT_DATA/'+values[f].get('value')), 'a' )
                        if (os.path.exists("/home/opsiproducts/tmp/install.tmp") == True):
                                temp = open("/home/opsiproducts/tmp/install.tmp","r")
                                for line in temp.readlines():
                                        InstallDatei.write(line)
                                temp.close()
                        InstallDatei.write(';ENDE des TEMPLATES\n')
                        InstallDatei.close()
                        os.chmod( os.path.join(destDir, productId, 'CLIENT_DATA/'+values[f].get('value')),0660 )
                f += 1


Ausserdem hab ich mir noch ein paar Gedanken gemacht, dafür müsste ich ihr Script aber abändern/erweitern.
Ich will eine Art Testscript basteln, welches aus einem input verzeichnis die Scripte holt und automatisch ein Packet erstellt.
Dies würde dafür sorgen das man zum testen der Packete nur die scripte anpassen muss, einmal ein Script ausführt und danach direkt installieren kann.
Sollte dann alles gut laufen kann man die installations Scripte für das gewünschte Packet verwenden.
Nächste Erweiterung wäre dann ein import des Testpacketes in ein Produktiv Packet.
Ist vielleicht später auch für eine GUI nützlich, dieser gedanke wurde ja bereits im Forum erwähnt.

Alles reines zukunfts denken :D