Page 1 sur 1

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

Publié : 20 juil. 2018 - 16:26
par jlabadie
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

Re: Redémarrage service après avoir déployer une configuration

Publié : 20 juil. 2018 - 16:52
par htouvet
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é...


Code : Tout sélectionner

import requests
...

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


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

Publié : 23 juil. 2018 - 09:09
par jlabadie
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 ?

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

Publié : 23 juil. 2018 - 15:48
par htouvet
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)

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

Publié : 24 juil. 2018 - 10:21
par jlabadie
Ok, merci je vais continuer mes tests