Modificar el archivo de control del paquete de la máquina

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.
Respuesta
Carla Scardigli
Mensajes: 6
Inscripción: 30 de abril de 2024 - 08:22

30 de abril de 2024 - 08:42

Buen día,

Me gustaría poder modificar el archivo "control" del paquete de la máquina dentro de un paquete WAPT.
Por ahora puedo mostrarlo.
Aquí está el código que lo muestra:

Código: Seleccionar todo

def install():

    w = common.Wapt()
    package  = PackageEntry(w.host_uuid)
    # Récupère les fichiers control de tous les paquets présent sur la machine
    package_version = package.get("package_uuid")
    l = w.list()
    # Parcours ces fichiers
    for elt in l:
    # Si le nom du paquet est celui du paquet machine on l'affiche
        if elt["package"] == w.host_uuid:
            print(elt)
       
Este código muestra todo el contenido del archivo "control" en el paquete de la máquina.

Probé esto:

Código: Seleccionar todo

elt["depends"] = None
Este código muestra el archivo "control" con la sección "depende" vacía, pero este cambio no se guarda.

Tampoco pude encontrar dónde está almacenado este archivo en la máquina.

¿Tienes alguna idea de cómo hacerlo?
Avatar de usuario
Sfonteneau
Experto en WAPT
Mensajes: 2312
Registrado: 10 de julio de 2014 - 23:52
Contacto :

30 de abril de 2024 - 11:01

Hola,

no entiendo qué intentas hacer.

Parece que quieres modificar un paquete de máquina en WAPT.install.

Sin embargo, la máquina que instalará el paquete no tiene la clave privada necesaria para firmarlo (afortunadamente), ni tampoco tiene permisos para subir paquetes (afortunadamente).

En mi opinión, probablemente podamos sugerirte alguna solución, pero necesitarías explicarnos el contexto exacto y el propósito de lo que quieres hacer.
Carla Scardigli
Mensajes: 6
Inscripción: 30 de abril de 2024 - 08:22

3 de mayo de 2024 - 12:05

Buen día,

Esta solicitud está relacionada con la siguiente solicitud: viewtopic.php?t=3833

Nos gustaría que cuando un paquete haya pasado exitosamente por la máquina (Estado OK) un código elimina la dependencia del paquete de la máquina.
El script que realizaría esta eliminación podría agregarse a la auditoría (Por ejemplo)
Porque gestionamos una cantidad bastante grande de paquetes y no es necesario tener docenas de paquetes dependientes.

Nuestra idea era entonces eliminar este paquete (su nombre) del "depende"del archivo"control" del paquete de la máquina (nombre del paquete = uuid)

Tenemos esto en el archivo de control del paquete de la máquina:

Código: Seleccionar todo

depends           : un_paquet
Después de ejecutar el código, nos gustaría tener esto:

Código: Seleccionar todo

depends           :
(parte "depende" vacío)

Como se explicó anteriormente, tenemos un código que nos permitemostrar este archivo "control"pero no podemos cambiarlo.".

¿Cómo podemos hacerlo?

¿Tienes alguna otra idea para eliminar esta dependencia?
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 :

3 de mayo de 2024 - 15:33

Hola Carla,

el paquete de la máquina debe estar firmado, por lo que se requiere una clave de firma para modificar el archivo de control del paquete. La máquina no tiene una clave, por lo que no puede modificar el archivo de control porque no se puede firmar (ni cargar), y por lo tanto, el paquete modificado será inútil.

La modificación del paquete de la máquina se puede realizar desde la consola de administración (que tiene una clave de firma) o con un script automatizado en el servidor, preferiblemente usando una clave que no sea de firma de código.

Dicho esto, ¿podrías aclarar tus necesidades? Que el paquete permanezca asignado a la máquina permite actualizaciones automáticas de la aplicación o su reinstalación si se eliminó accidentalmente. ¿Deseas eliminar todas las dependencias de un paquete de máquina o solo un paquete que no debería permanecer allí?

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
Carla Scardigli
Mensajes: 6
Inscripción: 30 de abril de 2024 - 08:22

6 de mayo de 2024 - 08:13

Hola,

la desinstalación accidental es prácticamente imposible en nuestros procesos.
Necesitamos poder eliminar todas las dependencias del paquete `machine`. Cuando limpiamos nuestro repositorio, los paquetes que dependen del paquete `machine` devuelven un error.

Gracias por ayudarnos a encontrar una solución.

Atentamente,
Respuesta