Skip to content
This repository was archived by the owner on Apr 18, 2024. It is now read-only.

Commit 90278e0

Browse files
committed
Modularized
1 parent d0e9aad commit 90278e0

26 files changed

+1185
-1444
lines changed

scripts/boot_scm.sh renamed to scripts/boot_plus_tmp.sh

Lines changed: 126 additions & 94 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,59 @@ rm -f /etc/resolv.conf
2222
echo "search public1.cdhvcn.oraclevcn.com public2.cdhvcn.oraclevcn.com public3.cdhvcn.oraclevcn.com private1.cdhvcn.oraclevcn.com private2.cdhvcn.oraclevcn.com private3.cdhvcn.oraclevcn.com bastion1.cdhvcn.oraclevcn.com bastion2.cdhvcn.oraclevcn.com bastion3.cdhvcn.oraclevcn.com" > /etc/resolv.conf
2323
echo "nameserver 169.254.169.254" >> /etc/resolv.conf
2424

25+
EXECNAME="JAVA - KERBEROS"
26+
log "->INSTALL"
2527
## Install Java & Kerberos client
2628
yum install java-1.8.0-openjdk.x86_64 krb5-workstation -y
2729

30+
EXECNAME="KERBEROS"
31+
log "->krb5.conf"
32+
## Configure krb5.conf
33+
kdc_server='cdh-utility-1'
34+
kdc_fqdn=`host $kdc_server | gawk '{print $1}'`
35+
realm="hadoop.com"
36+
REALM="HADOOP.COM"
37+
log "-> CONFIG"
38+
rm -f /etc/krb5.conf
39+
cat > /etc/krb5.conf << EOF
40+
# Configuration snippets may be placed in this directory as well
41+
includedir /etc/krb5.conf.d/
42+
43+
[libdefaults]
44+
default_realm = ${REALM}
45+
dns_lookup_realm = false
46+
dns_lookup_kdc = false
47+
rdns = false
48+
ticket_lifetime = 24h
49+
renew_lifetime = 7d
50+
forwardable = true
51+
udp_preference_limit = 1000000
52+
default_tkt_enctypes = rc4-hmac
53+
default_tgs_enctypes = rc4-hmac
54+
permitted_enctypes = rc4-hmac
55+
56+
[realms]
57+
${REALM} = {
58+
kdc = ${kdc_fqdn}:88
59+
admin_server = ${kdc_fqdn}:749
60+
default_domain = ${realm}
61+
}
62+
63+
[domain_realm]
64+
.${realm} = ${REALM}
65+
${realm} = ${REALM}
66+
67+
[kdc]
68+
profile = /var/kerberos/krb5kdc/kdc.conf
69+
70+
[logging]
71+
kdc = FILE:/var/log/krb5kdc.log
72+
admin_server = FILE:/var/log/kadmin.log
73+
default = FILE:/var/log/krb5lib.log
74+
EOF
75+
76+
EXECNAME="TUNING"
77+
log "->OS"
2878
## Disable Transparent Huge Pages
2979
echo never | tee -a /sys/kernel/mm/transparent_hugepage/enabled
3080
echo "echo never | tee -a /sys/kernel/mm/transparent_hugepage/enabled" | tee -a /etc/rc.local
@@ -48,6 +98,7 @@ echo net.ipv4.tcp_low_latency=1 >> /etc/sysctl.conf
4898
## Tune File System options
4999
sed -i "s/defaults 1 1/defaults,noatime 0 0/" /etc/fstab
50100

101+
log "->SSH"
51102
## Enable root login via SSH key
52103
cp /root/.ssh/authorized_keys /root/.ssh/authorized_keys.bak
53104
cp /home/opc/.ssh/authorized_keys /root/.ssh/authorized_keys
@@ -59,36 +110,24 @@ hbase - nofile 32768
59110
hbase - nproc 2048" >> /etc/security/limits.conf
60111
ulimit -n 262144
61112

