Projet

Général

Profil

Tâche #30678

Scénario #30570: Étudier la possibilité de création d'un AmonEcole 2.8.1

Etude de la création d'un AmonEcole avec conteneur

Ajouté par Emmanuel GARETTE il y a plus de 3 ans. Mis à jour il y a plus de 3 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Début:
07/09/2020
Echéance:
% réalisé:

0%

Restant à faire (heures):
0.0

Historique

#1 Mis à jour par Emmanuel GARETTE il y a plus de 3 ans

  • Statut changé de Nouveau à En cours

#2 Mis à jour par Emmanuel GARETTE il y a plus de 3 ans

  • Assigné à mis à Emmanuel GARETTE

étude des paquets concernées

Commun

eole-workstation-manager

Devrait être dans le conteneur du DC :

  • /usr/share/eole/creole/dicos/20_workstation_manager.xml

CONTAINER_EXEC doit est mis à jour pour le mode conteneur (vers DC uniquement) :

  • /usr/share/eole/postservice/30-eole-workstation-manager

Doit créer le fichier de mot de passe dans le conteneur :

  • /usr/share/eole/pretemplate/30-eole-workstation-manager

RAF :

  • /usr/share/eole/creole/distrib/eole-workstation.sls
  • /usr/share/eole/creole/distrib/workstation-manager.conf

eole-scribehorus

Séparer ce qui doit etre fait sur le maitre et dans le conteneur :

  • /usr/share/eole/postservice/06-scribehorus

Exemple doit etre exécuter dans le conteneur :
- la recherche de l'utilisateur admin
- le script addadmin

Installer dans le conteneur :

  • /usr/share/eole/sbin/create_adhome
  • /usr/share/eole/sbin/special_shares.sh
  • /usr/share/eole/sbin/synchro_file.py

RAF

  • /usr/share/eole/creole/dicos/29_scribehorus.xml
  • /usr/share/eole/creole/distrib/01_fichier.ldif
  • /usr/share/eole/creole/distrib/proftpd_scribehorus
  • /usr/share/eole/creole/distrib/smb-include_shares.conf
  • /usr/share/eole/postservice/26-scribehorus
  • /usr/share/eole/posttemplate/01-sid
  • /usr/share/eole/preservice/00-save-sid
  • /usr/share/eole/pretemplate/00-scribehorus

eolead-gpo-script-pkg

Devrait être exécuté dans le conteneur DC :

  • /usr/share/eole/postservice/30-gposcript

Devrait etre dans le conteneur DC :

  • /usr/share/eole/gpo/reg/Machine/EnableLinkedConnections.reg
  • /usr/share/eole/gpo/script/Machine/psscripts.ini
  • /usr/share/eole/gpo/script/Machine/scripts.ini
  • /usr/share/eole/gpo/script/User/ps.ps1
  • /usr/share/eole/gpo/script/User/psscripts.ini
  • /usr/share/eole/gpo/script/User/scripts.ini

eolead-gpo-script

Devrait etre dans le conteneur du DC (attention il faut prendre en compte le mode non conteneur) :

  • /usr/share/eole/creole/dicos/26_eolead_gposcript.xml

Devrait être exécuté dans le conteneur file :

  • /usr/share/eole/postservice/07-eolead-gpo

RAF :

  • /usr/share/eole/creole/dicos/25_gposcript.xml
  • /usr/share/eole/creole/distrib/gposcript.conf

eole-ad-dc

Devrait être dans le conteneur du DC

  • /usr/share/eole/creole/dicos/25_smb_ad.xml
  • /usr/share/eole/creole/dicos/30_samba_backup.xml
  • /usr/share/eole/sbin/JobSynchroSysvol
  • /usr/share/eole/sbin/actualiser_cache
  • /usr/share/eole/sbin/createDnsRecord
  • /usr/share/eole/sbin/create_adhome.sh
  • /usr/share/eole/sbin/getADAdminPassword
  • /usr/share/eole/sbin/getAdminPassword
  • /usr/share/eole/sbin/join-ad
  • /usr/share/eole/sbin/reset_home_acl
  • /usr/share/eole/sbin/samba_backup
  • /usr/share/eole/sbin/validSambaPassword

Devrait etre exécuté dans le conteneur DC

  • /usr/share/eole/postservice/25-manage-samba

Doivent etre adapté au mode conteneur (les règles doivent être dans le conteneur pas sur le maitre)

  • /usr/share/eole/creole/distrib/90-samba_dynamic_rules
  • /usr/share/eole/creole/distrib/apparmor_samba_usr.sbin.clamd
  • /usr/share/eole/creole/distrib/named.apparmor.conf

Devrait s'exécuter en parti dans le conteneur

  • /usr/share/eole/bareos/restore/addc.py

Devrait être dans le conteneur

