Projet

Général

Profil

Tâche #35862

Scénario #35851: EOLE 2.10 : Les actions de base EAD3 doivent être fonctionnelles

Étude

Ajouté par Benjamin Bohard il y a presque 2 ans. Mis à jour il y a plus d'un an.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Début:
01/10/2022
Echéance:
% réalisé:

100%

Restant à faire (heures):
0.0

ead3-services.avif (17,3 ko) Daniel Dehennin, 08/07/2024 14:20

ead3-salt-services.log Voir (890 ko) Daniel Dehennin, 09/07/2024 14:33

ead3-services.png Voir (122 ko) Daniel Dehennin, 09/07/2024 16:49

ead3-maj-report.png Voir (207 ko) Daniel Dehennin, 09/07/2024 16:50

Historique

#1 Mis à jour par Benjamin Bohard il y a presque 2 ans

  • Statut changé de Nouveau à En cours

#2 Mis à jour par Benjamin Bohard il y a presque 2 ans

Dans le courant de l’exécution, le code répond :

'ead' __virtual__ returned False: No module named 'creole'
'ead' __virtual__ returned False: No module named 'lxml'
'ead' __virtual__ returned False: No module named 'lxml.etree'

lxml et lxml.etree posent deux problèmes :
- on ne fournit pas les paquets ;
- lxml.etree est compilé pour python 3.12 et 3.11 (salt utilise python 3.10)

#3 Mis à jour par Daniel Dehennin il y a plus d'un an

Je pense avoir une option, où je pourrais trouver les logs dont tu parles ?

'ead' __virtual__ returned False: No module named 'creole'
'ead' __virtual__ returned False: No module named 'lxml'
'ead' __virtual__ returned False: No module named 'lxml.etree'

#4 Mis à jour par Benjamin Bohard il y a plus d'un an

Les erreurs d’import sont visibles dans les messages de debug de salt-minion (démarré avec l’option -l debug plutôt qu’avec le service).
Par exemple, en tentant d’afficher l’action services>Liste des services

[DEBUG   ] Could not LazyLoad ead.manageservices_get_services: 'ead' __virtual__ returned False: No module named 'creole.loader'

#5 Mis à jour par Benjamin Bohard il y a plus d'un an

Pour préciser, l’erreur d’import de lxml n’apparaît qu’une fois l’import de creole résolu (dans mon test, simple copie du répertoire).

#6 Mis à jour par Daniel Dehennin il y a plus d'un an

Je pense donc que mon correctif #35863 dois résoudre le problème non ?

#7 Mis à jour par Benjamin Bohard il y a plus d'un an

La méthode que tu as mise en œuvre permet bien de répondre au problème d’installation dans le répertoire de salt.
Il faut prévoir d’ajouter d’autres bibliothèques, malheureusement au fur et à mesure.

Avec le paquet installé, les bibliothèques manquantes suivantes sont :
- tiramisu ;
- IPy ;
- pyeole ;
- pyroute2 ;
- tiramisu_web.

Je ne parviens toujours pas à afficher le tableau comme dans ta capture d’écran mais ça ne semble plus lié à ces erreurs d’import de modules.

#8 Mis à jour par Daniel Dehennin il y a plus d'un an

Oui, j’avais reset mon infra et donc je voyais l’EAD3 du module amon ¯\_(ツ)_/¯

#9 Mis à jour par Daniel Dehennin il y a plus d'un an

J’ai sorti les logs des services EAD3 avec :

$ for d in master.d minion.d; do echo 'log_level: debug' > /etc/ead3/salt/${d}/log-level.conf; done
$ systemctl restart salt-master-ead3.service salt-minion-ead3.service salt-api-ead3.service apache2.service
$ journalctl -u salt-master-ead3.service -u salt-minion-ead3.service -u salt-api-ead3.service --since "2024-07-09 14:10:39" > ead3-salt-services.log

Il semble que la partie salt fonctionne, en tout cas je vois la sortie de ead.manageservices_get_services

