Erstellung eines WAPT Cleaner-Pakets

Fragen zu WAPT-Paketen / Anfragen und Hilfe bezüglich WAPT-Paketen.
Forumregeln
Community-Forumregeln
* Englischer Support auf www.reddit.com/r/wapt
* Französischer Community-Support ist in diesem Forum verfügbar.
* Bitte kennzeichnen Sie gelöste Themen mit [GELÖST].
* Bitte bearbeiten Sie keine Themen, die mit [GELÖST] markiert sind. Erstellen Sie stattdessen ein neues Thema und verweisen Sie auf das alte.
* Geben Sie die installierte WAPT-Version, die vollständige Versionsnummer und die Build-Nummer (2.2.1.11957 / 2.2.2.12337 / usw.) sowie die Enterprise-/Discovery-Edition an.
* Versionen 1.8.2 und älter werden nicht mehr unterstützt. Fragen zu Version 1.8.2 werden nur beantwortet, wenn sie sich auf ein Upgrade auf eine unterstützte Version (2.1, 2.2 usw.) beziehen.
* Geben Sie das Server-Betriebssystem (Linux/Windows) und die Version (Debian Buster/Bullseye – CentOS 7 – Windows Server 2012/2016/2019) an.
* Geben Sie gegebenenfalls das Betriebssystem des Administrations-/Paketerstellungsrechners und des Rechners mit dem problematischen Agenten an (Windows 7/10/11/Debian 11/etc.).
* Vermeiden Sie es, mehrere Fragen in einem Thema zu stellen, da diese sonst möglicherweise ignoriert werden. Falls mehrere Themen relevant sind, erstellen Sie bitte separate Themen, vorzugsweise nacheinander und nicht gleichzeitig (d. h. vermeiden Sie Spam im Forum).
* Fügen Sie Code-Snippets, Screenshots und andere Bilder direkt in Ihren Beitrag ein. Links zu Pastebin, Bitly und anderen Drittanbieterseiten werden systematisch entfernt.
* Wie in jedem Community-Forum erfolgt die Unterstützung freiwillig durch die Mitglieder. Für kommerziellen Support kontaktieren Sie bitte den Vertrieb von Tranquil IT unter +44 2 40 97 57 55.
Gesperrt
renaud.counhaye
Nachrichten: 31
Anmeldung: 13. Dezember 2017 - 11:45 Uhr

15. Oktober 2018 - 12:08 Uhr

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).
Renaud Counhaye,
Netzwerktechniker,
Abteilung Zentralfunktionen
, Ymagis-Gruppe
Bild
Benutzeravatar
dcardon
WAPT-Experte
Nachrichten: 1955
Anmeldung: 18. Juni 2014 - 09:58 Uhr
Ort: Saint Sébastien sur Loire
Kontakt:

15. Oktober 2018 – 20:12 Uhr

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
Denis Cardon – Tranquil IT
Teilen Sie Ihre Erfahrungen auf WAPT! Senden Sie uns Ihre Blog- und Artikel-URLs im „Ihre Meinung des Forums, und wir werden sie auf der WAPT-
renaud.counhaye
Nachrichten: 31
Anmeldung: 13. Dezember 2017 - 11:45 Uhr

19. Oktober 2018 - 10:59 Uhr

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,
Renaud Counhaye,
Netzwerktechniker,
Abteilung Zentralfunktionen
, Ymagis-Gruppe
Bild
Benutzeravatar
Sfonteneau
WAPT-Experte
Nachrichten: 2322
Registriert: 10. Juli 2014 - 23:52 Uhr
Kontakt:

19. Oktober 2018 – 13:57 Uhr

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)
Gesperrt