113+
log "->FirewallD"
62114
systemctl stop firewalld
63115
systemctl disable firewalld
64116

65117
## Post Tuning Execution Below
66-
118+
EXECNAME="MYSQL Connector"
67119
## MySQL Connector Install
120+
log "->INSTALL"
68121
wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.46.tar.gz
69122
tar zxvf mysql-connector-java-5.1.46.tar.gz
70123
mkdir -p /usr/share/java/
71124
cd mysql-connector-java-5.1.46
72125
cp mysql-connector-java-5.1.46-bin.jar /usr/share/java/mysql-connector-java.jar
73126

74-
# Cloudera Agent Setup
75-
rpm --import https://archive.cloudera.com/cdh6/6.1.0/redhat7/yum//RPM-GPG-KEY-cloudera
76-
wget http://archive.cloudera.com/cm6/6.1.0/redhat7/yum/cloudera-manager.repo -O /etc/yum.repos.d/cloudera-manager.repo
77-
yum install oracle-j2sdk1.8.x86_64 cloudera-manager-agent cloudera-manager-daemons -y
78-
cm_host=`host cdh-utility-1 | gawk '{print $1}'`
79-
cp /etc/cloudera-scm-agent/config.ini /etc/cloudera-scm-agent/config.ini.orig
80-
sed -e "s/\(server_host=\).*/\1${cm_host}/" -i /etc/cloudera-scm-agent/config.ini
81-
systemctl start cloudera-scm-agent
82-
83127
#
84128
# DISK SETUP
85129
#
86130

