Seite 1 von 1

Erstellung eines WAPT Cleaner-Pakets

Veröffentlicht: 15. Oktober 2018 - 12:08 Uhr
von renaud.counhaye
Hallo zusammen, :)

ich habe eine WAPT-Servermigration von Maschinen auf Server „A“ (WAPT 1.3) auf Server „X“ (WAPT 1.5, später aktualisiert auf 1.6) durchgeführt.

Das Problem dabei ist, dass die Maschinen, die die Änderung mit waptdeploy vorgenommen haben, ihr Inventar von 1.3 auf 1.5 zurückgesetzt haben. Einige Paketnamen haben sich geändert, andere Pakete sind verschwunden.
Für Client und Konsole ist das Inventar jedoch weiterhin gültig.

Ich bräuchte Hilfe beim Erstellen eines Bereinigungsskripts. Habt ihr vielleicht einen besseren Vorschlag als diesen:

Das Skript führt `wapt-get list` und sucht dann in einer Schleife nach Ausnahmen, die ich zuvor in einer Variablen aufgelistet hätte.
Wenn es das Paket findet, führt es ein einfaches `wapt-get forget xxxxxx` gefolgt von einem `wapt-get install zzzzz` mit dem Ersatzpaket.

Vielleicht habe ich bei waptdeploy einen Schritt zur Bereinigung vor oder nach der Installation übersehen. Oder suchen Sie vielleicht nach einer bereits verfügbaren Softwarelösung für einen ähnlichen Prozess?

Vielen Dank im Voraus :)

(ich werde wahrscheinlich Fortschritte bei dem oben genannten System machen und es Ihnen zur Verfügung stellen, sobald es fertig ist).

Betreff: Erstellung eines WAPT Cleaner-Pakets

Veröffentlicht: 15. Oktober 2018 - 20:12 Uhr
von dcardon
Guten Abend Renaud,
renaud.counhaye schrieb: 15. Okt. 2018 - 12:08 Uhr Ich habe eine WAPT-Servermigration durchgeführt, von Maschinen auf Server „A“ mit WAPT 1.3 auf Server „X“ mit WAPT 1.5 (der anschließend auf 1.6 aktualisiert wurde).

Das Problem bei dieser Migration ist, dass die Maschinen, die die Änderung über waptdeploy erfahren haben, ihr Inventar von 1.3 auf 1.5 zurückgesetzt haben und sich einige Paketnamen geändert haben, während andere Pakete verschwunden sind.
Ihr Inventar ist jedoch für den Client und die Konsole weiterhin gültig.
Aus Sicht des Systems ist es auf dem neuesten Stand: Es sind keine neueren Pakete als das bereits installierte verfügbar. Es ist also nicht falsch, auch wenn es nicht genau Ihren Wünschen entspricht.
renaud.counhaye schrieb: 15. Okt. 2018 - 12:08 Uhr Ich bräuchte Hilfe beim Erstellen eines Reinigungsskripts. Haben Sie vielleicht einen besseren Vorschlag als diesen?
Sind nicht allzu viele Pakete betroffen, geben Sie einfach den Namen des betreffenden Pakets in das Suchfeld ein („Suchbegriff“), z. B. xyz-firefox. Daraufhin werden die Rechner aufgelistet, auf denen das Paket installiert ist. Hinweis: Die Suche berücksichtigt auch Teilzeichenfolgen. Die Suche nach xyz-firefox liefert daher auch Ergebnisse für Rechner mit xyz-firefox-esr.
  • Als Nächstes wählen Sie „Abhängigkeiten von Paketen oder Paketgruppen entfernen“, um die Abhängigkeiten von den betreffenden Paketen zu entfernen;
  • Anschließend können Sie das Paket löschen oder vergessen, indem Sie die betroffenen Maschinen auswählen und in der Paketliste auf der rechten Seite mit der rechten Maustaste klicken und „Pakete vergessen“ auswählen
Aufrichtig,

Denis

Betreff: Erstellung eines WAPT Cleaner-Pakets

