4 Replies Latest reply on Apr 5, 2013 11:14 AM by NicoS1

    Entfernen aus Gruppe soll vorher ausgetauschte Datei nicht löschen

    noctar Apprentice
      Hallo Forum,

      Ich habe hier eine interessante Baustelle.
      Wir betreiben Autocad auf 2 unterschiedlichen Lizenzservern mit entsprechenden Kontingenten an Floating-Lizenzen.
      Wenn ein Engpass besteht tauschen  wir die ini-Datei aus und der Client zieht die Lizenz vom anderen Server. Hierfür habe ich zwei Mini-Pakete geschnürt.
      Diese kopieren jeweils eine vorgegebene Einstellungsdatei in das Programmverzeichnis. die dann abgefragt wird und die Lizenzanfrage zum entsprechenden Server umleitet.
      Nun habe ich zwei  Computergruppen  erstellt mit der jeweiligen Policy.
      Ordne ich einen PC der Gruppe zu, wird die Datei ersetzt und der Client geht an den entsprechenden Server.
      Ordne ich den PC nun der anderen Gruppe zu, wird die Datei erneut überschrieben und der PC geht an den anderen Server.
      Ergebnis: Ich habe zwei Policies am Rechner und die zuletzt installierte bestimmt den aktuellen Lizenzserver.
      Das ist aber nicht schön.

      Wenn  ich den Rechner aus der Gruppe herausnehme, damit er wieder an den ursprünglichen Server geht,  wird die ini-Datei gelöscht (wie mir scheint logischerweise).
      Also habe ich meine Routine in etwa wie folgt "aufgeblasen":

      install:

      erstelle backup-Ordner
      kopiere die vorhandene Ini-Datei dort hinein
      hole die gewünschte ini-Datei und überschreibe die Lokale

      Uninstallscript:

      hole die Backupdatei aus dem Backupordner und schiebe sie wieder an den ursprünglichen Ort ins Programmverzeichnis.

      Ergebnis:
      Beim Uninstall (entfernen des Rechners aus der Gruppe) wird nicht die gesicherte Datei zurückkopiert, sondern lediglich die in der Installroutine kopierte Datei gelöscht. Der erstellte Backup-Ordner wird ebenfalls gelöscht.

      Das Problem ist hier total klar.

      Anstatt das bei der Installation Durchgeführte Rückgängig zu machen, soll dsm einfach das Uninstallscript ausführen.

      Kann mir jemand sagen, wo mein Denkfehler liegt?
      viele Grüße aus dem kalten Leverkusen
        • 1. Re: Entfernen aus Gruppe soll vorher ausgetauschte Datei nicht löschen
          NicoS1 Master
          Hallo aus dem etwas sonnigeren BaWü,

          also erstmal Grundsätzlich, damit er die Scriptbefehle nicht rückgängig macht, kannst du dein Script einfach in ein "if not InstallMode(imUninstall)" (Auf Installationmodus prüfen => Deinstallation, und dann die Bedingung beim if auf Auschließen stellen).

          Was ich persönlich schöner Fände wäre eine Benutzerdefinierte Variable oder Schemaerweiterung, und dann evtl. eine Job Policy die Täglich (oder wie ihr euch das wünscht) läuft.

          Angenommen wir nennen die Variable "AutoCadLicenseSever". Dort hinterlegst du dann 3 mögliche Werte "None", "Server A" und "Server B".

          Bei None, schaut das Script zu, dass die ini nicht vorhanden ist (wird ggf. gelöscht). Bei Server A guckt das Script das das eine Ini File da liegt, bei Server B das andere Ini File.

          Hätte den Vorteil, das du dich nicht um den Policywahnsinn kümmern musst, falls da mal was durcheinander kommt, das ein Client in beide Gruppen rein rutscht, und du kannst am Client direkt definieren welchen Lizenzserver er bekommt. In der Standardeinstellung keinen, und nur was man in der Konsole einstellt, das gibt's dann und ist eindeutig.
          • 2. Re: Entfernen aus Gruppe soll vorher ausgetauschte Datei nicht löschen
            derniwi Master
            Hallo,

            ja, würde ich auch so machen. Aber drei Gruppen wird er brauchen (dynamisch), damit die Policy-Instanz 1 beim Wechsel auch entfernt und Policy-Instanz 2 hinzugefügt wird:
            Gruppe 1: Software installieren, Bedingung Parameter <> "None"
            Gruppe 2: ini 1, Parameter "Server A"
            Gruppe 3: ini 2, Parameter "Server B"

            Und der Uninstall-Teil kann ja durchaus die .ini-Datei löschen. Den Parameter "None" würde man als Standard für alle Rechner hinterlegen, die explizite Zuordnung von "Server A" und "Server B" würde den Rechner in die entsprechende Gruppe schieben.

            Ich mache das ganz ähnlich mit der SAP Gui und verteile dementsprechend die Konfigurationsdateien und auch die Komponenteninstallation.

            Ein weiterer Vorteil ist, dass man dadurch auch Programme richtig austauschen kann, ein Wechsel entfernt und deinstalliert dann ein Programm und sorgt über die neue Policy-Instanz zur Installation.

            Gruß
            Nils
            • 3. Re: Entfernen aus Gruppe soll vorher ausgetauschte Datei nicht löschen
              NicoS1 Master
              Ja okay, dynamische Gruppen würden auch gehen. Ich hätte eine Gruppe genommen mit einer Job Policy und in dem eScript das mit der Job Policy die werte mit if abgefragt. dann hast ein Paket, eine Gruppe und um den rest kümmerst dich nur bei den Parametern

              Gerade bei Lizenzfiles, ich hab da einen Kanidaten wo man die Lizenzfiles regelmäßig wechseln muss. Da ist die Job Policy recht sinnvoll für den Administrativen Aufwand dahinter
              • 4. Re: Entfernen aus Gruppe soll vorher ausgetauschte Datei nicht löschen
                Klaus Salger Expert
                Jetzt mal abgesehen von den möglichen Alternativen in DSM - es wäre doch eigentlich viel einfacher wenn jeder AutoCAD-Client beide Lizenzserver verwenden würde.
                Das sollte bei AutoCAD gehen (verteiltes Lizenzservermodell).
                Gibt es einen Grund, warum ihr das nicht so macht?

                Ciao
                  Klaus