Scénario #30575
Intégrer la jonction des postes GNU/Linux à un Active Directory
100%
Description
Propositions¶
- Faire une contribution sur le dépôt de la DANE de Lyon afin d’inclure la jonction à un domaine Active Directory.
- Faire évoluer notre formula SaltStack afin d’intégrer la jonction des postes GNU/Linux
- 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) - 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 - Étendre le SLS
eole-workstation.ad.join
afin de gérer les postes GNU/Linux
- Vérifier l’installation de la bonne version du minion sur le client GNU/Linux (Ubuntu Focal n’a pas de paquet
- Faire évoluer notre formula SaltStack afin d’intégrer le montage des répertoires réseaux sur les postes GNU/Linux
- Faire évoluer notre formula SaltStack afin d’installer et configurer Veyon sur les postes GNU/Linux
- Conditionner l’installation de la partie cliente à un rôle
veyon/client
- Conditionner l’installation de la partie maître (master) à un rôle
veyon/master
- Conditionner l’installation de la partie cliente à un rôle
- 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
etveyon/client
(cela peut se faire depuis le scribe pour tous les postes windowssalt -G 'os_family:Windows' grains.append roles '["ad/member", "veyon/master", "veyon/client"]'
)
Critères d’acceptation¶
- Un pull request est proposé sur le dépôt Git de la DANE de Lyon
- 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) - Sur un poste GNU/Linux, l’installation de
salt-minion
, l’ajout des rôlesad/member
,veyon/master
etveyon/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) - Sur un poste GNU/Linux intégré au domaine, les répertoires réseaux sont accessibles aux utilisateurs connectés
- 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- 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
- 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
- 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) :
- 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)
- Christophe Deze - Rectorat de Nantes
- Cédric Frayssinet - Mission Tice Ac-lyon
- Xavier Garel - Mission Tice Ac-lyon
- Simon Bernard - Technicien Ac-Lyon
- Olivier Calpetard - Académie de la Réunion
Sous-tâches
Demandes liées
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é