Página 1 de 1

Archivo .pem perdido y varios otros problemas

Publicado: 5 de mayo de 2015 - 10:03
por Alan
Buen día,

Instalé WAPT en mis 700 máquinas y todo funcionó hasta que se perdió mi archivo .pem (falló el disco duro y olvidé hacer una copia de seguridad) :? ).

Entonces, mi primera idea fue reinstalar una estación de trabajo con la consola, generar un nuevo par de claves y, por lo tanto, un nuevo agente que implementaría para reemplazar al antiguo.

Pero, como resultado, en mi consola todavía veo todos los clientes antiguos que no puedo controlar ni eliminar.

Cuando formateé una estación de trabajo e intenté reinstalar manualmente el cliente a través de waptdeploy, esto es lo que obtuve:
Imagen

Y al instalar manualmente el agente, no aparece en la consola (sigue siendo el antiguo cliente del mismo nombre con la última actualización de abril).
Un comando wapt-get register devuelve:

Código: Seleccionar todo

2015-05-05 10:14:50,631 CRITICAL Unable to delete param uuid
FATAL ERROR : OperationalError: attempt to write a readonly database
Y entonces en la consola siempre me aparece el mensaje: HTTP/1.1 404 NO ENCONTRADO cuando intento realizar una intervención en un cliente.

Admito que ahora estoy completamente perdido y no tengo idea de cómo salir de esto... ¿Se puede salvar?

Gracias de antemano.

Mis versiones:
Versión del servidor WAPT: 1.2.3
Versión del agente WAPT: 1.1.1
Versión de configuración de WAPT: 1.1.1
Versión de implementación de WAPT: 1.2.3.0

Re: Archivo .pem perdido y varios problemas

Publicado: 6 de mayo de 2015 - 18:10
por htouvet
1 - Respecto al problema de la versión de waptdeploy: Aparentemente, waptsetup.exe y waptagent.exe están en la versión 1.1.
Si es un servidor Linux, instale el paquete tis-waptsetup desde la consola.
En la máquina de administración, verifique también que esté en la versión 1.2.3 como el servidor. Si no, instale la versión 1.2.3 desde http://wapt.tranquil.it/wapt/waptsetup.exe.

Desde la consola, vuelva a compilar el agente Wapt para que el servidor tenga una versión de Waptagent 1.2.3 con la clave pública correcta.
Waptdeploy debería funcionar entonces.

2- Deberá volver a firmar todos los paquetes y todas las configuraciones de la máquina cliente (que también son paquetes).

Para volver a firmar un paquete (después de haber configurado correctamente su wapt-get.ini con la nueva clave privada),
para cada paquete:
`wapt-get edit packagename` y
`wapt-get -i build-upload c:\waptdev\wapt-packagename`.

Para volver a configurar las máquinas:
abre la máquina en la consola y guarda la configuración.

Existe un método más limpio mediante un script de Python... (ver https://github.com/tranquilit/WAPT/blob ... l_hosts.py )

Re: Archivo .pem perdido y varios problemas

Publicado: 7 de mayo de 2015 - 10:16 a. m.
por Alan
Gracias por la información.

Efectivamente, descargué la versión 1.2.3 de waptsetup desde su sitio web.

Sin embargo, no entendí bien cómo volver a firmar las estaciones de trabajo. ¿Cómo guardo la configuración?

Y, por último, si elimino "la máquina y su paquete de configuración" desde la consola, ¿esta acción es permanente o la máquina volverá a aparecer la próxima vez que me comunique?

Gracias de antemano.

Re: Archivo .pem perdido y varios problemas

Publicado: 7 de mayo de 2015 - 12:23
por htouvet
Para resignar paquetes de la máquina, un pequeño script como bonus... que también muestra cómo scriptear con un cliente wapt. ;)

en la máquina de administración (con la clave de firma privada private_key ingresada en c:\apt\apt-get.ini)
Crea el archivo Python:
c:\wapt\resign.py

Código: Seleccionar todo

#!/usr/bin/python
# -*- coding: utf-8 -*-

import os
import tempfile
import shutil
from setuphelpers import *
from common import *

class TempDir():
    def __init__(self):
        self.path = None

    def __enter__(self):
        self.path = tempfile.mkdtemp()
        return self.path

    def __exit__(self, exc, value, tb):
        if os.path.isdir(self.path):
            shutil.rmtree(self.path)

wapt = Wapt()

# un object qui represente le depot des paquets machine
hosts = WaptRepo('hosts',wapt.repositories[0].repo_url+'-host')
hosts.load_packages()

# mot de passe du serveur wapt pour uploader les paquets
password = 'xxxx'

for p in hosts.packages:
    with TempDir() as tmpdir:
        try:
            print('resignature de %s dans %s'%(p.package,tmpdir))
            if p.section == 'host':
                res = wapt.edit_host(p.package,use_local_sources=False,target_directory=tmpdir)
            else:
                res = wapt.edit_package(p.package,use_local_sources=False,target_directory=tmpdir)
            wapt.build_upload(res['source_dir'],
                wapt_server_user='admin',
                wapt_server_passwd=password,
                inc_package_release=True)
        except Exception as e:
            print('Erreur pour %s: %s'%(p.package,e))

Para lanzar con:
c:\wapt\waptpython c:\wapt\resign.py

Re: Archivo .pem perdido y varios problemas

Publicado: 7 de mayo de 2015 - 15:00
por htouvet
Si "elimina la máquina", esto elimina la máquina del inventario, pero si la máquina aún existe físicamente con wapt apuntando al servidor, se volverá a registrar en la siguiente comunicación. Y si existe un paquete con su nombre y aún no lo ha instalado, instalará el paquete de la máquina en la siguiente actualización.

Si elimina "la máquina y su paquete de configuración", además de eliminar la información del inventario, esto también elimina su paquete (almacenado en el repositorio http://mywaptserver.mydomain/wapt-h ... maine.wapt ).

De hecho, hay dos cosas distintas:
- la información de estado de inventario/implementación, que el agente wapt en la máquina cliente transmite al servidor al final de cada actualización (upgrade). Esto solo se hace si hay una línea "wapt_server=" presente en wapt-get.ini.
- El paquete de la máquina: que el agente wapt en la máquina cliente recupera del repositorio (usa el nombre del paquete como su FQDN) con cada actualización para saber qué instalar. Esto solo se realiza si se especifica "use_hostpackages=1" en wapt-get.ini.