Seite 1 von 1

Neustart des Dienstes nach der Bereitstellung einer Konfiguration

Veröffentlicht: 20. Juli 2018 – 16:26 Uhr
von jlabadie
Guten Morgen,

Zunächst einige Informationen zur Infrastruktur:

- Installierte WAPT-Version: 1.5
- Server-Betriebssystem: Linux Debian 9 Stretch
- Betriebssystem des Administrations-/Paketerstellungsrechners: Windows 7
- Ein externer WAPT-Server und zwei zusätzliche lokale Repositories an jedem Standort


Mein Problem:

Ich stelle derzeit meine wapt-get.ini-Konfiguration mithilfe eines Pakets bereit

Code: Alle auswählen

# -*- 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)
Dies funktioniert, wenn ich das Paket auf einem Rechner hinzufüge und ermöglicht es mir, das Haupt-Repository so zu modifizieren, dass zukünftige Pakete aus dem lokalen Repository abgerufen werden.

Nach einigen Tests stellte ich jedoch fest, dass der Dienst neu gestartet werden musste, da andernfalls der Abruf anderer Pakete über das Repository des externen Servers und somit über HTTP erfolgte.
Mit folgendem Befehl kann ich dies überprüfen:

Code: Alle auswählen

wapt-get show "paquet"



Ich habe versucht, dieses kleine Codefragment zu meinem Paket hinzuzufügen:

Code: Alle auswählen

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)


Ich habe den Eindruck, dass mein Dienst neu gestartet wurde, aber ich kann die Pakete aus dem lokalen Repository immer noch nicht abrufen.

Wenn ich den Dienst manuell neu starte, ist das Problem behoben, aber ich kann es mir nicht leisten, jede der 200 Maschinen einzeln aufzusuchen.


Tut mir leid für den etwas langen Beitrag, aber ich habe versucht, die Situation so gut wie möglich zusammenzufassen.

Vielen Dank im Voraus und ein schönes Wochenende!

Betreff: Neustart des Dienstes nach der Bereitstellung einer Konfiguration

Veröffentlicht: 20. Juli 2018 – 16:52 Uhr
von htouvet
Sie können den Dienst bitten, einen Neustart (in der Zukunft) zu planen
Es wird nicht empfohlen, den Dienst während der Installation eines Pakets neu zu starten...


Code: Alle auswählen

import requests
...

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


Betreff: Neustart des Dienstes nach der Bereitstellung einer Konfiguration

Veröffentlicht: 23. Juli 2018 - 09:09 Uhr
von jlabadie
Guten Morgen,

Durch das Einfügen dieses Teils Ihres Skripts wird der Dienst zwar neu gestartet, Sie müssen jedoch eine Weile warten, bis der folgende Befehl die korrekte Ausgabe aus dem Repository zurückgibt:

Code: Alle auswählen

 wapt-get show "paquet" 
Das ist zwar normal, aber gäbe es nicht eine bessere Methode, dies beim Erstellen eines Pakets zu tun, das die Datei wapt-get.ini verändert?

Betreff: Neustart des Dienstes nach der Bereitstellung einer Konfiguration

Veröffentlicht: 23. Juli 2018 - 15:48 Uhr
von htouvet
Es könnte etwa so aussehen:
Einige Parameter (hiberboot_enabled, max_gpo_script_wait, pre_shutdown_timeout) werden jedoch nicht gesetzt, da sie beim Start des Dienstes festgelegt werden.

`def install():
....
WAPT.load_config()
WAPT.update(force=True)`

Betreff: Neustart des Dienstes nach der Bereitstellung einer Konfiguration

Veröffentlicht: 24. Juli 2018 - 10:21 Uhr
von jlabadie
Okay, danke, ich werde meine Tests fortsetzen