Pagina 1 di 1

Creazione di un pacchetto WAPT Cleaner

Pubblicato: 15 ottobre 2018 - 12:08
di renaud.counhaye
Ciao a tutti, :)

ho eseguito una migrazione del server WAPT, dalle macchine sul server "A" (WAPT 1.3) al server "X" (WAPT 1.5, successivamente aggiornato alla versione 1.6).

Il problema di questa migrazione è che le macchine che hanno subito la modifica tramite waptdeploy hanno ripristinato il loro inventario dalla versione 1.3 alla 1.5, e alcuni nomi di pacchetti sono cambiati, mentre altri sono scomparsi.
Tuttavia, il loro inventario rimane valido per il client e la console.

Vorrei un aiuto per creare uno script di pulizia. Mi chiedo se abbiate un suggerimento migliore di questo:

lo script esegue un `wapt-get list` e poi, tramite un ciclo, cerca le eccezioni che avrei elencato in precedenza in una variabile.
Se trova il pacchetto, esegue un semplice `wapt-get forget xxxxxx` seguito da un `wapt-get install zzzzz` con il pacchetto sostitutivo.

Forse ho saltato un passaggio in waptdeploy per la pulizia post- o pre-installazione. Oppure forse stai cercando un pacchetto già pronto per un processo simile?

Grazie in anticipo :)

(probabilmente farò progressi sul sistema menzionato sopra e lo condividerò con te una volta terminato).

Re: Creazione di un pacchetto WAPT Cleaner

Pubblicato: 15 ottobre 2018 - 20:12
di dcardon
Buonasera Renaud,
renaud.counhaye ha scritto: 15 ​​ott 2018 - 12:08 Ho eseguito una migrazione del server WAPT, dalle macchine sul server "A" WAPT 1.3 al server "X" WAPT 1.5 (che è stato successivamente aggiornato alla versione 1.6).

Il problema con questa migrazione è che le macchine che hanno subito la modifica tramite waptdeploy hanno ripristinato il loro inventario dalla versione 1.3 alla 1.5 e alcuni nomi di pacchetti sono cambiati, mentre altri pacchetti sono scomparsi.
Tuttavia, il loro inventario rimane valido agli occhi del client e della console.
Dal punto di vista del sistema, è aggiornato: non ci sono pacchetti più recenti di quello già installato sulla macchina. Quindi non è sbagliato, anche se non è esattamente quello che volevi.
renaud.counhaye ha scritto: 15 ​​ott 2018 - 12:08 Vorrei un aiuto per creare uno script di pulizia. Vorrei sapere se avete qualcosa di meglio da suggerire rispetto a questo:
Se non sono interessati troppi pacchetti, è sufficiente digitare il nome del pacchetto in questione nella casella di ricerca ("parola chiave di ricerca"), ad esempio xyz-firefox, e verranno elencati i computer che hanno il pacchetto. Nota: tieni presente che la ricerca corrisponde alle sottostringhe, quindi cercando xyz-firefox verranno restituiti anche i computer che hanno xyz-firefox-esr.
  • Successivamente seleziona "rimuovi dipendenze da pacchetti o gruppi di pacchetti" per rimuovere le dipendenze dai pacchetti in questione;
  • Quindi puoi eliminare o dimenticare il pacchetto selezionando le macchine interessate e, nell'elenco dei pacchetti sulla destra, facendo clic con il pulsante destro del mouse e selezionando "dimentica pacchetti"
Sinceramente,

Denis

Re: Creazione di un pacchetto WAPT Cleaner

Pubblicato: 19 ottobre 2018 - 10:59
di renaud.counhaye
Ciao Denis,

Sfortunatamente, sono numerose le macchine interessate da questo inventario fantasma.
Ecco perché cercavo un modo per automatizzarlo, data l'impossibilità di pulire facilmente l'inventario di una macchina dopo una migrazione del server.

Quindi ho ideato questo codice molto semplice:
È possibile dimenticare un pacchetto noto solo al client poiché non è registrato nei pacchetti assegnati alla macchina sulla console, quindi non è necessaria alcuna reinstallazione.

Codice: Seleziona tutto

# -----------------------------------------------------------------------
# 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: Sarebbe interessante consentire a un pacchetto WAPT con una chiave speciale di forzare la rimozione di un pacchetto dalla macchina su cui è in esecuzione.

Buona giornata,

Re: Creazione di un pacchetto WAPT Cleaner

Pubblicato: 19 ottobre 2018 - 13:57
di sfontenau
Più semplice:

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

Codice: Seleziona tutto

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)