Contactez nous

Redémarrage service après avoir déployé une configuration

Questions about WAPT Packaging / Requêtes et aides autour des paquets Wapt.
Règles du forum

* Questions can be asked in English or in French. If the thread is started in English, stick to English, if it is started in French, stick to French.
* Vous pouvez poser vos questions en Français ou en Anglais. Si un sujet est commencé en français, merci de répondre en français. Si un sujet est commencé en anglais, merci de répondre en anglais.
* Please prefix of the title of the thread to [SOLVED] if it is solved.
* Merci de préfixer le titre du thread par [RESOLU] si il est résolu.

Bonjour,

Pour commencer voici quelques informations concernant l'infrastructure :

- Version de WAPT installée : 1.5
- OS du serveur Linux Debian 9 Stretch
- OS de la machine d'administration/création des paquets : W7
- Un serveur WAPT externaliser et 2 repo locaux supplémentaires sur chacun des sites


Mon problème :

Je déploie actuellement ma configuration wapt-get.ini à l'aide d'un paquet

Code : Tout sélectionner

# -*- coding: utf-8 -*-
from setuphelpers import *

uninstallkey = []

def install():

    print('Modify max_gpo_script_wait')
    inifile_writestring(WAPT.config_filename,'global','max_gpo_script_wait',180)

    print('Modify Preshutdowntimeout')
    inifile_writestring(WAPT.config_filename,'global','pre_shutdown_timeout',180)

    print('Disable Hyberboot')
    inifile_writestring(WAPT.config_filename,'global','hiberboot_enabled',0)

    print('Disable Notify User')
    inifile_writestring(WAPT.config_filename,'global','notify_user',0)

    print('Verify cert')
    inifile_writestring(WAPT.config_filename,'global','verify_cert',0)

    print('Modify public_certs_dir')
    inifile_writestring(WAPT.config_filename,'global','public_certs_dir','C:\Program Files (x86)\wapt\ssl')

    print('Modify repo_url')
    inifile_writestring(WAPT.config_filename,'global','repo_url','https://repolocal1/wapt')

    print('Create repositories')
    inifile_writestring(WAPT.config_filename,'global','repositories','repo-externe')

    print('Frequence update')
    inifile_writestring(WAPT.config_filename,'global','waptupdate_task_period',300)

    print('Timeout server')
    inifile_writestring(WAPT.config_filename,'global','wapt_server_timeout',300)

    print('Interdire annulation MAJ')
    inifile_writestring(WAPT.config_filename,'global','allow_cancel_upgrade',1)

    print('Enable repositories')
    inifile_writestring(WAPT.config_filename,'repo-externe','repo_url','https://repoexterne/wapt')

    print('Verify cert secondaire')
    inifile_writestring(WAPT.config_filename,'repo-externe','verify_cert',0)
Ceci fonctionne quand j'ajoute le paquet sur une machine et me permet de modifier le repo principal afin de récupérer les futurs paquets sur le repo local.

Cependant, après tests, je me suis aperçu que le service devait être redémarré sinon la récupération des autres paquets se fait sur le repo du serveur externaliser donc en HTTP.
La commande suivante me permet de le vérifier :

Code : Tout sélectionner

wapt-get show "paquet"



J'ai tenté de rajouter dans mon paquet ce petit code :

Code : Tout sélectionner

def service_restart(WAPTService):
    logger.debug(u'Restarting service %s' % WAPTService)
    win32serviceutil.RestartService(WAPTService)
    win32api.Sleep(2000)
    return win32serviceutil.WaitForServiceStatus(WAPTService, win32service.SERVICE_RUNNING, waitSecs=4)


J'ai l'impression que mon service est relancé mais je ne récupère toujours pas les paquets sur le repo local.

Si je vais un redémarrage du service à la main le problème est résolu mais je ne peux pas me permettre de passer sur chacune des 200 machines.


Désolé du post un peu long mais j'ai essayé de résumer au mieux la situation.

Merci d'avance et bon weekend
Vous pouvez demander au service de planifier un restart (dans le futur)
Redémarrer le service alors qu'un paquet en cours d'installation n'est pas conseillé...

import requests

Code : Tout sélectionner

def install():
    ....
    requests.get('http://127.0.0.1:8088/waptservicerestart.json')

Bonjour,

En incluant la partie de votre script en effet le service est redémarré mais il faut attendre un certain temps pour que le retour de la commande suivante soit correct au niveau de repo :

Code : Tout sélectionner

 wapt-get show "paquet" 
Ceci dit c'est normal mais n'y a t'il pas une bonne façon de faire lorsque l'on crée un paquet de modification du wapt-get.ini ?
peut être qq chose comme :
mais certains paramètres ne seront pas mis en place (hiberboot_enabled, max_gpo_script_wait pre_shutdown_timeout) car ils le sont au démarrage du service.

def install():
....
WAPT.load_config()
WAPT.update(force=True)
Ok, merci je vais continuer mes tests