Project

General

Profile

Scénario #30575

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

Added by Gilles Grandgérard about 1 year ago. Updated 10 months ago.

Status:
Terminé (Sprint)
Priority:
Normal
Assigned To:
-
Category:
-
Start date:
09/25/2020
Due date:
10/16/2020
% Done:

100%

Story points:
5.0
Remaining (hours):
0.00 hour
Velocity based estimate:
3 days
Release:
Release relationship:
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

Subtasks

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


Related issues

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

History

#1 Updated by Gilles Grandgérard about 1 year ago

  • Description updated (diff)

#2 Updated by Gilles Grandgérard about 1 year ago

  • Description updated (diff)

#3 Updated by Gilles Grandgérard about 1 year ago

  • Description updated (diff)

#4 Updated by Cédric Frayssinet about 1 year ago

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 Updated by Laurent Flori 12 months ago

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 Updated by Laurent Flori 12 months ago

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 Updated by Daniel Dehennin 12 months ago

  • Subject changed from Intégrer la solution ClientLinux de la DANE de Lyon sur ScribeAD to Intégrer la jonction des postes GNU/Linux à un Active Directory
  • Description updated (diff)

#8 Updated by Daniel Dehennin 12 months ago

  • Target version changed from sprint 2020 36-39 Equipe MENSR to sprint 2020 40-42 Equipe MENSR

#9 Updated by Daniel Dehennin 12 months ago

  • Description updated (diff)

#10 Updated by Gilles Grandgérard 10 months ago

  • Status changed from Nouveau to Terminé (Sprint)

#11 Updated by Joël Cuissinat 10 months ago

  • Release set to EOLE 2.7.1.3

#12 Updated by Cédric Frayssinet 10 months ago

Avons-nous des retours d'usagers ?

#13 Updated by Daniel Dehennin 9 months ago

  • Related to Scénario #30860: Proposer une variante de salt-bootstrap pour fonctionner sur Scribe/Seth added

Also available in: Atom PDF