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
Règles du forum communautaire
* English support on www.reddit.com/r/wapt
* Le support communautaire en français se fait sur ce forum
* Merci de préfixer le titre du topic par [RESOLU] s'il est résolu.
* Merci de ne pas modifier un topic qui est taggé [RESOLU]. Ouvrez un nouveau topic en référençant l'ancien
* Préciser version de WAPT installée, version complète ET numéro de build (2.2.1.11957 / 2.2.2.12337 / etc.) AINSI QUE l'édition Enterprise / Discovery
* Les versions 1.8.2 et antérieures ne sont plus maintenues. Les seules questions acceptées vis à vis de la version 1.8.2 sont liés à la mise à jour vers une version supportée (2.1, 2.2, etc.)
* Préciser OS du serveur (Linux / Windows) et version (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019)
* Préciser OS de la machine d'administration/création des paquets et de la machine avec l'agent qui pose problème le cas échéant (Windows 7 / 10 / 11 / Debian 11 / etc.)
* Eviter de poser plusieurs questions lors de l'ouverture de topic, sinon il risque d'être ignorer. Si plusieurs sujet, ouvrir plusieurs topic, et de préférence les uns après les autres et pas tous en même temps (ie ne pas spammer le forum).
* Inclure directement les morceaux de code, les captures d'écran et autres images directement dans le post. Les liens vers les pastebin, les bitly et autres sites tierces seront systématiquement supprimés.
* Comme tout forum communautaire, le support est fait bénévolement par les membres. Si vous avez besoin d'un support commercial, vous pouvez contacter le service commercial Tranquil IT au 02.40.97.57.55
jlabadie
Messages : 3
Inscription : 20 juil. 2018 - 15:56

20 juil. 2018 - 16:26

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
Dernière modification par jlabadie le 23 juil. 2018 - 08:22, modifié 1 fois.
Avatar de l’utilisateur
htouvet
Expert WAPT
Messages : 402
Inscription : 16 mars 2015 - 10:48
Contact :

20 juil. 2018 - 16:52

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')

Tranquil IT
jlabadie
Messages : 3
Inscription : 20 juil. 2018 - 15:56

23 juil. 2018 - 09:09

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 ?
Avatar de l’utilisateur
htouvet
Expert WAPT
Messages : 402
Inscription : 16 mars 2015 - 10:48
Contact :

23 juil. 2018 - 15:48

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)
Tranquil IT
jlabadie
Messages : 3
Inscription : 20 juil. 2018 - 15:56

24 juil. 2018 - 10:21

Ok, merci je vais continuer mes tests
Verrouillé