juil. 09 14:17:47 scribe salt-minion-ead3[7935]: [DEBUG   ] minion return: {'success': True, 'return': [{'name': 'Tous', 'container': 'root', 'nonstop': True, 'warning': True}, {'name': 'systemd-timesyncd', 'container': 'root', 'nonstop': False, 'warning': False}, {'name': 'slapd', 'container': 'bdd', 'nonstop': False, 'warning': False}, {'name': 'isc-dhcp-server', 'container': 'partage', 'nonstop': False, 'warning': False}, {'name': 'smbd', 'container': 'partage', 'nonstop': False, 'warning': False}, {'name': 'nut-server', 'container': 'root', 'nonstop': False, 'warning': False}, {'name': 'nut-monitor', 'container': 'root', 'nonstop': False, 'warning': False}, {'name': 'salt-api-ead3', 'container': 'root', 'nonstop': False, 'warning': False}, {'name': 'salt-master-ead3', 'container': 'root', 'nonstop': False, 'warning': False}, {'name': 'salt-minion-ead3', 'container': 'root', 'nonstop': False, 'warning': False}, {'name': 'apache2', 'container': 'reseau', 'nonstop': False, 'warning': False}, {'name': 'eole-workstation-manager', 'container': 'addc', 'nonstop': False, 'warning': False}, {'name': 'eole-sso', 'container': 'root', 'nonstop': True, 'warning': False}, {'name': 'ead-server', 'container': 'root', 'nonstop': False, 'warning': False}, {'name': 'ead-web', 'container': 'root', 'nonstop': True, 'warning': False}, {'name': 'mysql', 'container': 'bdd', 'nonstop': False, 'warning': False}, {'name': 'postgresql@16-main', 'container': 'postgresql', 'nonstop': False, 'warning': False}, {'name': 'spamd', 'container': 'reseau', 'nonstop': False, 'warning': False}, {'name': 'bareos-director', 'container': 'root', 'nonstop': False, 'warning': False}, {'name': 'bareos-filedaemon', 'container': 'root', 'nonstop': False, 'warning': False}, {'name': 'bareos-storage', 'container': 'root', 'nonstop': False, 'warning': False}, {'name': 'courier-imap', 'container': 'reseau', 'nonstop': False, 'warning': False}, {'name': 'courier-imap-ssl', 'container': 'reseau', 'nonstop': False, 'warning': False}, {'name': 'courier-authdaemon', 'container': 'reseau', 'nonstop': False, 'warning': False}, {'name': 'cups', 'container': 'partage', 'nonstop': False, 'warning': False}, {'name': 'cups-browsed', 'container': 'partage', 'nonstop': False, 'warning': False}, {'name': 'saslauthd', 'container': 'root', 'nonstop': False, 'warning': False}, {'name': 'proftpd', 'container': 'partage', 'nonstop': False, 'warning': False}, {'name': 'controle-vnc', 'container': 'partage', 'nonstop': False, 'warning': False}, {'name': 'exim4', 'container': 'reseau', 'nonstop': False, 'warning': False}, {'name': 'eoleflask', 'container': 'root', 'nonstop': False, 'warning': False}, {'name': 'nginx', 'container': 'root', 'nonstop': False, 'warning': False}, {'name': 'eoleapps', 'container': 'reseau', 'nonstop': False, 'warning': False}, {'name': 'websockify', 'container': 'partage', 'nonstop': False, 'warning': False}, {'name': 'bastion', 'container': 'root', 'nonstop': True, 'warning': False}, {'name': 'z_stats', 'container': 'root', 'nonstop': False, 'warning': False}], 'retcode': 0, 'jid': '20240709121747313164', 'fun': 'ead.manageservices_get_services', 'fun_args': [], 'user': 'eole'}

En revanche, je suis plus inquiet de l’erreur en début

juil. 09 14:15:15 scribe salt-master-ead3[1883]: [ERROR   ] Future exception was never retrieved
juil. 09 14:15:15 scribe salt-master-ead3[1883]: future: <Future finished exception=ImportError("cannot import name 'wait' from partially initialized module 'multiprocessing.connection' (most likely due to a circular import) (/opt/saltstack/salt/lib/python3.10/multiprocessing/connection.py)")>

#10 Mis à jour par Daniel Dehennin il y a plus d'un an

En tout cas, je peux téléverser un fichier XML dans la partie Fichiers.

#11 Mis à jour par Daniel Dehennin il y a plus d'un an

J’ai trouvé le soucis je pense.

J’ai mis à niveau manuellement rest_eole depuis le code de rest_tornado et j’ai la liste des services.

Pour les problèmes de await, j’ai trouvé un bug upstream

#12 Mis à jour par Daniel Dehennin il y a plus d'un an

La dernière mise à jour du paquet eole-ead3-saltstack fait que cela fonctionne \o/

#13 Mis à jour par Daniel Dehennin il y a plus d'un an

Il restera à mettre la dépendance eole-salt-dependencies où c’est nécessaire :

apt rdepends salt-master
salt-master
Reverse Depends:
  Dépend: salt-syndic (= 3007.1)
  Dépend: eole-ead3-saltstack (>= 3004.1)
  Dépend: salt-api
  Dépend: eole-workstation-manager-salt (>= 3004.1)
  Dépend: eole-saltstack

#14 Mis à jour par Benjamin Bohard il y a plus d'un an

  • Statut changé de En cours à À valider

#15 Mis à jour par Ludwig Seys il y a plus d'un an

  • Statut changé de À valider à Résolu

#16 Mis à jour par Joël Cuissinat il y a plus d'un an

  • Statut changé de Résolu à Fermé
  • % réalisé changé de 0 à 100
  • Restant à faire (heures) mis à 0.0

Formats disponibles : Atom PDF