87-
EXECNAME="SLEEP"
88-
## SLEEP HERE - GIVE TIME FOR BLOCK VOLUMES TO ATTACH
89-
log "->SLEEP"
90-
sleep 180
91-
92131
vol_match() {
93132
case $i in
94133
1) disk="oraclevdb";;
@@ -142,30 +181,41 @@ iscsi_target_only(){
142181

143182
## Look for all ISCSI devices in sequence, finish on first failure
144183
EXECNAME="ISCSI"
145-
done="0"
146-
log "-- Detecting Block Volumes --"
147-
for i in `seq 2 33`; do
148-
if [ $done = "0" ]; then
149-
iscsiadm -m discoverydb -D -t sendtargets -p 169.254.2.$i:3260 2>&1 2>/dev/null
150-
iscsi_chk=`echo -e $?`
151-
if [ $iscsi_chk = "0" ]; then
152-
# IQN list is important set up this array with discovered IQNs
153-
iqn[${i}]=`iscsiadm -m discoverydb -D -t sendtargets -p 169.254.2.${i}:3260 | gawk '{print $2}'`
154-
log "-> Discovered volume $((i-1)) - IQN: ${iqn[${i}]}"
155-
continue
156-
else
157-
log "--> Discovery Complete - ${#iqn[@]} volumes found"
158-
done="1"
184+
log "- Begin Block Volume Detection Loop -"
185+
volume_count="0"
186+
while [ "$volume_count" -lt 2 ]; do
187+
detection_done="0"
188+
log "-- Detecting Block Volumes --"
189+
for i in `seq 2 33`; do
190+
if [ $detection_done = "0" ]; then
191+
iscsiadm -m discoverydb -D -t sendtargets -p 169.254.2.$i:3260 2>&1 2>/dev/null
192+
iscsi_chk=`echo -e $?`
193+
if [ $iscsi_chk = "0" ]; then
194+
# IQN list is important set up this array with discovered IQNs
195+
iqn[${i}]=`iscsiadm -m discoverydb -D -t sendtargets -p 169.254.2.${i}:3260 | gawk '{print $2}'`
196+
log "-> Discovered volume $((i-1)) - IQN: ${iqn[${i}]}"
197+
continue
198+
else
199+
volume_count="${#iqn[@]}"
200+
log "--> Discovery Complete - ${#iqn[@]} volumes found"
201+
detection_done="1"
202+
fi
159203
fi
204+
done;
205+
if [ "$volume_count" = 0 ]; then
206+
log "-- Sleeping 60 then retry detection --"
207+
sleep 60
208+
elif [ "$volume_count" = 1]; then
209+
log "-- Sleeping 60 then retry detection --"
210+
sleep 60
211+
else
212+
log "-- Setup for ${#iqn[@]} Block Volumes --"
213+
for i in `seq 1 ${#iqn[@]}`; do
214+
n=$((i+1))
215+
iscsi_setup
216+
done;
160217
fi
161218
done;
162-
if [ ${#iqn[@]} -gt 0 ]; then
163-
log "-- Setup for ${#iqn[@]} Block Volumes --"
164-
for i in `seq 1 ${#iqn[@]}`; do
165-
n=$((i+1))
166-
iscsi_setup
167-
done;
168-
fi
169219

170220
EXECNAME="boot.sh - DISK PROVISIONING"
171221
#
@@ -196,13 +246,26 @@ nvcount="0"
196246
bvcount="0"
197247
## Execute - will format all devices except sda for use as data disks in HDFS
198248
dcount=0
199-
for disk in `ls /dev/ | grep nvme`; do
249+
for disk in `ls /dev/ | grep nvme | grep n1`; do
200250
log "-->Processing /dev/$disk"
201251
mke2fs -F -t ext4 -b 4096 -E lazy_itable_init=1 -O sparse_super,dir_index,extent,has_journal,uninit_bg -m1 /dev/$disk
202252
data_mount
203253
dcount=$((dcount+1))
204254
done;
205255

256+
raid_disk_setup() {
257+
sed -e 's/\s*\([\+0-9a-zA-Z]*\).*/\1/' << EOF | fdisk /dev/oracleoci/$disk
258+
n
259+
p
260+
1
261+
262+
263+
t
264+
fd
265+
w
266+
EOF
267+
}
268+
206269
if [ ${#iqn[@]} -gt 0 ]; then
207270
for i in `seq 1 ${#iqn[@]}`; do
208271
n=$((i+1))
@@ -211,23 +274,44 @@ for i in `seq 1 ${#iqn[@]}`; do
211274
vol_match
212275
log "-->Checking /dev/oracleoci/$disk"
213276
if [ -h /dev/oracleoci/$disk ]; then
214-
mke2fs -F -t ext4 -b 4096 -E lazy_itable_init=1 -O sparse_super,dir_index,extent,has_journal,uninit_bg -m1 /dev/oracleoci/$disk
215-
if [ $disk = "oraclevdb" ]; then
277+
case $disk in
278+
oraclevdb)
279+
mke2fs -F -t ext4 -b 4096 -E lazy_itable_init=1 -O sparse_super,dir_index,extent,has_journal,uninit_bg -m1 /dev/oracleoci/$disk
216280
log "--->Mounting /dev/oracleoci/$disk to /var/log/cloudera"
217281
mkdir -p /var/log/cloudera
218282
mount -o noatime,barrier=1 -t ext4 /dev/oracleoci/$disk /var/log/cloudera
219283
UUID=`lsblk -no UUID /dev/oracleoci/$disk`
220284
echo "UUID=$UUID /var/log/cloudera ext4 defaults,_netdev,nofail,noatime,discard,barrier=0 0 2" | tee -a /etc/fstab
221-
elif [ $disk = "oraclevdc" ]; then
285+
mkdir -p /var/log/cloudera/cloudera-scm-agent
286+
ln -s /var/log/cloudera/cloudera-scm-agent /var/log/cloudera-scm-agent
287+
;;
288+
oraclevdc)
289+
mke2fs -F -t ext4 -b 4096 -E lazy_itable_init=1 -O sparse_super,dir_index,extent,has_journal,uninit_bg -m1 /dev/oracleoci/$disk
222290
log "--->Mounting /dev/oracleoci/$disk to /opt/cloudera"
223291
mkdir -p /opt/cloudera
224292
mount -o noatime,barrier=1 -t ext4 /dev/oracleoci/$disk /opt/cloudera
225293
UUID=`lsblk -no UUID /dev/oracleoci/$disk`
226294
echo "UUID=$UUID /opt/cloudera ext4 defaults,_netdev,nofail,noatime,discard,barrier=0 0 2" | tee -a /etc/fstab
227-
else
295+
;;
296+
oraclevdd|oraclevde|oraclevdf)
297+
raid_disk_setup
298+
;;
299+
oraclevdg)
300+
raid_disk_setup
301+
mdadm -C /dev/md0 -l raid0 -n 4 /dev/oracleoci/oraclevd[d-g]1
302+
mkfs.ext4 /dev/md0
303+
mkdir -p /mnt/tmp
304+
mount /dev/md0 /mnt/tmp
305+
mount -B /tmp /mnt/tmp
306+
echo "/dev/md0 /mnt/tmp ext4 defaults,_netdev,noatime,discard,barrier=0 0 0" | tee -a /etc/fstab
307+
mdadm -E -s -v >> /etc/mdadm.conf
308+
;;
309+
*)
310+
mke2fs -F -t ext4 -b 4096 -E lazy_itable_init=1 -O sparse_super,dir_index,extent,has_journal,uninit_bg -m1 /dev/oracleoci/$disk
228311
block_data_mount
229312
dcount=$((dcount+1))
230-
fi
313+
;;
314+
esac
231315
/sbin/tune2fs -i0 -c0 /dev/oracleoci/$disk
232316
dsetup="1"
233317
else
@@ -238,57 +322,5 @@ for i in `seq 1 ${#iqn[@]}`; do
238322
done;
239323
done;
240324
fi
241-
# Kerberos Workstation Setup
242-
EXECNAME="KERBEROS"
243-
log "-> INSTALL"
244-
yum install krb5-workstation
245-
246-
KERBEROS_PASSWORD="SOMEPASSWORD"
247-
OPC_USER_PASSWORD="somepassword"
248-
kdc_server="cdh-utility-1"
249-
kdc_fqdn=`host $kdc_server | gawk '{print $1}'`
250-
realm="hadoop.com"
251-
REALM="HADOOP.COM"
252-
log "-> CONFIG"
253-
rm -f /etc/krb5.conf
254-
cat > /etc/krb5.conf << EOF
255-
# Configuration snippets may be placed in this directory as well
256-
includedir /etc/krb5.conf.d/
257-
258-
[libdefaults]
259-
default_realm = ${REALM}
260-
dns_lookup_realm = false
261-
dns_lookup_kdc = false
262-
rdns = false
263-
ticket_lifetime = 24h
264-
renew_lifetime = 7d
265-
forwardable = true
266-
udp_preference_limit = 1000000
267-
default_tkt_enctypes = rc4-hmac
268-
default_tgs_enctypes = rc4-hmac
269-
permitted_enctypes = rc4-hmac
270-
271-
[realms]
272-
${REALM} = {
273-
kdc = ${kdc_fqdn}:88
274-
admin_server = ${kdc_fqdn}:749
275-
default_domain = ${realm}
276-
}
277-
278-
[domain_realm]
279-
.${realm} = ${REALM}
280-
${realm} = ${REALM}
281-
282-
[kdc]
283-
profile = /var/kerberos/krb5kdc/kdc.conf
284-
285-
[logging]
286-
kdc = FILE:/var/log/krb5kdc.log
287-
admin_server = FILE:/var/log/kadmin.log
288-
default = FILE:/var/log/krb5lib.log
289-
EOF
290-
log "-> Principal & ticket"
291-
echo -e "${KERBEROS_PASSWORD}\naddprinc -randkey host/client.${REALM}\nktadd host/kdc.${REALM}" | kadmin -p root/admin
292-
293325
EXECNAME="END"
294326
log "->DONE"

0 commit comments

Comments
 (0)