Tâche #26439
Scénario #26383: Créer une instance Salt-Master/Clients pour la gestion des postes de travail
Création de l'entrée DNS salt sur les DC
100%
Description
Le nom "salt" doit renvoyer vers la machine hébergeant le service eole-workstation-manager.
Pistes de travail :
Gilles propose d'ajouter une fonction dans samba4.sh.
Contre-proposition : tout faire en posttemplate de eole-workstation-manager (NB : voir si cela nécessite de déployer des fichiers dans le conteneur addc).
Algorithme :- Si DC Seth (ad_server_role="controleur de domaine") => exécuter les commandes sur le maître
- Si ScribeAD/HorusAD (ad_public_address ?) => exécuter les commandes dans le conteneur
- Sinon : message (warning ?)
S'inspirer du code de la fonction "set_dns_srv_entry" du script /usr/share/eole/sbin/createDnsRecord pour :
- vérifier si l'enregistrement existe déjà (avec dig)
- ajouter l'association salt -> adresse_ip_eth0 avec samba-tool dns add (utilisation de Keytab requise pour cette commande ?)
Associated revisions
Add resolution for salt hostname in postservice
Ref: #26439
History
#1 Updated by Joël Cuissinat over 4 years ago
Exemple de code sur un Seth :
[ "$(CreoleGet ad_server_role inconnu)" = "controleur de domaine" ] && echo OK dig @localhost salt.$(CreoleGet ad_realm) +short # kinit DC1@DOMSETH.AC-TEST.FR -k -t /var/lib/samba/eole-ad-dc.keytab ACCOUNT="$(CreoleGet nom_machine)@$(CreoleGet ad_realm)" kinit ${ACCOUNT^^} -k -t /var/lib/samba/eole-ad-dc.keytab # samba-tool dns add dc1.domseth.ac-test.fr domseth.ac-test.fr salt A 192.168.0.5 -k 1 samba-tool dns add $(CreoleGet nom_domaine_machine) $(CreoleGet ad_realm) salt A $(CreoleGet adresse_ip_eth0) -k 1
Exemple de code sur ScribeAD
[ "$(CreoleGet ad_public_address none)" != "none" ] && echo OK # dig @192.0.2.2 salt.domscribe.ac-test.fr +short dig @$(CreoleGet ad_address) salt.$(CreoleGet ad_domain) +short # kinit ADDC@DOMSCRIBE.AC-TEST.FR -k -t /var/lib/samba/eole-ad-dc.keytab # dans le conteneur ! . /usr/lib/eole/eolead.sh ACCOUNT="$CONTAINER_NAME@$(CreoleGet ad_domain)" ssh -t -q -o LogLevel=ERROR -o StrictHostKeyChecking=no root@addc "kinit ${ACCOUNT^^} -k -t /var/lib/samba/eole-ad-dc.keytab && samba-tool dns add $CONTAINER_NAME.$(CreoleGet ad_domain) $(CreoleGet ad_domain) salt A $(CreoleGet ad_public_address) -k 1"
Mais le code sera plus propre en initialisant des variables plus génériques avec le même nom sur les deux modules :o
Depuis le Scribe (sans ssh) on dirait que ça fonctionne pas alors que ça aurait pu :
# kinit ADDC@DOMSCRIBE.AC-TEST.FR -k -t /var/lib/lxc/addc/rootfs/var/lib/samba/eole-ad-dc.keytab . /usr/lib/eole/eolead.sh ACCOUNT="$CONTAINER_NAME@$(CreoleGet ad_domain)" kinit ${ACCOUNT^^} -k -t $CONTAINER_ROOTFS/var/lib/samba/eole-ad-dc.keytab root@scribe:~# samba-tool dns add addc.domscribe.ac-test.fr domscribe.ac-test.fr salt A 192.168.0.30 -k 1 Failed to bind to uuid 50abc2a4-574d-40b3-9d66-ee4fd5fba076 for ncacn_ip_tcp:192.0.2.2[49152,sign,target_hostname=addc.domscribe.ac-test.fr, abstract_syntax=50abc2a4-574d-40b3-9d66-ee4fd5fba076/0x00000005,localaddress=192.0.2.1] NT_STATUS_INTERNAL_ERROR ERROR: Connecting to DNS RPC server addc.domscribe.ac-test.fr failed with (-1073741595, 'An internal error occurred.')
Ce qui suit fonctionne (ssh) :
root@scribe:~# ssh -t -q -o LogLevel=ERROR -o StrictHostKeyChecking=no root@addc "kinit ADDC@DOMSCRIBE.AC-TEST.FR -k -t /var/lib/samba/eole-ad-dc.keytab && samba-tool dns add addc.domscribe.ac-test.fr domscribe.ac-test.fr salt A 192.168.0.30 -k 1" Record added successfully
Ou en utilisant le mot de passe stocké (beurk) :
root@scribe:~# samba-tool dns add addc.domscribe.ac-test.fr domscribe.ac-test.fr salt A 192.168.0.30 -UAdministrator%$(cat /root/.eolead)
A la fin : kdestroy
#2 Updated by Joël Cuissinat over 4 years ago
- Status changed from Nouveau to En cours
#3 Updated by Joël Cuissinat over 4 years ago
- Description updated (diff)
- Assigned To set to Joël Cuissinat
#4 Updated by Joël Cuissinat over 4 years ago
- Status changed from En cours to Résolu
- % Done changed from 0 to 100
#5 Updated by Joël Cuissinat over 4 years ago
- Status changed from Résolu to Fermé
- Remaining (hours) set to 0.0