Skip to content

Commit 991d199

Browse files
authored
Merge pull request #195993 from sreekzz/main
added sample script
2 parents b94fa1e + d766a84 commit 991d199

File tree

2 files changed

+101
-0
lines changed

2 files changed

+101
-0
lines changed

articles/hdinsight/TOC.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1072,6 +1072,8 @@ items:
10721072
href: ./domain-joined/domain-joined-authentication-issues.md
10731073
- name: Cluster creation fails with DomainNotFound
10741074
href: ./domain-joined/troubleshoot-domainnotfound.md
1075+
- name: Sample script to use when Cluster creation fails with DomainNotFound Error
1076+
href: ./domain-joined/sample-script.md
10751077
- name: Azure Synapse integration
10761078
items:
10771079
- name: Share Hive metastore with Synapse Spark
Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
---
2+
title: Sample script for Azure HDInsight when cluster creation fails
3+
description: Sample script to run when Azure HDInsight cluster creation fails with DomainNotFound error.
4+
ms.service: hdinsight
5+
ms.topic: troubleshooting
6+
ms.date: 04/25/2022
7+
---
8+
9+
# Sample Script
10+
11+
Use this script to run when Azure HDInsight cluster creation fails with an error **DomainNotFound** error.
12+
13+
```
14+
domainName=$1
15+
userName=$2
16+
17+
if [[ -z "$domainName" ]]; then
18+
echo "Domain name is a required parameter"
19+
exit
20+
fi
21+
22+
if [[ -z "$userName" ]]; then
23+
echo "User name is a required parameter"
24+
exit
25+
fi
26+
27+
echo -n Password:
28+
read -s password
29+
echo
30+
31+
echo $password
32+
33+
echo "Domain join $domainName"
34+
35+
ping -q -c 1 $domainName
36+
pingStatus=$?
37+
38+
if [ $pingStatus -eq 0 ]; then
39+
echo "Ping for domain $domainName succeeded"
40+
else
41+
echo "Domain controller for $domainName was not resolvable"
42+
exit
43+
fi
44+
45+
shortDomainName="${domainName%%.*}"
46+
shortUserName="${userName%%@*}"
47+
sambaConfFileName="/etc/samba/smb.conf"
48+
49+
echo "Preparing the $sambaConfFileName file"
50+
cp $sambaConfFileName "$sambaConfFileName.bak"
51+
echo "[global]" > $sambaConfFileName
52+
echo " security = ads" >> $sambaConfFileName
53+
echo " realm = ${domainName^^}" >> $sambaConfFileName
54+
echo "# If the system doesn't find the domain controller automatically, you may need the following line" >> $sambaConfFileName
55+
echo " password server = *" >> $sambaConfFileName
56+
echo "# note that workgroup is the 'short' domain name" >> $sambaConfFileName
57+
echo " workgroup = ${shortDomainName^^}" >> $sambaConfFileName
58+
echo "# winbind separator = +" >> $sambaConfFileName
59+
echo " winbind enum users = yes" >> $sambaConfFileName
60+
echo " winbind enum groups = yes" >> $sambaConfFileName
61+
echo " template homedir = /home/%D/%U" >> $sambaConfFileName
62+
echo " template shell = /bin/bash" >> $sambaConfFileName
63+
echo " client use spnego = yes" >> $sambaConfFileName
64+
echo " client ntlmv2 auth = yes" >> $sambaConfFileName
65+
echo " encrypt passwords = yes" >> $sambaConfFileName
66+
echo " restrict anonymous = 2" >> $sambaConfFileName
67+
echo " log level = 2" >> $sambaConfFileName
68+
echo " log file = /var/log/samba/sambadebug.log.%m" >> $sambaConfFileName
69+
echo " debug timestamp = yes" >> $sambaConfFileName
70+
echo " max log size = 50" >> $sambaConfFileName
71+
echo " winbind use default domain = yes" >> $sambaConfFileName
72+
echo " nt pipe support = no" >> $sambaConfFileName
73+
echo >> $sambaConfFileName
74+
echo "# Placeholder for domains" >> $sambaConfFileName
75+
echo "idmap config ${shortDomainName^^} : backend = rid" >> $sambaConfFileName
76+
echo "idmap config ${shortDomainName^^} : schema_mode = rid" >> $sambaConfFileName
77+
echo "idmap config ${shortDomainName^^} : range = 100000-1100000" >> $sambaConfFileName
78+
echo "idmap config ${shortDomainName^^} : base_rid = 0" >> $sambaConfFileName
79+
echo "idmap config * : backend = tdb" >> $sambaConfFileName
80+
echo "idmap config * : schema_mode = rid" >> $sambaConfFileName
81+
echo "idmap config * : range = 10000-99999" >> $sambaConfFileName
82+
echo "idmap config * : base_rid = 0" >> $sambaConfFileName
83+
84+
export KRB5_TRACE=/tmp/krb.log
85+
reformattedUserName="$shortUserName@${domainName^^}"
86+
echo net ads join -w $domainName -U $reformattedUserName%$password
87+
88+
netJoinResult=$?
89+
90+
if [ $netJoinResult -ne 0 ]
91+
then
92+
echo "Net join failed with result: $netJoinResult"
93+
exit
94+
fi
95+
96+
echo "Net join succeeded"
97+
98+
net ads info
99+
```

0 commit comments

Comments
 (0)