Projet

Général

Profil

Scénario #29624

Erreur reconfigure sur Seth + eole-gpo-script

Ajouté par samuel morin il y a environ 4 ans. Mis à jour il y a presque 4 ans.

Statut:
Terminé (Sprint)
Priorité:
Normal
Catégorie:
-
Début:
22/09/2016
Echéance:
22/05/2020
% réalisé:

100%

Points de scénarios:
1.0
Restant à faire (heures):
0.00 heure
Estimation basée sur la vélocité:
Release:
Liens avec la release:
Auto

Description

sur un seth en version 2.7.1 (à jour en utilisant la procédure Maj-release),
j'ai systématiquement une erreur lors du reconfigure :

Samba/Seth reconfigure
* Active Directory est initialisé, reload la configuration
* Mise à jour du backend DNS
Reading domain information
DNS accounts already exist
No zone file /var/lib/samba/bind-dns/dns/BUREAUTIQUE.IN.AC-DIJON.FR.zone
DNS records will be automatically created
DNS partitions already exist
dns-smb-dc1 account already exists
See /var/lib/samba/bind-dns/named.conf for an example configuration include file for BIND
and /var/lib/samba/bind-dns/named.txt for further documentation required for secure DNS updates
Finished upgrading DNS
Samba/Seth reconfigure end
run-parts: executing /usr/share/eole/postservice/26-actions reconfigure
run-parts: executing /usr/share/eole/postservice/26-partages reconfigure
run-parts: executing /usr/share/eole/postservice/30-gposcript reconfigure
run-parts: /usr/share/eole/postservice/30-gposcript exited with return code 1
Erreur : postservice

Le problème provient du/des paquet(s) eole-gpo-*
en les désinstallant, plus d'erreurs.
si je les ré-installe, l'erreur se produit de nouveau.


Sous-tâches

Tâche #17213: erreur lors de l'exécution de la commande 'samba-tool ntacl sysvolcheck'Fermé

Tâche #29948: Porter la modification en 2.7.2Fermé

Tâche #29949: Ajouter un test gpo-tool dans Jenkins Fermé

Tâche #29950: Backporter en 2.7.1Fermé

Tâche #29975: Conserver les Liens des GPO lors d'une mise à jour Fermé


Demandes liées

Lié à Distribution EOLE - Demande #24772: eole-gpo-script : traceback à la suppression du GPO si elle est "tenue" par quelqu'un Terminé (Sprint)
Lié à Distribution EOLE - Scénario #29493: Passer nos outils "GPO" en python3 sur EOLE 2.8.0 Terminé (Sprint) 02/03/2020 20/03/2020
Lié à Distribution EOLE - Tâche #29016: Permettre la mise à jour du GPO en cas de changement. Fermé 23/09/2019
Lié à EOLE AD DC - Tâche #28799: Exécuter le script 30-gposcript sur le maître dans le cas d’un module sans conteneur addc Nouveau 01/08/2019
Lié à Distribution EOLE - Scénario #29747: L’utilisation de kerberos doit dispenser de saisir un mot de passe sur Eole 2.8.0 Terminé (Sprint)
Lié à Distribution EOLE - Tâche #31114: Depuis 2.7.1, les GPO registres sont appliquées partiellement (EnableLinkedConnections) Fermé 01/12/2015

Révisions associées

Révision f018eeb5 (diff)
Ajouté par gilles.grandgerard il y a presque 4 ans

Import du code Gpo_Script (importation/reg_to_xml)
Import du code GPO de la version 4.11
Utilisation des fonctions samba pour les Credentials

REF #29624

Révision 06ba9282 (diff)
Ajouté par gilles.grandgerard il y a presque 4 ans

Utilisation de 'gpo-tool importation' sur Seth

REF #29624

Révision c50ef56e (diff)
Ajouté par Joël Cuissinat il y a presque 4 ans

Quick fix for ScribeAD (no CreoleGet in addc container)

Ref: #29624

Révision 55a06ecd (diff)
Ajouté par gilles.grandgerard il y a presque 4 ans

Utilisation du Mdp et fallback kerberos sinon.

REF #29624

Révision cd5a620c (diff)
Ajouté par gilles.grandgerard il y a presque 4 ans

mise en commentaire de debug(s) car pas util en prod

REF #29624

Révision cfee0cda (diff)
Ajouté par gilles.grandgerard il y a presque 4 ans

trop de debug

REF #29624

Historique

