Projet

Général

Profil

Scénario #30575

Intégrer la jonction des postes GNU/Linux à un Active Directory

Ajouté par Gilles Grandgérard il y a plus de 3 ans. Mis à jour il y a plus de 3 ans.

Statut:
Terminé (Sprint)
Priorité:
Normal
Assigné à:
-
Catégorie:
-
Début:
25/09/2020
Echéance:
16/10/2020
% réalisé:

100%

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

Description

Propositions

  1. Faire une contribution sur le dépôt de la DANE de Lyon afin d’inclure la jonction à un domaine Active Directory.
  2. Faire évoluer notre formula SaltStack afin d’intégrer la jonction des postes GNU/Linux
    1. Vérifier l’installation de la bonne version du minion sur le client GNU/Linux (Ubuntu Focal n’a pas de paquet salt-minion disponible)
    2. Conditionner la jonction à un rôle ad/member afin de permettre aux utilisateurs d’avoir des stations avec un minion mais non jointe au domaine
    3. Étendre le SLS eole-workstation.ad.join afin de gérer les postes GNU/Linux
  3. Faire évoluer notre formula SaltStack afin d’intégrer le montage des répertoires réseaux sur les postes GNU/Linux
  4. Faire évoluer notre formula SaltStack afin d’installer et configurer Veyon sur les postes GNU/Linux
    1. Conditionner l’installation de la partie cliente à un rôle veyon/client
    2. Conditionner l’installation de la partie maître (master) à un rôle veyon/master
  5. S’assurer que les postes déjà joints au domaine pour les versions antérieures se voient attribuer les rôles ad/member, veyon/master et veyon/client (cela peut se faire depuis le scribe pour tous les postes windows salt -G 'os_family:Windows' grains.append roles '["ad/member", "veyon/master", "veyon/client"]')

Critères d’acceptation

  1. Un pull request est proposé sur le dépôt Git de la DANE de Lyon
  2. Non régression: sur un poste Windows, l’exécution de l’outil installMinion.exe et l’acceptation de la clef du minion sur le serveur intègre le poste au domaine et installe Veyon (avec la partie maître)
  3. Sur un poste GNU/Linux, l’installation de salt-minion, l’ajout des rôles ad/member, veyon/master et veyon/client et l’acceptation de la clef du minion sur le serveur intègre le poste au domaine et installe Veyon (avec la partie maître)
  4. Sur un poste GNU/Linux intégré au domaine, les répertoires réseaux sont accessibles aux utilisateurs connectés
  5. Sur un poste Windows ou GNU/Linux, l’installation manuelle de salt-minion et l’acceptation de la clef du minion sur le serveur ne fait pas la jonction au domaine et n’installe aucun composant Veyon
    1. Pour les mêmes minion, l’exécution des commandes suivante sur le serveur procèdent à la jonction au domaine (avec un redémarrage du poste client pour Windows) :
      root@scribe:~$ salt '*' grains.append roles ad/member
      root@scribe:~$ salt '*' state.apply
      
    2. Pour les mêmes minion, l’exécution des commandes suivante sur le serveur procèdent à l’installation de Veyon (avec la partie maître) (sans redémarrage du poste client Windows) :
      root@scribe:~$ salt '*' grains.append roles '["veyon/master", "veyon/client"]'
      root@scribe:~$ salt '*' state.apply
      
  6. Sur un poste GNU/Linux ou Windows, l’exécution de la commande suivante désinstalle les composants Veyon et sort la station du domaine (avec un redémarrage du poste client Windows) :
    root@scribe:~$ salt '*' state.apply eole-workstation.clean
    

Demande originale

Suite à beaucoup d'échange et de proposition faite sur cette liste, Le Pôle de Compétences Logiciels Libres (EOLE) envisage de proposer une intégration de poste client Linux avec une ScribeAD/Seth.

Beaucoup de travail a été fait par la DANE de Lyon, et publié dans le dépôt https://github.com/dane-lyon/clients-linux-scribe/ et https://github.com/simbd/Ubuntu_20.04LTS_PostInstall

Nous souhaiterions récupérer ce code pour le proposer nativement sur un ScribeAD/Seth.