Veröffentlicht: 19. Oktober 2018 - 10:59 Uhr
von renaud.counhaye
Hallo Denis,

Leider gibt es eine große Anzahl von Maschinen, die von diesem Phantombestand betroffen sind.
Deshalb suchte ich nach einer Möglichkeit, dies zu automatisieren, da es unmöglich ist, den Bestand einer Maschine nach einer Servermigration einfach zu bereinigen.

Deshalb habe ich diesen sehr einfachen Code entwickelt:
Es ist möglich, ein Paket zu vergessen, das nur dem Client bekannt ist, da es nicht in den der Maschine auf der Konsole zugewiesenen Paketen registriert ist und daher nicht neu installiert werden muss.

Code: Alle auswählen

# -----------------------------------------------------------------------
# This script was made in an effort to manage previous WAPT registred packages.
# Made by Renaud Counhaye for Ymagis.
# -----------------------------------------------------------------------
from setuphelpers import *

list_replaces=["chrome-fr","firefox-esr-fr","adobereader-mui"] #liste de vieux paquet aillant un remplacant
list_replaced=["chrome","firefox","adobereader"] #liste des paquets remaplcants les anciens! attention doit être dans le meme ordre!

#list de paquets à oublier tout simplement.
list_forgets=["check-viscosity","fr-standard-applications","apple-software-update","ie11","fr04-fr-Office365-and-Standard-applications","fr-web-browsers","deploy-ymagis-nxt","trend-micro-security-agent"]

uninstallkey = []

#def main():
def install():
    #check si le fichier précédent existe, si oui, kill
    if(isfile(makepath('C:','sys','logs','waptgetlist.txt'))):
        print('previous file is present')
        remove_file(makepath('C:','sys','logs','waptgetlist.txt'))
    print('start...')
    run('cmd /c wapt-get list > C:\sys\logs\waptgetlist.txt') #creation d'un fichier contenant la lsite des packets actif sur la machine
    if(isfile(makepath('C:','sys','logs','waptgetlist.txt'))):
       print('file is present')
       f=open(makepath('C:','sys','logs','waptgetlist.txt'), "r") 
       if f.mode == 'r':
            f1 = f.readlines() #lecture ligne par ligne du fichier
            for line in f1:
                data = line.split(" ")
                package = data[0]
                if package in list_replaces:
                    print '--in replaces' #si le paquet lu est dans la liste des pack a remplacer, on forget puis wapt.install 
                    point=list_replaces.index(package)
                    if(point != -1):
                        cmd = "cmd /c wapt-get forget "+package+" --force"
                        run(cmd)
                        WAPT.install(list_replaced[point],force=WAPT.options.force)
                else:
                    if package in list_forgets:
                        print '--in forgets' #si le paquet lu est dans la liste des pack a oublier, on forget 
                        point = list_forgets.index(package)
                        if(point != -1):
                            print str(point)+' found forgets'
                            cmd = "cmd /c wapt-get forget "+package+" --force"
                            run(cmd)
                        else:
                            print '++not found'
            print 'end.'

if __name__ == '__main__': #run debug
    install()
PS: Es wäre interessant, ein WAPT-Paket mit einem speziellen Schlüssel zu ermöglichen, um zu erzwingen, dass ein Paket von dem Rechner, auf dem es ausgeführt wird, entfernt wird.

Guten Tag,

Betreff: Erstellung eines WAPT Cleaner-Pakets

Veröffentlicht: 19. Oktober 2018 – 13:57 Uhr
von Sfonteneau
Einfacher:

https://wapt.lesfourmisduweb.org/detail ... 9_all.wapt

Code: Alle auswählen

import platform
from setuphelpers import *

uninstallkey=[]

def install():
    prefixpkg = control.package.split('-',1)[0]
    reader = WAPT.is_installed('%s-pdfcreator'% prefixpkg)
    if reader and Version(reader.version.split('-',1)[0]) == Version('3.2.1'):
        WAPT.forget_packages(reader.package)
        WAPT.install('%s-pdfcreator'% prefixpkg)