#1 Mis à jour par Joël Cuissinat il y a environ 4 ans

  • Tâche parente mis à #29652

#2 Mis à jour par Joël Cuissinat il y a environ 4 ans

Pourrais-tu nous donner la sortie de la commande en mode "debug" :

bash -x /usr/share/eole/postservice/30-gposcript

#3 Mis à jour par Joël Cuissinat il y a environ 4 ans

  • Description mis à jour (diff)
  • Assigné à mis à Joël Cuissinat

#4 Mis à jour par samuel morin il y a environ 4 ans

voilà le résultat après ré-installation des paquets :

root@smb-dc1:~# bash -x /usr/share/eole/postservice/30-gposcript+ set -e
+ . /etc/eole/gposcript.conf
++ GPOSCRIPT=0
+ . /etc/eole/samba4-vars.conf
++ AD_REALM=bureautique.in.ac-dijon.fr
++ AD_DOMAIN=bureautique
++ AD_HOST_NAME=smb-dc1
++ AD_HOST_IP=172.30.96.30
++ NOM_CARTE_NIC1=ens160
++ AD_SERVER_ROLE='controleur de domaine'
++ BASEDN=DC=bureautique,DC=in,DC=ac-dijon,DC=fr
++ NTP_SERVERS=ntp.ac-dijon.fr
++ AD_ADDITIONAL_DC_IP='172.30.96.32 '
++ AD_DOMAIN_SID=
++ AD_ADDITIONAL_DC=non
++ AD_DNS_BACKEND=BIND9_DLZ
++ AD_ADMIN=Administrator
++ AD_ADMIN_PASSWORD_FILE=/var/lib/samba/.eole-ad-dc
++ AD_HOST_KEYTAB_FILE=/var/lib/samba/eole-ad-dc.keytab
++ ACTIVER_AD_HOMES_SHARE=non
++ ACTIVER_AD_PROFILES_SHARE=non
++ AD_HOMES_SHARE_HOST_NAME=smb-filer1
++ AD_PROFILES_SHARE_HOST_NAME=smb-filer1
++ AD_HOME_SHARE_PATH=/home/adhomes
++ AD_PROFILE_SHARE_PATH=/home/adprofiles
++ AD_INSTANCE_LOCK_FILE=/var/lib/samba/.instance_ok
++ AD_BACKEND_STORE=tdb
++ AD_PLAINTEXT_SECRETS=non
+ KEYFILE=/tmp/gpoinit.keytab
+ '[' -f /tmp/gpoinit.keytab ']'
+ GPONAME=eole_script
++ cut -d ' ' -f2
++ grep '^cn: {'
++ ldbsearch -H /var/lib/samba/private/sam.ldb '(&(objectClass=groupPolicyContainer)(displayname=eole_script))' cn
+ GPOID='{89573784-A827-40D7-B367-3FCD0E39B1B3}'
++ tr a-z A-Z
++ echo bureautique.in.ac-dijon.fr
+ USER=Administrator@BUREAUTIQUE.IN.AC-DIJON.FR
+ SCRIPTS_DIR=/home/sysvol/bureautique.in.ac-dijon.fr/scripts
+ GPOSCRIPT_DATA_DIR=/var/tmp/gpo-script
+ HASH=/var/tmp/gpo-script/eole_script_hash
+ FLAG=/var/tmp/gpo-script/update_eole_script
+ '[' 0 -eq 0 ']'
+ makedirs
+ '[' -d /home/sysvol/bureautique.in.ac-dijon.fr/scripts ']'
+ for dir in users groups machines os
+ '[' -d /home/sysvol/bureautique.in.ac-dijon.fr/scripts/users ']'
+ for dir in users groups machines os
+ '[' -d /home/sysvol/bureautique.in.ac-dijon.fr/scripts/groups ']'
+ for dir in users groups machines os
+ '[' -d /home/sysvol/bureautique.in.ac-dijon.fr/scripts/machines ']'
+ for dir in users groups machines os
+ '[' -d /home/sysvol/bureautique.in.ac-dijon.fr/scripts/os ']'
+ gpo_already_exists
+ kinituser
+ samba-tool domain exportkeytab /tmp/gpoinit.keytab --principal=Administrator@BUREAUTIQUE.IN.AC-DIJON.FR
+ kinit Administrator@BUREAUTIQUE.IN.AC-DIJON.FR -k -t /tmp/gpoinit.keytab
++ grep -q 'display name : eole_script'
++ samba-tool gpo listall -k 1
+ kdestroyuser
+ kdestroy
+ rm -f /tmp/gpoinit.keytab
+ return 0
+ delete_flag
+ '[' -e /var/tmp/gpo-script/update_eole_script ']'
+ rm -f /var/tmp/gpo-script/update_eole_script
+ return 0
+ echo 'Remise à zéro du GPO EOLE "eole_script"'
Remise à zéro du GPO EOLE "eole_script" 
+ delete_gpo eole_script
+ '[' -z '{89573784-A827-40D7-B367-3FCD0E39B1B3}' ']'
+ echo 'Suppression du GPO EOLE "eole_script"'
Suppression du GPO EOLE "eole_script" 
+ kinituser
+ samba-tool domain exportkeytab /tmp/gpoinit.keytab --principal=Administrator@BUREAUTIQUE.IN.AC-DIJON.FR
+ kinit Administrator@BUREAUTIQUE.IN.AC-DIJON.FR -k -t /tmp/gpoinit.keytab
+ gpo_name=eole_script
+ samba-tool gpo del '{89573784-A827-40D7-B367-3FCD0E39B1B3}' -k 1
GPO {89573784-A827-40D7-B367-3FCD0E39B1B3} is linked to containers
    Removed link from DC=bureautique,DC=in,DC=ac-dijon,DC=fr.
