-
Notifications
You must be signed in to change notification settings - Fork 12
/
Copy pathrocky8-domainjoiner.sh
81 lines (69 loc) · 2.04 KB
/
rocky8-domainjoiner.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#/bin/bash
#rocky 8 domain join
set -e
# Function to display usage
usage() {
echo "Usage: $0 --user USERNAME --realm REALM"
echo
echo "Options:"
echo " --user Specify the username"
echo " --realm Specify the realm (e.g., 45drives.local)"
exit 1
}
# If no arguments passed, show usage
[[ $# -eq 0 ]] && usage
# Parse arguments
while [[ $# -gt 0 ]]; do
case "$1" in
--user)
USERNAME="$2"
shift 2
;;
--realm)
REALM="$2"
shift 2
;;
*)
echo "Unknown option: $1"
usage
;;
esac
done
# Validate required variables
if [[ -z "$USERNAME" || -z "$REALM" ]]; then
echo "Error: --user and --realm arguments are required."
usage
fi
# Uppercase the realm
REALM="${REALM^^}"
# Set the full hostname
HOSTNAME="$(hostname -s)"
FQDN="${HOSTNAME}.${REALM}"
echo "Setting hostname to: $FQDN"
hostnamectl set-hostname $FQDN
# Now do something with $USERNAME and $REALM
echo "Username: $USERNAME"
echo "Realm: $REALM"
echo "Hostname: $FQDN"
# Install needed packages
echo "Installing prerequisite packages: realmd, samba, krb5-user....."
dnf install realmd oddjob-mkhomedir oddjob samba-winbind-clients samba-winbind samba-common-tools samba-winbind-krb5-locator samba -y
#Backing up smb.conf
currentTimestamp=`date +%y-%m-%d-%H:%M:%S`
echo "Backing up existing samba conf to:" /etc/samba/smb.conf.$currentTimestamp.bak
if [ -f /etc/samba/smb.conf ]; then
mv /etc/samba/smb.conf /etc/samba/smb.conf.$currentTimestamp.bak
echo "Moved /etc/samba/smb.conf to /etc/samba/smb.conf.$currentTimestamp.bak"
else
echo "File /etc/samba/smb.conf does not exist. Skipping."
fi
# Domain Join
echo "Validating we can discover the domain....."
realm discover $REALM
echo "Joining the domain....."
realm join --user=$USERNAME --membership-software=samba --client-software=winbind --server-software=active-directory $REALM
echo "Outputting domain join validation....."
realm list
echo "Configuring smb.conf to use net registry"
echo "include = registry" >> /etc/samba/smb.conf
systemctl enable --now smb