L'idée serait de :
- créer un clone sur la forge Eole,
- créer un paquet contenant l'ensemble du code
- l'installer sur le module EOLE
- supprimer toutes les questions des scripts, (les questions seront saisies dans GenConfig)
- limiter la procédure d'installation sur un poste linux à "wget http://scribe/joineole/clientLinux.sh | sudo bash" sans question...
- limiter au maximum les scripts "téléchargés" puis exécuter. Cette pratique est simple, mais doit être considérer comme un trou de sécurité....

Voici la liste des téléchargements pouvant poser un problème de licence :
- https://dl.google.com/dl/earth/client/current/google-earth-stable_current_i386.deb
- https://dl.google.com/dl/earth/client/current/google-earth-pro-stable_current_amd64.deb
- ppa:florian-rival/gdevelop
- ppa:webupd8team/java
- http://repository.crdp.ac-versailles.fr/debian (logicile Xia)
- http://d.a.d.a.pagesperso-orange.fr/ ?
- ppa:docky-core/stable
- https://dane.ac-lyon.fr/spip/IMG/tar/skel_xub1404.tar
- http://bluegriffon.org/freshmeat/3.0.1/bluegriffon-3.0.1.Ubuntu16.04-x86_64.deb

liens cassés :
- https://raw.githubusercontent.com/simbd/Scripts_Ubuntu/master/Celestia_pour_Bionic.sh
- https://raw.githubusercontent.com/simbd/Scripts_Ubuntu/master/Openboard_1804.sh

Avant de pouvoir faire ceci :
- il est nécessaire de clarifier la licence des dépôts. Je n'ai pas trouvé de fichier de LICENCES "compatible" avec les logiciels libres.
- tous les auteurs doivent accepter l'intégration dans la Distribution Eole (sinon, nous devrons faire un développement complètement différent)

Les auteurs cités dans le code sont :
  1. Christophe Deze - Rectorat de Nantes
  2. Cédric Frayssinet - Mission Tice Ac-lyon
  3. Xavier Garel - Mission Tice Ac-lyon
  4. Simon Bernard - Technicien Ac-Lyon
  5. Olivier Calpetard - Académie de la Réunion

Sous-tâches

Tâche #30722: Proposer l’intégration d’un poste GNU/Linux à un domaine Active Directory au dépôt de la DANE de LyonNe sera pas résolu

Tâche #30723: Modifier l’outil installMinion.exe afin d’ajouter les rôles ad/member, veyon/master et veyon/clientFerméDaniel Dehennin

Tâche #30726: Ajouter le support de la jonction d’un poste GNU/Linux à un domaine Active DirectoryFerméDaniel Dehennin

Tâche #30727: Ajouter le support de l’installation et la configuration de Veyon pour les postes GNU/LinuxFerméDaniel Dehennin

Tâche #30753: Fournir une recette SaltStack pour configurer le montage des lecteurs réseaux sur les postes GNU/Linux à la connection des utilisateurs du domaineFerméDaniel Dehennin

Tâche #30757: installMinion.exe ne détecte pas correctement l’architecture processeurFerméDaniel Dehennin


Demandes liées

Lié à eole-workstation - Scénario #30860: Proposer une variante de salt-bootstrap pour fonctionner sur Scribe/Seth Terminé (Sprint) 02/12/2020 29/01/2021

Historique

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

  • Description mis à jour (diff)

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

  • Description mis à jour (diff)

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

  • Description mis à jour (diff)

#4 Mis à jour par Cédric Frayssinet il y a plus de 3 ans

Merci pour cette proposition, c'est une très belle initiative et nous en avons besoin en établissement !

De mon point de vue, cela ne sert à rien de faire un script post-install ou alors une intégration de quelques logiciels indispensables et bien entendu libres par défaut. Je peux éventuellement aider à constituer cette liste en me basant sur les PC de mon lycée.

En revanche, je sais que cela vous posera soucis, mais, actuellement, la majorité des Scribes sont encore en Scribe NT et ce serait dommage de limiter ces clients à ScribeAD... Évidemment, c'est plus facile qu'à faire...

#5 Mis à jour par Laurent Flori il y a plus de 3 ans

