Best Practice für die Software-Verteilung mit Container?

Alle Fragen rund Antworten rund um die ACMP Client Commands und Container
Antworten
Benutzeravatar
Gerundt
Beiträge: 90
Registriert: Fr Jan 10, 2020 4:42 pm

Wir nutzen erst seit kurzem ACMP und haben noch Verständnis-Probleme bei der Software-Verteilung mit Container.

Bis jetzt haben einige Programme mit Gruppenrichtlinien verteilt. Zum Beispiel verteilen wir aktuell den PDF-XChange Editor mit Hilfe von zwei GPOs. Eine Gruppenrichtlinie verteilt die freie Version und die Andere eine MSI-Datei, wo wir den Lizenzschlüssel mitbegeben.

Der Rechner kommt in eine Windows-Gruppe, die mit der entsprechenden Gruppenrichtline verknüpft ist und beim Starten des Computers wird der Setup dann verteilt.

Das versuche ich jetzt auf ACMP-Container umzustellen. Aktuell habe ich folgende Struktur:
  • PDF-XChange Editor
    • Install PDF-XChange Editor Free
    • Install PDF-XChange Editor Plus
Mehrfaches Vorkommen ist beim Hauptordner nicht erlaubt und die „Install“-Container haben das entsprechende CC als Job mit der der Startbedingung „Einmalig beim Start des ACMP Agenten“.

Das hat bei einigen Rechner gut funktioniert. Bei einer Handvoll ist das CC aber fehlgeschlagen. Hatte vermutet, dass er es solange macht, bis es einmal erfolgreich ausgeführt wurde. Sieht aber so aus, als wenn er auch nach dem fehlerhaften Ausführen damit aufhört.

In den Beispielen wird dann immer der Container an den Software-Namen sowie die ältere Versionsnummer geknüpft. Er würde es dann solange probieren, bis die neue Version drauf ist und der Client dann aus dem Filter fällt. Das wird bei 7-Zip auch super funktionieren!

Aber in diesem Fall habe ich zweimal die gleiche Software (Setup) und muss sicherstellen das die einen Rechner nur die Version mit Lizenz bekommen und die anderen ohne Lizenz.

Das gleiche Problem habe ich übrigens mit „TeamViewer Host“. Die meisten Rechner bekommen eine Version verteilt, wo der Anwender erst die Fernwartung bestätigen muss. Ein paar Computer im Unternehmen bekommen aber einen Setup verteilt, wo man sich direkt aufschalten darf.

Im Moment verstehe ich noch nicht, wie ich das mit ACMP korrekt gelöst bekomme. :?

Bin für jeden Tipp dankbar!
Mit freundlichen Grüßen

Tim Gerundt
IT-Administration ∙ Montanhydraulik GmbH
Dennis Koch
Beiträge: 501
Registriert: Di Nov 20, 2012 4:03 pm

Hallo Tim,

einmalig Ausführen bedeutet das CC wird einmalig gestartet. Das Ergebnis vom CC ist hierbei egal. Oft muss nach einem fehlgeschlagenen CC ja auch geprüft werden warum das CC fehlgeschlagen ist.
Ggf. müssen hier dann noch vor der erneuten Ausführung aufräumarbeiten auf dem Client vorgenommen werden.

Um die Verteilung der Software auf den Clients zu koordinieren kann man zwei Container aufbauen. Einmmal mit und einmal ohne Lizenz.

Die weitere Ausführung bis das CC erfolgreich ist könnte man wie folgt machen.
Wenn das Setup z.B. mit Shell execute ausgeführt wird und der Exit Code <> 0 könnte man
ein Wert in ein Custom-Field setzen was dafür sorgt, dass der Client im Container bleibt und wiederkehrend das CC ausführt (Startbedingung wäre dann z.B. täglich). Wenn der Exit Code = 0 wird der Wert entsprechend so gesetzt das der Client aus dem Container fällt und das CC somit auch nicht mehr ausführt. Das mit dem Custom-Field kann man aufbauen wie man möchte. Hier könnte man nach dem Setup auch z.B. "Set Software installed", einen Reg Key auslesen oder eine Datei auslesen. Die Möglichkeiten sind vielfältig und man muss gucken was auf den Anwendungsfall am besten passt.

