Creación de un paquete WAPT Cleaner

Preguntas sobre paquetes WAPT / Solicitudes y ayuda sobre paquetes WAPT.
Reglas del foro
Reglas del foro de la comunidad
* Soporte en inglés en www.reddit.com/r/wapt
* El soporte de la comunidad en francés está disponible en este foro
* Por favor, anteponga [RESUELTO] al título del tema si está resuelto.
* Por favor, no edite un tema que esté etiquetado como [RESUELTO]. Abra un nuevo tema haciendo referencia al anterior.
* Especifique la versión de WAPT instalada, la versión completa y el número de compilación (2.2.1.11957 / 2.2.2.12337 / etc.), así como la edición Enterprise/Discovery.
* Las versiones 1.8.2 y anteriores ya no son compatibles. Las únicas preguntas aceptadas sobre la versión 1.8.2 están relacionadas con la actualización a una versión compatible (2.1, 2.2, etc.).
* Especifique el sistema operativo del servidor (Linux/Windows) y la versión (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019).
* Especifique el sistema operativo de la máquina de administración/creación de paquetes y de la máquina con el agente problemático, si corresponde (Windows 7/10/11/Debian 11/etc.).
* Evite hacer varias preguntas al abrir un tema, ya que podría ser ignorado. Si hay varios temas, ábralos por separado, preferiblemente uno tras otro y no todos a la vez (es decir, no sature el foro con spam).
* Incluya fragmentos de código, capturas de pantalla y otras imágenes directamente en la publicación. Los enlaces a Pastebin, Bitly y otros sitios de terceros serán eliminados sistemáticamente.
* Como en cualquier foro comunitario, el soporte es proporcionado voluntariamente por los miembros. Si necesita soporte comercial, puede comunicarse con el departamento de ventas de Tranquil IT al 02.40.97.57.55.
Bloqueado
renaud.counhaye
Mensajes: 31
Inscripción: 13 de diciembre de 2017 - 11:45

15 de octubre de 2018 - 12:08

Hola a todos, :)

he realizado una migración de servidor WAPT, de máquinas en el servidor "A" (WAPT 1.3) al servidor "X" (WAPT 1.5, que luego se actualizó a 1.6).

El problema con esta migración es que las máquinas que sufrieron el cambio a través de waptdeploy revirtieron su inventario de 1.3 a 1.5, y algunos nombres de paquetes cambiaron, mientras que otros paquetes desaparecieron.
Sin embargo, su inventario sigue siendo válido para el cliente y la consola.

Me gustaría recibir ayuda para crear un script de limpieza. Me pregunto si tienen una sugerencia mejor que esta:

El script ejecuta un `wapt-get list` y luego, usando un bucle, busca excepciones que yo habría listado previamente en una variable.
Si encuentra el paquete, ejecuta un simple `wapt-get forget xxxxxx` seguido de un `wapt-get install zzzzz` con el paquete de reemplazo.

Tal vez omití algún paso en waptdeploy para limpiar la post-instalación o pre-instalación. ¿O tal vez buscas algún paquete ya disponible para un proceso similar?

Gracias de antemano :)

(probablemente avanzaré con el sistema mencionado y lo compartiré contigo una vez que esté terminado).
Renaud Counhaye,
Técnico de Sistemas de Red,
División de Funciones Centrales
, Grupo Ymagis
Imagen
Avatar de usuario
dcardón
Experto en WAPT
Mensajes: 1908
Inscripción: 18 de junio de 2014 - 09:58
Ubicación: Saint Sébastien sur Loire
Contacto :

15 de octubre de 2018 - 20:12

Buenas noches Renaud,
renaud.counhaye escribió: 15 ​​de oct. de 2018 - 12:08 p. m. Realicé una migración de servidor WAPT, de máquinas en el servidor "A" WAPT 1.3 al servidor "X" WAPT 1.5 (que posteriormente se actualizó a 1.6).

El problema con esta migración es que las máquinas que sufrieron el cambio a través de waptdeploy revirtieron su inventario de 1.3 a 1.5, y algunos nombres de paquetes cambiaron, mientras que otros paquetes desaparecieron.
Sin embargo, su inventario sigue siendo válido para el cliente y la consola.
Desde la perspectiva del sistema, está actualizado: no hay paquetes más recientes que el que ya está instalado en la máquina. Así que no es incorrecto, aunque no sea exactamente lo que buscabas.
renaud.counhaye escribió: 15 ​​de octubre de 2018 - 12:08 p. m. Me gustaría recibir ayuda para crear un script de limpieza. Me gustaría saber si tienen alguna sugerencia mejor que esta:
Si no hay muchos paquetes afectados, simplemente escriba el nombre del paquete en cuestión en el cuadro de búsqueda ("palabra clave"), por ejemplo, xyz-firefox, y se listarán las máquinas que lo tienen. Nota: Tenga en cuenta que la búsqueda coincide con subcadenas, por lo que buscar xyz-firefox también mostrará las máquinas que tengan xyz-firefox-esr.
  • A continuación, seleccione "eliminar dependencias de paquetes o grupos de paquetes" para eliminar las dependencias de los paquetes en cuestión;
  • Luego puedes eliminar u olvidar el paquete seleccionando las máquinas en cuestión y, en la lista de paquetes de la derecha, hacer clic derecho y "olvidar paquetes"
Atentamente,

Denis
Denis Cardon - Tranquil IT
¡Comparte tus experiencias en WAPT! Envíanos las URL de tus blogs y artículos en la "Tu opinión del foro y los publicaremos en el de WAPT
renaud.counhaye
Mensajes: 31
Inscripción: 13 de diciembre de 2017 - 11:45

19 de octubre de 2018 - 10:59

Hola Denis,

Desafortunadamente, hay una gran cantidad de máquinas que se ven afectadas por este inventario fantasma.
Por eso estaba buscando una forma de automatizarlo, dada la imposibilidad de limpiar fácilmente el inventario de una máquina después de una migración de servidor.

Así que se me ocurrió este código muy simple:
Es posible olvidar un paquete conocido sólo por el cliente ya que no está registrado en los paquetes asignados a la máquina en la consola, por lo tanto no hay reinstalación.

Código: Seleccionar todo

# -----------------------------------------------------------------------
# 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()
PD: Sería interesante permitir que un paquete WAPT con una clave especial fuerce a que un paquete no se asigne a la máquina en la que se está ejecutando.

Buen día,
Renaud Counhaye,
Técnico de Sistemas de Red,
División de Funciones Centrales
, Grupo Ymagis
Imagen
Avatar de usuario
Sfonteneau
Experto en WAPT
Mensajes: 2312
Registrado: 10 de julio de 2014 - 23:52
Contacto :

19 de octubre de 2018 - 13:57

Más simple:

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

Código: Seleccionar todo

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