Page 1 sur 1

.pem perdue et divers soucis

Publié : 05 mai 2015 - 10:03
par Alan
Bonjour,

j'ai effectué une installation de WAPT pour mes 700 machines et tout fonctionnait jusqu'à ce que mon .pem soit perdu (crash de mon disque dur et oublie d'une sauvegarde :? ).

Du coup, ma première idée était de réinstaller un poste avec la console, de générer une nouvelle paire de clés et donc un nouvel agent que je déploierai pour remplacer l'ancien.

Mais, du coup dans ma console, je vois toujours tous les anciens clients que je ne peux absolument pas contrôler ni supprimer.

En formatant un poste et en voulant réinstaller manuellement le client via waptdeploy voilà ce que j'ai :
Image

Et en installant manuellement l'agent, il n’apparaît pas dans la console (toujours l'ancien client du même nom avec la dernière update d'avril).
Un wapt-get register donne :

Code : Tout sélectionner

2015-05-05 10:14:50,631 CRITICAL Unable to delete param uuid
FATAL ERROR : OperationalError: attempt to write a readonly database
Et du coup sur la console j'ai toujours le message : HTTP/1.1 404 NOT FOUND quand j'essaye de faire une intervention sur un client.

J'avoue que du coup je suis complètement perdu et je vois pas du tout comment m'en sortir...Est ce rattrapable?

Merci d'avance.

Mes versions :
Version WAPT Server : 1.2.3
Version WAPT Agent : 1.1.1
version WAPT Setup : 1.1.1
Version WAPT Deploy : 1.2.3.0

Re: .pem perdue et divers soucis

Publié : 06 mai 2015 - 18:10
par htouvet
1 - Pour le problème de version de waptdeploy. Apparemment le waptsetup.exe et waptagent.exe sont à une version 1.1.
Si c'est un serveur linux, installer le paquet tis-waptsetup depuis la console.
Sur le poste d'administration, vérifier également que vous êtes en 1.2.3 comme le serveur. Sinon, installer la 1.2.3 depuis http://wapt.tranquil.it/wapt/waptsetup.exe

Depuis la console, recompiler l'agent wapt, pour que sur le serveur vous ayez un waptagent en version 1.2.3 avec la bonne clé publique dedans.
Le waptdeploy devrait alors pouvoir fonctionner.

2- Vous allez devoir resigner tous les paquets et toutes les configurations de postes clients (qui sont aussi des paquets)

pour resigner un paquet (en ayant pris soin de bien configurer votre wapt-get.ini avec la nouvelle clé privée)
Pour chaque paquet :
wapt-get edit nomdupaquet
wapt-get -i build-upload c:\waptdev\nomdupaquet-wapt

pour resigner les postes :
ouvrir dans la console le poste et sauvegarder la configuration du poste.

il y aurait une méthode plus propre, avec un script python... (voir https://github.com/tranquilit/WAPT/blob ... l_hosts.py )

Re: .pem perdue et divers soucis

Publié : 07 mai 2015 - 10:16
par Alan
Merci pour le retour,

j'ai effectivement dû prendre la version waptsetup 1.2.3 sur votre site.

Pour resigner les postes par contre je n'ai pas trop compris. Comment le sauvegarder?

Et enfin, si depuis la console je supprime "la machine et son paquet de configuration", cette initiative est permanente ou la machine reviendra à la prochaine communication?

Merci d'avance.

Re: .pem perdue et divers soucis

Publié : 07 mai 2015 - 12:23
par htouvet
Pour resigner les paquets machines, un petit script en goodies.... qui montre au passage comment scripter avec un client wapt. ;)

sur la machine de management (avec clé de signature privée private_key renseigné dans c:\apt\apt-get.ini)
créer le fichier python :
c:\wapt\resign.py

Code : Tout sélectionner

#!/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))

à lancer avec :
c:\wapt\waptpython c:\wapt\resign.py

Re: .pem perdue et divers soucis

Publié : 07 mai 2015 - 15:00
par htouvet
Si on "supprime la machine", cela enlève la machine de l'inventaire, mais si la machine existe toujours physiquement avec wapt qui pointe sur le serveur, elle se re enregistrera à la prochaine communication. Et si un paquet existe à son nom, et qu'elle ne l'a pas encore installé, elle installera le paquet machine au prochain upgrade.

Si on supprime "la machine et son paquet de configuration", en plus de supprimer l'information d'inventaire, cela supprime en plus son paquet (stocké dans le dépôt http://monserveurwapt.mondomaine/wapt-h ... maine.wapt ) .

Il y a bien 2 choses distinctes:
- l'inventaire / information sur le status de déploiement, que l'agent wapt du poste cleint transmet au serveur à la fin de chaque mise à jour (upgrade). Ceci n'est effectué que si une ligne "wapt_server=" est présente dans wapt-get.ini.
- le paquet machine : que l'agent wapt sur le poste client récupère depuis le dépôt (il prend le paquet nommé comme son FQDN) à chaque mise à jour pour savoir ce qu'il a à installer. Ceci n'est effectué que si "use_hostpackages=1" est renseigné dans wapt-get.ini