RAF

  • /usr/share/eole/creole/distrib/avscan-samba.yaml
  • /usr/share/eole/creole/distrib/bareos-samba.conf
  • /usr/share/eole/creole/distrib/krb5.conf
  • /usr/share/eole/creole/distrib/named.conf
  • /usr/share/eole/creole/distrib/named.conf.default-zones
  • /usr/share/eole/creole/distrib/named.conf.dlz
  • /usr/share/eole/creole/distrib/named.conf.local
  • /usr/share/eole/creole/distrib/named.conf.options
  • /usr/share/eole/creole/distrib/nsswitch.conf
  • /usr/share/eole/creole/distrib/recycle.conf
  • /usr/share/eole/creole/distrib/samba-backup.cron
  • /usr/share/eole/creole/distrib/samba.logrotate
  • /usr/share/eole/creole/distrib/samba4-vars.conf
  • /usr/share/eole/creole/distrib/samba_backup.conf
  • /usr/share/eole/creole/distrib/smb-ad.conf
  • /usr/share/eole/postservice/24-test-synchro-with-time-reference
  • /usr/share/eole/postservice/26-partages
  • /usr/share/eole/pretemplate/01-quota
  • /usr/share/eole/posttemplate/02-partages
  • /usr/share/eole/posttemplate/01-bind-apparmor

seth-education

eole-seth-education

Devrait être en partie dans le conteneur annuaire et en partie sur le maitre :

  • /usr/share/eole/creole/dicos/80_ldapconf.xml

A exécuter dans le conteneur DC :

  • /usr/share/eole/postservice/26-ad_schema

A ne pas exécuter en mode conteneur :

  • /usr/share/eole/pretemplate/08-seth_scribe_compat

Il faut découper le paquet en 2 et installer ces fichiers dans le conteneur.

  • /usr/sbin/smbldap-groupadd
  • /usr/sbin/smbldap-groupdel
  • /usr/sbin/smbldap-groupmod
  • /usr/sbin/smbldap-passwd
  • /usr/sbin/smbldap-useradd
  • /usr/sbin/smbldap-userdel

RAF :

  • /usr/share/eole/creole/dicos/80_proftpd.xml
  • /usr/share/eole/creole/distrib/00_seth.ldif
  • /usr/share/eole/creole/distrib/01_seth_index.ldif
  • /usr/share/eole/creole/distrib/02_scribe.ldif
  • /usr/share/eole/creole/distrib/actions_scribe.cfg
  • /usr/share/eole/creole/distrib/ldapconf.conf
  • /usr/share/eole/creole/distrib/proftpd_ad
  • /usr/share/eole/creole/distrib/veyon-config.json
  • /usr/share/eole/postservice/27-scribe

eole-ad

eole-ad

Faire un paquet a part pour le conteneur fichier :

  • /etc/systemd/system/winbind.service.d/wait_for_smb.conf
  • /lib/systemd/system/eole-lsc.service
  • /lib/systemd/system/eole-wait-addc.service
  • /usr/sbin/eolelsc
  • /usr/sbin/lsc-keygen
  • /usr/sbin/waitsmb

Support du mode conteneur :

  • /usr/share/eole/annuaire/password_files/eolead.ini
  • /usr/share/eole/creole/dicos/26_eolead.xml
  • /usr/share/eole/diagnose/151-fichier-ad
  • /usr/share/eole/postservice/05-eolead-join-and-sync-ldap
  • /usr/share/eole/schedule/scripts/eolead

RAF

  • /usr/sbin/changepasswordeole.pl
  • /usr/sbin/get_list_etablissement.py
  • /usr/share/eole/creole/distrib/ad-resolv.conf
  • /usr/share/eole/creole/distrib/eole-lsc.default
  • /usr/share/eole/creole/distrib/global_smb_ad.tmpl
  • /usr/share/eole/creole/distrib/krb5.conf
  • /usr/share/eole/creole/distrib/lsc.default
  • /usr/share/eole/creole/distrib/lsc.xml
  • /usr/share/eole/creole/extra/schedule/01_eolead.xml

#3 Mis à jour par Emmanuel GARETTE il y a plus de 3 ans

Les conteneurs

Conteneur 2.6 seth-education eole-ad
master (x) creoled, upsd, bareos, eole-sso, ead, nginx, ntp
reseau
/home/applications/ocsinventory
/home/mail
mail (courier, spamd, sympa, exim)
web (apache)
jabber (ejabberdctl)
partage (x)
/home
dhcp (dhcpd)
fichier (samba, cupsd, controlvnc, proftpd)
dhcp (dhcpd)
fichier (samba, cupsd, proftpd)
internet (x) proxy (cntlm, squid, e2guardian, samba)
dns (bind)
proxy (cntlm, squid, e2guardian, samba)
X
bdd mysql (mysqld)
annuaire (slapd)
mysql (mysqld)
X
mysql (mysqld)
annuaire (slapd, lsc, saslauthd)
controleur (x)
/home
X dc (samba, sysvol, salt)