GPO {89573784-A827-40D7-B367-3FCD0E39B1B3} deleted.
+ kdestroyuser
+ kdestroy
+ rm -f /tmp/gpoinit.keytab
+ create_gpo eole_script
+ echo 'Enregistrement du GPO EOLE "eole_script"'
Enregistrement du GPO EOLE "eole_script" 
+ kinituser
+ samba-tool domain exportkeytab /tmp/gpoinit.keytab --principal=Administrator@BUREAUTIQUE.IN.AC-DIJON.FR
+ kinit Administrator@BUREAUTIQUE.IN.AC-DIJON.FR -k -t /tmp/gpoinit.keytab
++ samba-tool gpo create eole_script -k 1
ERROR: A GPO already existing with name 'eole_script'
+ msg=

#5 Mis à jour par Joël Cuissinat il y a environ 4 ans

  • Statut changé de Nouveau à En cours

#6 Mis à jour par Joël Cuissinat il y a environ 4 ans

Pas de plantage sur une maquette
  • aca.dc1-2.7.0-instance-default
  • apt-eole install eole-gpo-script
  • reconfigure
  • time Maj-Release #real 5m34,946s
  • reconfigure
    run-parts: executing /usr/share/eole/postservice/30-gposcript reconfigure
    Remise à zéro du GPO EOLE "eole_script" 
    Suppression du GPO EOLE "eole_script" 
    GPO {1D6CCE4C-93F6-43B4-B08E-9F201F125BE9} is linked to containers
        Removed link from DC=domseth,DC=ac-test,DC=fr.
    GPO {1D6CCE4C-93F6-43B4-B08E-9F201F125BE9} deleted.
    Enregistrement du GPO EOLE "eole_script" 
    run-parts: executing /usr/share/eole/postservice/99-check-console-setup reconfigure
    

Il faudrait essayer de nettoyer le GPO et ses fichiers à la main ?

#7 Mis à jour par Joël Cuissinat il y a environ 4 ans

  • Sujet changé de erreur reconfigure à Erreur reconfigure sur Seth + eole-gpo-script
  • Statut changé de En cours à Nouveau
  • Assigné à Joël Cuissinat supprimé
  • Tâche parente changé de #29652 à #29749

#8 Mis à jour par Gilles Grandgérard il y a environ 4 ans

Humm..

set -e

deleteflag sans test avec un return 1 

ça va bugger fort

#9 Mis à jour par Gilles Grandgérard il y a presque 4 ans

sur aca.dc1 + dc2 + file <== important

sur aca.dc1 :
- instance avec import
- apt-eole install eole-gpo-script
- reconfigure
...

run-parts: executing /usr/share/eole/postservice/30-gposcript reconfigure
Remise à zéro du GPO EOLE "eole_script" 
Suppression du GPO EOLE "eole_script" 
GPO {0F107615-D117-411F-9AA2-F9FB975E2664} is linked to containers
    Removed link from DC=domseth,DC=ac-test,DC=fr.
GPO {0F107615-D117-411F-9AA2-F9FB975E2664} deleted.
Enregistrement du GPO EOLE "eole_script" 
ERROR: GPO '{61627293-3D27-4F26-B9CE-2FC27EA9D1DC}' does not exist
run-parts: /usr/share/eole/postservice/30-gposcript exited with return code 255
Erreur : postservice

