2 # example script to setup DNS for a vampired domain
5 echo "Usage: setup_dns.sh HOSTNAME DOMAIN IP"
9 HOSTNAME
="$(echo $1 | tr '[a-z]' '[A-Z]')"
10 DOMAIN
="$(echo $2 | tr '[a-z]' '[A-Z]')"
13 RSUFFIX
=$
(echo $DOMAIN |
sed s
/[\.
]/,DC
=/g
)
15 [ -z "$PRIVATEDIR" ] && {
16 PRIVATEDIR
=$
(bin
/samba-tool testparm
--section-name=global
--parameter-name='private dir' --suppress-prompt 2>/dev
/null
)
19 OBJECTGUID
=$
(bin
/ldbsearch
--scope=base
-H "$PRIVATEDIR/sam.ldb" -b "CN=NTDS Settings,CN=$HOSTNAME,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=$RSUFFIX" objectguid |
grep ^objectGUID | cut
-d: -f2)
22 if test -x $BINDIR/samba4kinit
; then
23 samba4kinit
=bin
/samba4kinit
26 echo "Found objectGUID $OBJECTGUID"
28 echo "Running kinit for $HOSTNAME\$@$DOMAIN"
29 $samba4kinit -e arcfour-hmac-md5
-k -t "$PRIVATEDIR/secrets.keytab" $HOSTNAME\$@
$DOMAIN ||
exit 1
30 echo "Adding $HOSTNAME.$DOMAIN"
31 scripting
/bin
/nsupdate-gss
--noverify $HOSTNAME $DOMAIN $IP 300 ||
{
32 echo "Failed to add A record"
35 echo "Adding $OBJECTGUID._msdcs.$DOMAIN => $HOSTNAME.$DOMAIN"
36 scripting
/bin
/nsupdate-gss
--realm=$DOMAIN --noverify --ntype="CNAME" $OBJECTGUID _msdcs.
$DOMAIN $HOSTNAME.
$DOMAIN 300 ||
{
37 echo "Failed to add CNAME"
42 host $HOSTNAME.
$DOMAIN
43 host $OBJECTGUID._msdcs.
$DOMAIN