(x) : adresse IP sur le réseau local

#4 Mis à jour par Emmanuel GARETTE il y a plus de 3 ans

Le mode conteneur

Avantages

Solution éprouvée

  • système pléblicité par les utilisateurs
  • pas de dysfonctionnement majeur remonté depuis la 1er mise à disposition

Moins de ressource

  • moins de consommation de CPU/RAM (conteneurs | VM + conteneur)
  • moins de consommation d'espace disque
  • moins d'espace disque utilisé sur le support de sauvegarde
  • ne nécessite que 2 cartes réseaux

Moins de processus

  • la couche LXC est intégré au noyau | processus pour gérer les VM
  • un creoled | un eoleflask | EAD | ...
  • pas de redondance de bind

Configuration simplifié

  • complexité de l'infrastructure géré par EOLE et non l'utilisateur
  • un seul système à gérer | un seul gen_config
  • peut facilement changer la configuration (IP, ...) (installation dans un laboratoire, mise en place en établissement)
  • pas de redirection des flux (DNS du Scribe, reverse proxy, ...)
  • simplication du DNS :
    1. dans le cas d'un Amon/Scribe il faut :
           docs            .         ecole       .         mamairie.fr
             ^                         ^                       ^
             |                         |                       |
      Gérer par le scribe      gérer par l'amon       gérer par la mairie
      
    2. dans le cas d'AmonEcole il faut :
            ecole             .         mamairie.fr
              ^                             ^
              |                             |
      Gérer par l'amonecole       gérer par la mairie
      
  • il faut que "scribe.docs.ecole.mamaire.fr" résolve toujours sur l'Amon (duplication de l'information) pour gérer le démarrage synchrone de l'Amon et du Scribe
  • gestion de la sauvegarde simplifier (disque USB, gestion des flux réseaux/firewall, pas besoin de recopier les fichiers des 3 directeurs en 1, ...)
  • un seule EAD

Reprise sur incidents

  • redémarrage des service en cas d'arrêt brutal
  • pas de disque en état "Unknown"
  • restauration du serveur unique et simplifié

Avantage de la solution seth-education

Architecture qui ressemble à l'architecture Scribe cible et plus simple :

  • une seule base de référence
  • suppression de la synchronisation des annuaires/mot de passe (moins de service à gérer : slapd, lsc et saslauthd)
  • pas de 5ème conteneur

Inconvénient

Nécessite des eole- compatible mode conteneur.

#5 Mis à jour par Emmanuel GARETTE il y a plus de 3 ans

Choses à faire

Mode conteneur

Le mode conteneur a été abandonnée à partir de la 2.7.0.
Il faut vérifier :

  • la génération des conteneurs (déjà mis en place dans le cadre de Scribe)
  • le portage de la partie conteneur en python3 : vérifier le fonctionnement

La conteneurisation des paquets eole-

Certains projets n'ont pas été créé dans l'optique du mode conteneur. Il faut les adapter (voir l'étude complète plus haut).

Commun aux deux solutions

  • adapter la partie fichier eole-ad-dc doit s'installer dans le conteneur fichier en tant que membre
  • installer les différents outils liés dans le conteneur (salt, GPO, ...)

Avec la solution seth-education

Pouvoir installer eole-ad-dc en tant que DC et membre dans les conteneurs.

D'après ce que j'ai constaté cela ne concerne que 5 fichiers :

  • fichiers avec contenu identique (/etc/logrotate.d/samba, /etc/nsswitch.conf), il faut utiliser les mécanismes EOLE de copie de fichiers identiques dans plusieurs conteneurs
  • fichiers différents (/etc/samba/smb.conf, /etc/eole/samba4-vars.conf, /etc/krb5.conf), il suffit de faire un nouveau fichier dans lequel on force ad_server_role et ad_server_netbios_name.

Il faut lancer ensuite le script /usr/share/eole/postservice/25-manage-samba dans le conteneur "dc" puis dans le conteneur "fichier".

Avec la solution eole-ad

Il faut pouvoir installer eole-ad et eole-ad-dc sur la même machine :

  • problème de dépendances
  • conflit dans le nom de template krb5.conf

Il faut faire la correspondance des variables scribe et eole-ad-dc :

  • smb_netbios_name <=> ad_server_netbios_name
  • ad_server_netbios_name <=> ad_server

Il va falloir corriger le conflit entre les variables "ad_domain" qui ne represente pas la meme chose :

  • eole-ad-dc : correspond au workgroup (smb_workgroup sur eole-ad
  • eole-ad : correspond au realm (ad_realm sur eole-ad-dc)

Proposer le module amonecole.

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

  • Statut changé de En cours à Fermé
  • Restant à faire (heures) mis à 0.0

Formats disponibles : Atom PDF