Alternativ könnte man die Setups auch in ein CC kombinieren und falls auf dem Client unterscheidungskriterien vorhanden sind diese auswerten und abhängig davon das eine oder das andere Setup starten.

Ich würde aber eine Variante wählen wo die Clients nach erfolgreicher Installation rausfallen. Ansonsten weiß man auch nach einer gewissen Zeit das es ein Problem auf den Clients gibt welche nicht aus dem Container fallen.
Mit freundlichen Grüßen / Best regards

Dennis Koch
Aagon GmbH
Benutzeravatar
Gerundt
Beiträge: 90
Registriert: Fr Jan 10, 2020 4:42 pm

Hallo Dennis,

danke für die Antwort. Hatte ja gehofft, dass es mit einer kommerziellen Lösung weniger Handarbeit und gefummel ist. :mrgreen:

Werde die nächsten Tage mal ein bisschen mit der Struktur der Container rum spielen und verschiedene Varianten ausprobieren. Bei einem Screenshot von ngottschalk habe ich gesehen, dass er auch nach den Container-Pfaden filtert. So hat er z.B. seine Server bei der Software-Verteilung rausgenommen. Ist ein interessanter Ansatz!

Vielleicht erstelle ich mir Container die ich nur zum Gruppieren benutze und die dann später in den Installationscontainern verwenden:
  • Gruppen
    • PDF-XChange Editor Plus
  • Installation
    • Install PDF-XChange Editor Free
    • Install PDF-XChange Editor Plus
Die Installations-Container würden dann auf die ältere Versionsnummer abfragen und ob der Client in der "Container-Gruppe" drin ist oder nicht.

Wo es anscheint so viele Möglichkeiten gibt, wäre es schon, wenn das Handbuch solche Möglichkeiten anreißt. Auch so Hinweise, dass einmalig Jobs auch fehlgeschlagene beinhaltet, tuen bestimmt nicht weh und würde es Neueinsteiger sicher leichter machen. ;)
Mit freundlichen Grüßen

Tim Gerundt
IT-Administration ∙ Montanhydraulik GmbH
Dennis Koch
Beiträge: 501
Registriert: Di Nov 20, 2012 4:03 pm

Tatsächlich ist es auch geplant geläufige "use cases" zu beschreiben und Lösungsansätze zu bieten. Wann dies allerdings der Fall ist kann ich nicht sagen.
Auch das unser Handbuch an manchen Stellen verbesserungswürdig ist, ist bekannt. Auch dies soll sich in Zukunft verbessern.
Mit freundlichen Grüßen / Best regards

Dennis Koch
Aagon GmbH
Benutzeravatar
ngottschalk
Beiträge: 293
Registriert: Mi Sep 08, 2010 12:57 pm

Hallo Tim,

freut mich zu hoeren, dass meine Ansaetze manchmal von Interesse fuer Andere sind;) Ich bin mir zwar nicht sicher, ob ich die Problematik komplett erfasst habe, aber fuer mich klingt das nach einem einfachen Fall:
  • Client Command normal mit dem Wizard erstellen (oder manuell)
  • In der Installationsroutine ein "If ADS Container/Property matches" machen und auf die Gruppe/OU/etc. testen. Diese Conditions koennen uebrigens mit dem "Else" aus den Flow-Control Commands kombiniert werden
  • Je nach Fall mit oder ohne Lizenz installieren, aber jeweils ein anderes "Set Software Installed" am Ende einfuegen. Am Besten mit einer Version, ansonsten wird es bei zukuenftigen Updates mit den Containern aus dem naechsten Schritt fummelig
  • Einen Container erstellen der prueft, ob "Name NICHT Like <gemeinsamer Nenner beim Set Software installed>" (und ggf. weitere Einschraenkungen) und den Job damit verknuepfen, Bedingung auf Intervall --> Alle x Tage/Stunden/Minuten (Retry-Timeout) einstellen.
Hierdurch versucht der Client, alle <Retry-Timeout Intervall> das Command auszufuehren. Wenn er erfolgreich ist, wird das Flag gesetzt und er fliegt aus dem Container, bei Fehlern probiert er es nach X erneut.
Mit freundlichen Grüßen

Niklas Gottschalk (gottschalk@zoller-usa.com)
IT Systems Administrator
Zoller Inc.
Antworten