Project

General

Profile

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

Added by Joël Cuissinat about 2 years ago. Updated about 2 years ago.

Status:
Fermé
Priority:
Normal
Assigned To:
Start date:
01/14/2019
Due date:
% Done:

100%

Remaining (hours):
0.0

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 ?)
Commandes à exécuter (sur le DC) :
S'inspirer du code de la fonction "set_dns_srv_entry" du script /usr/share/eole/sbin/createDnsRecord pour :
  1. vérifier si l'enregistrement existe déjà (avec dig)
  2. ajouter l'association salt -> adresse_ip_eth0 avec samba-tool dns add (utilisation de Keytab requise pour cette commande ?)

Associated revisions

Revision 41b6eac9 (diff)
Added by Joël Cuissinat about 2 years ago

Add resolution for salt hostname in postservice

Ref: #26439

History

#1 Updated by Joël Cuissinat about 2 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 about 2 years ago

  • Status changed from Nouveau to En cours

#3 Updated by Joël Cuissinat about 2 years ago

  • Description updated (diff)
  • Assigned To set to Joël Cuissinat

#4 Updated by Joël Cuissinat about 2 years ago

  • Status changed from En cours to Résolu
  • % Done changed from 0 to 100

#5 Updated by Joël Cuissinat about 2 years ago

  • Status changed from Résolu to Fermé
  • Remaining (hours) set to 0.0

Also available in: Atom PDF