J'ai fait un script d'intégration automatique des postes linux au domaine AD d'un scribe. (Ca ne fonctionne pas en mode NT)

Il suffit de le lancer sur un poste Linux (testé en 18.04) avec le nom de la station.

./join.sh mastation

!/bin/bash

if ! [ "${1}" ];then
        echo "Missing Station name" 
        exit 1
fi

DOMAIN="dompedago.etb1.lan" 
AD_DOMAIN="DOMPEDAGO.ETB1.LAN" 
STATION="${1}.${DOMAIN}" 
# Les deux variables qui suivent sont extraites du scribe
# /usr/share/eole/saltstack/pillar/eole-workstation.sls
JOIN_USERNAME="eole-workstation-manager" 
JOIN_PASSWORD="wM6hQPdRLYFuHvMEOGlYf6C87cD3lbQsIF5DukhatT" 
AD_DNS_IP="10.1.3.11" 

###########################################
hostnamectl set-hostname "${STATION}" 
sed '/127.0.1.1/d' /etc/hosts
systemd-resolve --set-dns="${AD_DNS_IP}" --set-domain="${AD_DOMAIN}" 

cat > /etc/krb5.conf << EOF
[libdefaults]
 default_realm = "${AD_DOMAIN}" 
 dns_lookup_realm = true
 dns_lookup_kdc = true
 rdns = false

[realms]
 ${AD_DOMAIN} = {
  kdc = addc.${DOMAIN}:88
  admin_server = addc.${DOMAIN}:749
  default_domain = ${DOMAIN}
 }

[domain_realm]
 .${DOMAIN} = ${AD_DOMAIN}
 ${DOMAIN} = ${AD_DOMAIN}
EOF

apt update
apt install -y realmd heimdal-clients

echo ${JOIN_PASSWORD} | kinit --password-file=STDIN ${JOIN_USERNAME}
realm -v join --unattended "${AD_DOMAIN}" 
kdestroy
apt remove nscd nslcd
systemctl restart sssd

#6 Mis à jour par Laurent Flori il y a plus de 3 ans

On peut ajouter libpam-mount:

apt install cifs-utils keyutils libpam-mount

Dans /etc/security/pam_mount.conf.xml ajouter les montages suivants (penser à ajuster la valeur du serveur et du domaine)

<volume fstype="cifs" 
        server="scribe.dompedago.etb1.lan" 
        path="%(USER)/" 
        mountpoint="/home/%(USER)/" 
        options="username=%(USER),sec=krb5,cruid=%(USERUID),uid=%(USERUID),domain=DOMPEDAGO.ETB1.LAN" >
<not> <uid>0-5000</uid> </not> </volume>

<volume fstype="cifs" 
        server="scribe.dompedago.etb1.lan" 
        path="commun/" 
        mountpoint="~/commun" 
        options="username=%(USER),sec=krb5,cruid=%(USERUID),uid=%(USERUID),domain=DOMPEDAGO.ETB1.LAN" >
<not> <uid>0-5000</uid> </not> </volume>

#7 Mis à jour par Daniel Dehennin il y a plus de 3 ans

  • Sujet changé de Intégrer la solution ClientLinux de la DANE de Lyon sur ScribeAD à Intégrer la jonction des postes GNU/Linux à un Active Directory
  • Description mis à jour (diff)

#8 Mis à jour par Daniel Dehennin il y a plus de 3 ans

  • Version cible changé de sprint 2020 36-39 Equipe MENSR à sprint 2020 40-42 Equipe MENSR

#9 Mis à jour par Daniel Dehennin il y a plus de 3 ans

  • Description mis à jour (diff)

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

  • Statut changé de Nouveau à Terminé (Sprint)

#11 Mis à jour par Joël Cuissinat il y a plus de 3 ans

  • Release mis à EOLE 2.7.1.3

#12 Mis à jour par Cédric Frayssinet il y a plus de 3 ans

Avons-nous des retours d'usagers ?

#13 Mis à jour par Daniel Dehennin il y a plus de 3 ans

  • Lié à Scénario #30860: Proposer une variante de salt-bootstrap pour fonctionner sur Scribe/Seth ajouté

Formats disponibles : Atom PDF