#10 Mis à jour par Gilles Grandgérard il y a presque 4 ans

Origine du problème :

- Le code initial de gpo-script a été mis en œuvre sur un module Scribe (donc en mono serveur AD)
- Le problème n’apparaît que dans les infra avec plusieurs DC

- Le script 'importation.py' crée une GPO 'eole_scripts' puis la mets à jours plusieurs fois (jusqu'à 7 fois !). Le problème vient de la "non" réplication instantané du Sysvol.
Le script doit s’exécuter sur le DC1 uniquement.
Mais, ce n'est pas suffisant, car nous avons un 'cluster' de DC, donc chaque commande 'samba-tool' passe d'un DC à l'autre (DC1 --> DC2 --> .. --> DC1 ).
Or, entre 2 commandes le dossier 'sysvol' n'est pas forcément mis à jour... d’où, l'erreur de type 'deltree' sur un répertoire de GPO inconnu !

- La solution est donc de s’assurer que la commande 'importation.py' se fasse dans un mode 'transactionnelle'. toutes les commandes sont faites dans un même context.

Solution :
- récupération du code 'restauration' de GPO de samba 4.11. Cela permet de comprendre comment la copie doit se faire ....
- portage du compte 30-gposcript dans un fichier python 'importation.py'
- Ajout des sous fonctions a Gpo-Tool comme suit :

Usage: gpo-tool <subcommand>

Eole Samba Administration Tool.

Options:
  -h, --help       show this help message and exit

Version Options:
    -V, --version  Display version number

Available Subcommands:
  gpo411       - Group Policy Object (GPO) Management (Samba 4.11).
  importation  - Group Policy Object (GPO) EOLE Scripts.
  policy       - Group Policy Object (GPO) Management.

For more help on a specific subcommand, please type: gpo-tool <subcommand> (-h|--help)

- Import du code Gpo_Script (importation/reg_to_xml)
- Utilisation des fonctions samba pour les Credentials

#11 Mis à jour par Gilles Grandgérard il y a presque 4 ans

  • Statut changé de Nouveau à Résolu

#12 Mis à jour par Gilles Grandgérard il y a presque 4 ans

  • Lié à Demande #24772: eole-gpo-script : traceback à la suppression du GPO si elle est "tenue" par quelqu'un ajouté

#13 Mis à jour par Gilles Grandgérard il y a presque 4 ans

  • Lié à Scénario #29493: Passer nos outils "GPO" en python3 sur EOLE 2.8.0 ajouté

#14 Mis à jour par Gilles Grandgérard il y a presque 4 ans

  • Lié à Tâche #29016: Permettre la mise à jour du GPO en cas de changement. ajouté

#15 Mis à jour par Gilles Grandgérard il y a presque 4 ans

  • Lié à Tâche #28799: Exécuter le script 30-gposcript sur le maître dans le cas d’un module sans conteneur addc ajouté

#16 Mis à jour par Gilles Grandgérard il y a presque 4 ans

  • Lié à Scénario #29747: L’utilisation de kerberos doit dispenser de saisir un mot de passe sur Eole 2.8.0 ajouté

#17 Mis à jour par Joël Cuissinat il y a presque 4 ans

  • Tâche parente #29749 supprimé

#18 Mis à jour par Joël Cuissinat il y a presque 4 ans

  • Tracker changé de Tâche à Scénario
  • Echéance mis à 10/04/2020
  • Assigné à mis à Gilles Grandgérard
  • Release mis à EOLE 2.7.1.3
  • Points de scénarios mis à 1.0

#19 Mis à jour par Joël Cuissinat il y a presque 4 ans

  • Version cible changé de sprint 2020 13-15 Equipe MENSR à sprint 2020 16-18 Equipe MENSR

#20 Mis à jour par Gilles Grandgérard il y a presque 4 ans

  • Version cible changé de sprint 2020 16-18 Equipe MENSR à sprint 2020 19-21 Equipe MENSR

#21 Mis à jour par Gilles Grandgérard il y a presque 4 ans

  • Statut changé de Résolu à Terminé (Sprint)

#22 Mis à jour par Gilles Grandgérard il y a plus de 3 ans

  • Lié à Tâche #31114: Depuis 2.7.1, les GPO registres sont appliquées partiellement (EnableLinkedConnections) ajouté

Formats disponibles : Atom PDF