14 Replies Latest reply on Jul 12, 2013 2:36 AM by Markus.Zierer

    Staging / Installation nur im Büro zulassen

    stephang Apprentice
      Hallo zusammen,

      ich habe eine Frage zur Verteilung von Paketen auf Clients.

      Wir haben 8 Büros. Jedes Büro hat ein eigenes Depot, das über die Subnetzmaske definiert wird.

      Das HQ hat auch ein Depot. Hier sind allerdings 3 "Sites" verlinkt. Zum einen das Auffangbecken. Die VPN Site und die HQ Site.

      Ich würde gerne erreichen, dass die Daten nur gezogen werden wenn sich der Client wirklich im LAN befindet.

      Die Durchsatzrate und deren Berechnung ist ja eher Theorie .

      Gibt es hier eine empfohlene Vorgehensweise ? Es handelt sich um das Rollout von SP1 + Systemupdatevorbereitungstool. Wenn die Installation in einem Büro stattfindet bin ich auch viel beruhigter

      Grüße
      Stephan
        • 1. Re: Staging / Installation nur im Büro zulassen
          derniwi Master
          Hallo,

          du könntest das Default-Gateway auslesen und prüfen, dieses sollte sich ja in jedem Subnetz unterscheiden:
          !Check default gateway and do not backup if not directly connected to our network
          Set('_COUNT','0')
          Set('_DEFGWFOUND','0')
          WMIGetInstanceCount('\\.\root\cimv2','Win32_NetworkAdapterConfiguration WHERE IPEnabled=True','_COUNT')/TW
          If %_COUNT%>'0'
          Set('_LOOP','0')
          : next1
          WMIGetIndexData('\\.\root\cimv2','WIN32_NetworkAdapterConfiguration WHERE IPEnabled=True','%_LOOP%','WMI_')
            DefaultIPGateway
            IPAddress
          EndProc/TW
          !
          ! Check all default gateways
          Set('_GWLOOP','0')
          : GWLoop
          StrGetElement('%InstallationParameters.DefGateway%',',','%_GWLOOP%','_DEFGW')
          If not %_DEFGW%=''
          !  Default gateway from the list
            If %_DEFGW%='%WMI_DefaultIPGateway%'
          !   Current default gateway matches list element
             Set('_DEFGWFOUND','1')
            Else
          !   Current default gateway does not match, check the next
             IncrementVar('_GWLOOP','1')
             goto GWLoop
          !
          ! The parameter lsit is checked
          If %_DEFGWFOUND%='0'
            IncrementVar('_LOOP','1')
            If %_LOOP%<'%_COUNT%'
          !   Check the next gateway entry of the computer
             goto next1
            Else
          !   The computer is connected using VPN or an offsite location
             ExitProc(Done)
          Else
          ! No network found - this should not occur
          ExitProc(Done)


          Ich habe hierzu in einem Paket einen Installationsparameter vom Typ String mit dem Namen "DefGateway" angelegt, so dass ich das Subnetz bei der Zuordnung erkennen lassen kann.

          Der Code-Schnipsel prüft alle aktiven IP-Verbindungen und liest zum einen die IP-Adresse und das Standard-Gateway aus.

          Vielleicht hilft dir das weiter.

          Gruß
          Nils
          • 2. Re: Staging / Installation nur im Büro zulassen
            Klaus Salger Expert
            Hallo Stephan,

            Du möchtest also verhindern, dass dieses bzw. bestimmte Pakete per VPN installiert werden, richtig?

            Ich denke, das einfachste ist in dem Fall, das VPN-Depot physisch von den anderen zu trennen und in dieses Depot nur die Pakete zu distribuieren, die per VPN installiert werden sollen.

            Das ist gewöhnungsbedürftig wenn man bisher alle Pakete einfach in alle Depots distribuiert hat und verbraucht zusätzlich Platz aber es erlaubt eine relative einfache und flexible Einteilung der Pakete und die einzelnen Pakete müssen dazu nicht angepasst werden.

            Ciao
              Klaus
            • 3. Re: Staging / Installation nur im Büro zulassen
              stephang Apprentice
              Hallo,

              Klaus Lösung scheint in diesem Fall wirklich die einfachere Lösung zu sein. Mal abgesehn von dem zusätzlichen Speicherplatz und Server.

              @Nils
              Läuft dieses Skript dann als Job ? Ich kann dies ja nicht in das Escript mit reinpacken, da dafür das Paket ja schon heruntergeladen werden muss.

              Eventuell als Software Set aber mit ExitProc(Undone,Im VPN) und das Paket nicht als optional kennzeichnen ?

              Ist in der neuen Version so eine Funktion vorgesehn oder muss man ein Feature Request erstellen ?

              Grüße
              Stephan
              • 4. Re: Staging / Installation nur im Büro zulassen
                Klaus Salger Expert
                Hallo Stephan,

                damit da keine Mißverständnisse aufkommen - für ein extra Depot braucht's keinen zusätzlichen Server sondern nur ein zusätzliches Share.

                Das darf schon auf dem gleichen Server liegen, die Pakete müssen aber in das extra Share distribuiert werden und nehmen da natürlich auch extra Platz weg.

                Ciao
                  Klaus
                • 5. Re: Staging / Installation nur im Büro zulassen
                  derniwi Master
                  Hallo,

                  das ist nur ein Codeschnipsel, wie ich hier ermittle, ob ein Rechner per VPN angebunden ist. Aber ja, ich habe das in einem Job eingebaut, der halt nur im Büro laufen soll, nicht unterwegs.

                  Aber theoretisch müsste man daraus ein kleines, eigenständiges Paket machen können, welches in einem Software-Set eingebunden wird. Damit sollte man das Software-Set dann vorzeitig abbrechen können, und somit müsste nur diese kleine Paket übertragen werden.

                  Aber der Vorschlag von Klaus dürfte sicherlich besser sein. Mit mehreren Depots habe ich leider noch keine Erfahrung...

                  Gruß
                  Nils
                  • 6. Re: Staging / Installation nur im Büro zulassen
                    NicoS1 Master
                    Respekt für den Codeschnipsel. Ich frage mich gerade nur, ob es ein einfacher

                    cmd.exe /C ipconfig /ALL | find "GateWayIP"

                    nicht auch getan hätte

                    (Vorrausgesetzt man benutzt kein SSL VPN, das sich nicht als Adapter registriert).

                    Ansonsten... was fällt mir da noch ein:

                    Wenn das Paket per Auto- / Serviceinstaller ausgerollt wird, könnte man das Staging des Paketes auch grundsätzlich abschalten.

                    Falls du dann eine eigene Site für VPN Clients hast (die kann auch ruhig das gleiche Depot sein wie bei einer andere Site, benötigt dann keinen extra Platz), kannst du in deinem Paket auch mit %CurrentSite% arbeiten und ermitteln ob ein User sich gerade in der VPN Site befindet. Dann kannst du dir den Code oben auch sparen.
                    • 7. Re: Staging / Installation nur im Büro zulassen
                      Michi Expert


                      Wenn das Paket per Auto- / Serviceinstaller ausgerollt wird, könnte man das Staging des Paketes auch grundsätzlich abschalten.

                      Falls du dann eine eigene Site für VPN Clients hast (die kann auch ruhig das gleiche Depot sein wie bei einer andere Site, benötigt dann keinen extra Platz), kannst du in deinem Paket auch mit %CurrentSite% arbeiten und ermitteln ob ein User sich gerade in der VPN Site befindet. Dann kannst du dir den Code oben auch sparen.



                      Moin,

                      du könntest auch anstatt das Staging zu deaktivieren, eine Clientseitige Voraussetzung auf die entsprechende Site setzen.
                      Dann würde in der LAN Site gestaged und ausgeführt.
                      In der VPN Site bleibt die Instanz auf pending.
                      Ich persönlich habe es bis jetzt auch immer so gemacht wie Klaus geschrieben hat.

                      Gruß
                      Michi
                      • 8. Re: Staging / Installation nur im Büro zulassen
                        derniwi Master
                        Hallo Nico,

                        cmd.exe /C ipconfig /ALL | find "GateWayIP"



                        Naja, je nach Subnetz:
                        Gateway 1: 192.168.1.1/255.255.255.128
                        Gateway 2: 192.168.1.129/255.255.255.128

                        Hier würde man immer mit
                        cmd.exe /C ipconfig /ALL | find "192.168.1.1"
                        immer das Gateway 1 finden... auch wenn Gateway 2 eingetragen wäre...

                        Und wenn kein Gateway oder ein anderes eingetragen ist, dann könnte eine andere IP-Adresse einen Treffer auslösen...

                        Und je nach Sprache ist das mit Skripten und Auswertung von einzlenen Zeilen auch manchmal doof... aber hier würde das gehen.

                        Ich hatte da auch einige Überlegungen angestellt, bevor ich das Skript erstellt habe.

                        Gruß
                        Nils
                        • 9. Re: Staging / Installation nur im Büro zulassen
                          Markus.Zierer Expert
                          @steppe

                          Also deine Bedenken bzgl. Download, Durchsatz usw. kann ich jetzt nicht wirklich ganz nachvollziehen. Grundsätzlich ist es so, dass die Pakete bei DSM standardmässig IMMER gestaged werden und die Installation von den lokalen Sourcen aus erfolgt. Bei größeren Sachen bzw. bei Nutzung von VPN angebundenen Clients sollte man ebenfalls berücksichtigen, diesen Clients genügend Zeit zu geben um die Pakete zu stagen. Unabhängig davon wird die Installation nicht starten bevor nicht alle notwendigen Pakete lokal vorhanden sind. Aus diesem Grund heraus sollte man, gerade wenn es auch VPN Clients gibt, mit sog. Stichtagsumstellungen in der Zukunft arbeiten.

                          Beispiel:
                          Wenn Du eine Policy anlegst, hier aber das Activation Date 2 Wochen in der Zukunft gelegt ist, beginnen alle Policy Targets beim nächsten Polling damit, die Paketsourcen herunter zu laden. Da es in diesem Fall KEIN Emergency Download ist, kommt hier ein Bandbreitenschonendes Verfahren zum Einsatz. Damit sollten auch die VPN User nicht wirklich beeinträchtigt werden. Sobald die Daten dann runtergeladen worden sind, passiert auch wiederum nichts. Und zwar solange bis das Activation Date erreicht ist und die Installation dann letztlich startet. Meiner Erfahrung nach funktioniert das einwandfrei so.

                          Wenn Du aber ne Policy neu anlegst und die Installation dann auch gleich starten soll, erzwingst du einen sog. Emergency Download. Hierbei wird dann mit max. Bandbreite vom Depot geladen. Und das kann durchaus bei VPN Usern zu Problemen bei der Verbindung führen.

                          Davon das Staging abzuschalten halte ich im allgemeinen nichts, weil man sich dadurch wieder andere Fehler einkauft (z.B. falsch InstallSourcePath Einträge bei MSI Installationen). Sicher, es gibt Situationen wo das Sinnvoll sein kann. Aber im Allgemeinen haben die FrontRange Entwickler da schon sehr viel drüber nachgedacht.
                          • 10. Re: Staging / Installation nur im Büro zulassen
                            NicoS1 Master

                            du könntest auch anstatt das Staging zu deaktivieren, eine Clientseitige Voraussetzung auf die entsprechende Site setzen.



                            Das habe ich beim Schreiben meines Beitrages auch überlegt. War mir aber nicht 100% sicher. Die Clientseitigen Vorrausetzungen werden ja am Client geprüft... die Frage ist nur, ob er das Paket nicht doch Staged und dann aber nur nicht ausführt, weil die Vorraussetzungen nicht erfüllt sind, oder ob er es aufgrund falscher Vorraussetzungen erst gar nicht Staged.

                            Weil wenn es so ist, dass er nicht staged kann man recht einfach mit einer Site für das VPN Subnetz arbeiten, und in den Clientseitigen Vorraussetzungen einen not %CurrentSite%=VPN.Site.blubb angeben. Das wäre dann mit Bordmitteln umgesetzt und recht einfach wiederverwendbar.

                            Die Lösung von Klaus ist zwar auch schön und sauber. Aber das mit dem extra Platz ist leider nicht für jeden so einfach umzusetzen...
                            • 11. Re: Staging / Installation nur im Büro zulassen
                              Michi Expert

                              Das habe ich beim Schreiben meines Beitrages auch überlegt. War mir aber nicht 100% sicher. Die Clientseitigen Vorrausetzungen werden ja am Client geprüft... die Frage ist nur, ob er das Paket nicht doch Staged und dann aber nur nicht ausführt, weil die Vorraussetzungen nicht erfüllt sind, oder ob er es aufgrund falscher Vorraussetzungen erst gar nicht Staged.

                              Weil wenn es so ist, dass er nicht staged kann man recht einfach mit einer Site für das VPN Subnetz arbeiten, und in den Clientseitigen Vorraussetzungen einen not %CurrentSite%=VPN.Site.blubb angeben. Das wäre dann mit Bordmitteln umgesetzt und recht einfach wiederverwendbar.

                              Die Lösung von Klaus ist zwar auch schön und sauber. Aber das mit dem extra Platz ist leider nicht für jeden so einfach umzusetzen...



                              Hi Nico,

                              genau so verhält es sich auch.
                              Wenn man auf der grünen Wiese anfängt, ist das auch nicht wirklich schlimm umzusetzen. Aber im Nachgang alle Pakete zu revisionieren is halt schon ne Menge Arbeit.
                              Ich hab auch mal für nen Kunden eine "On Demand Installation" Lösung gebaut. Da wird ein Powershell Skript gestartet.
                              Da wird geprüft ob ne Internetverbindung verhanden ist und noch paar Kleinigkeiten. Dann wird ein RegKey gesetzt der für die Sitebestimmung erforderlich ist. Nach einem niagnt32 /relocate kann der Client stagen und installieren. Über eine Job Policy wird am Ende der RegKey wieder entfernt, damit der Client sich der Site nicht connecten kann.
                              Jetzt ist natürlich das Problem, dass der User die Entscheidung hat wann etwas installiert wird. Im schlimmsten Fall also niemals.
                              Dafür kann man sich aber einen geplanten Task für einen Zwangsrollout bauen.
                              Das 100%ig gelbe vom Ei ist das jetzt nicht, aber es funktioniert.

                              Gruß
                              Michi
                              • 12. Re: Staging / Installation nur im Büro zulassen
                                NicoS1 Master
                                Hallo,

                                also ich beziehe mich jetzt hier auf die Aufgabenstellung des Thread-Erstellers.

                                Er möchte ein bestimmtes Paket, nicht per VPN verteilen, nicht "alle hochrevisionieren".

                                Dementsprechend müsste er nur eine Site einrichten, die die VPN User auffängt, und an diesem einzelnen Paket, welches er nicht per VPN Verteilen möchte, die Client-Vorraussetungen setzen (Ausschluss auf %CurrentSite%=VPN-Site). Ich sehe jetzt keinen Grund warum sowas nicht auch in bereits produktiven Umgebungen eingesetzt werden kann. Revisionieren muß er ja nur das eine Paket, was er gerade nicht möchte. Alle anderen können ja weiter über VPN laufen

                                Und das Problem mit dem zusätzlichen Depot und extra Speicherplatz fällt auch Flach. Meine VPN Site nutzt das selbe Depot wie der Orgmaster, das einzige was man machen muß, wenn ein Depot mit dem selben Share einrichtet ist ja die 4 Distri-Polling Intervalle der Site und des zugehörigen Site auf 0 zu stellen.

                                Da müsste er auch keine Reg Keys oder Script bauen Die Site-Determination läuft sehr schnell, sobald DSM merkt, das sich was an den Netzwerkverbindungen geändert hat (wenn man das Network Change Polling nicht per undokumentiertem Reg-Key runter geregelt hat).
                                • 13. Re: Staging / Installation nur im Büro zulassen
                                  _Mel_ Master
                                  i.d.R. ist es ja nicht so, daß man außerhalb des LANs nicht installieren will, sondern, daß man keinen traffic will.

                                  d.h. eine möglichkeit wäre auch ein eigenen (reales) Depot) für VPN client zu machen und dort nur die pakete hinverteilen zu lassen, die auch über VPN heruntergeladen werden sollen.

                                  die vorteile sind
                                  1. man kann die software trotzdem installieren, wenn man mit einem offline medium arbeitet
                                  2. wenn die policy ein aktivierungsdatum in der zukunft hat, wird die software heruntergeladen, wenn der rechner im LAN ist, aber auch installiert, wenn der rechner zum aktivierungszeitpunkt über vpn verbunden ist (was sinnvoll ist, da die installation keinen trafic verursacht)
                                  3. man riskiert nicht, daß der client auf die idee kommt die software zu deinstallieren, wenn der rechner über VPN verbunden ist (voraussetzungen nicht erfüllt -> deinstallation; keine ahnung, ob das zur zeit so ist, aber wenn nicht, dann ist das eher ein bug als erwünschtes verhalten und damit könnte man selbst wenn es jetzt das gewünschte tun sollte, nach einem update irgendwann mal eine böse überraschung erleben...)
                                  • 14. Re: Staging / Installation nur im Büro zulassen
                                    stephang Apprentice
                                    Na da hab ich ja eine Diskussion losgetreten

                                    Der Traffic ist eine Sache (Websessions im Ausland .. 50 MB danach sind wieder 15€ fällig), dass ich das Update lieber im Büro installiert haben möchte eine andere.

                                    Kann ich eine bestehende Site vom Share her verändern oder muss ich sozusagen VPN2 anlegen und da die richtigen Einstellungen machen.

                                    Ich seh nur noch ein Problem mit dem Auffangbecken .. manchmal wird die Site nicht richtig im VPN aufgelöst und es wird das Auffangbecken angezeigt. Dann bekommen die Clients trotzdem die Pakete gestaged und installiert. Aber solang die Mehrheit richtig zugewiesen wird bin ich zufrieden.

                                    edit:
                                    habe mal ein paar stichproben gemacht. leider ist die mehrheit eher im "auffangbecken" zu finden.
                                    Wir nutzen ssl vpn (basierend auf openvpn). Polling ist soweit ich weiß nicht verändert worden.

                                    Grüße
                                    Stephan