Projet

Général

Profil

samba4.sh.patch

Vincent Chavanon, 08/01/2021 09:14

Télécharger (2,62 ko)

Voir les différences:

samba4.sh.272vch 2021-01-07 11:38:27.064131368 +0100
650 650
        exit 1
651 651
    fi
652 652

  
653
    # ceci est un contournement. dans certain cas, la création de l'entrée DNS n'est pas correctement faite
654
    # après la jonction au domaine AD.
655
    # il faut tester la présence, et si elle manque ajouter l'entrée.
656
    # https://dev-eole.ac-dijon.fr/issues/28675
657
    if dig "${AD_HOST_NAME}.${AD_REALM}" | grep "${AD_HOST_IP}"
658
    then
659
        echo "${AD_HOST_NAME} : Déjà inscrit!"
660
    else
661
        echo "${AD_HOST_NAME} : à créer"
662
        # je n'ai pas le nom du DC1, j'utilise le nom par défault avec la résolution du domaine (!), comme 1er param
663
        samba-tool dns add "${AD_REALM}" "${AD_REALM}" "${AD_HOST_NAME}" A "${AD_HOST_IP}" -U"${AD_DELEGATION}%${AD_DELEGATION_PASSWORD}"
664
    fi
665

  
666 653
    local IP_SERVER
667 654
    IP_SERVER=$(host "${AD_REALM}" | cut -d" " -f4)
668 655
    if ! net ads join -U"${AD_DELEGATION}%${AD_DELEGATION_PASSWORD}" -I "${IP_SERVER}"
......
670 657
        EchoRouge "Impossible de joindre le domaine."
671 658
        exit 1
672 659
    fi
673

  
674
    # ceci est la suite du contournement.
675
    # il faut tester la présence, et si elle manque ajouter l'entrée.
676
    # en général dans les 20 secondes, le dns répond correctement !
677
    # https://dev-eole.ac-dijon.fr/issues/28675
678 660
    local entreeDnsTrouvee=0
679
    for i in {1..10}
661
    dns=( $(host "${AD_REALM}" | cut -d" " -f4) )
662
    for serveur  in  "${dns[@]}"
680 663
    do
681
        if dig "${AD_HOST_NAME}.${AD_REALM}" | grep "${AD_HOST_IP}"
664
        if  host $AD_HOST_NAME.$AD_REALM ${serveur} | grep $AD_HOST_IP
682 665
        then
683
            echo "Entrée DNS présente, Ok"
684 666
            entreeDnsTrouvee=1
685
            break
686
        else
687
            echo "Entrée DNS manquante, essai ${i} ..."
688
            if ! samba-tool dns add "${AD_REALM}" "${AD_REALM}" "${AD_HOST_NAME}" A "${AD_HOST_IP}" -U"${AD_DELEGATION}%${AD_DELEGATION_PASSWORD}"
689
            then
690
                echo "Impossible d'inscrire l'entrée DNS"
691
            else
692
                echo "Entrée DNS inscrite"
693
            fi
694 667
        fi
695
        sleep 5
696 668
    done
669

  
670
    if [ "$entreeDnsTrouvee" -eq 0 ]; then
671
         net ads dns register "${AD_HOST_NAME}.${AD_REALM}" -U"${AD_DELEGATION}%${AD_DELEGATION_PASSWORD}"
672
        for serveur  in  "${dns[@]}"
673
        do
674
            if host $AD_HOST_NAME.$AD_REALM ${serveur} | grep $AD_HOST_IP
675
            then
676
                entreeDnsTrouvee=1
677
            fi
678
        done
679
    fi
697 680
    if [ $entreeDnsTrouvee -eq 0 ]
698 681
    then
699 682
        EchoRouge "L'entrée DNS de la machine n'est pas inscrite."