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

Commit 80f6dac

Browse files
committed
Functional changes for many elements:
Moved Block Volume setup earlier in the stack to support Cloudera Agent Install Re-worked Sanity checking for Block Volume detection & setup Python fix for reading DB passwords Corrected an error with Master Volume attachment count
1 parent a95a965 commit 80f6dac

File tree

5 files changed

+193
-165
lines changed

5 files changed

+193
-165
lines changed

scripts/boot.sh

Lines changed: 158 additions & 124 deletions
Original file line numberDiff line numberDiff line change
@@ -92,50 +92,55 @@ tar zxvf mysql-connector-java-5.1.46.tar.gz
9292
mkdir -p /usr/share/java/
9393
cd mysql-connector-java-5.1.46
9494
cp mysql-connector-java-5.1.46-bin.jar /usr/share/java/mysql-connector-java.jar
95-
EXECNAME="Cloudera Agent Install"
96-
rpm --import https://archive.cloudera.com/cdh${cm_major_version}/${cm_version}/redhat7/yum//RPM-GPG-KEY-cloudera
97-
wget http://archive.cloudera.com/cm${cm_major_version}/${cm_version}/redhat7/yum/cloudera-manager.repo -O /etc/yum.repos.d/cloudera-manager.repo
98-
yum install cloudera-manager-agent -y >> $LOG_FILE
99-
export JDK=`ls /usr/lib/jvm | head -n 1`
100-
sudo JAVA_HOME=/usr/lib/jvm/$JDK/jre/ /opt/cloudera/cm-agent/bin/certmanager setup --configure-services
101-
cp /etc/cloudera-scm-agent/config.ini /etc/cloudera-scm-agent/config.ini.orig
102-
sed -e "s/\(server_host=\).*/\1${cm_fqdn}/" -i /etc/cloudera-scm-agent/config.ini
103-
systemctl start cloudera-scm-agent
95+
# Disk Setup Functions
10496
vol_match() {
10597
case $i in
106-
1) disk="oraclevdb";;
107-
2) disk="oraclevdc";;
108-
3) disk="oraclevdd";;
109-
4) disk="oraclevde";;
110-
5) disk="oraclevdf";;
111-
6) disk="oraclevdg";;
112-
7) disk="oraclevdh";;
113-
8) disk="oraclevdi";;
114-
9) disk="oraclevdj";;
115-
10) disk="oraclevdk";;
116-
11) disk="oraclevdl";;
117-
12) disk="oraclevdm";;
118-
13) disk="oraclevdn";;
119-
14) disk="oraclevdo";;
120-
15) disk="oraclevdp";;
121-
16) disk="oraclevdq";;
122-
17) disk="oraclevdr";;
123-
18) disk="oraclevds";;
124-
19) disk="oraclevdt";;
125-
20) disk="oraclevdu";;
126-
21) disk="oraclevdv";;
127-
22) disk="oraclevdw";;
128-
23) disk="oraclevdx";;
129-
24) disk="oraclevdy";;
130-
25) disk="oraclevdz";;
131-
26) disk="oraclevdab";;
132-
27) disk="oraclevdac";;
133-
28) disk="oraclevdad";;
134-
29) disk="oraclevdae";;
135-
30) disk="oraclevdaf";;
136-
31) disk="oraclevdag";;
98+
1) disk="oraclevdb";;
99+
2) disk="oraclevdc";;
100+
3) disk="oraclevdd";;
101+
4) disk="oraclevde";;
102+
5) disk="oraclevdf";;
103+
6) disk="oraclevdg";;
104+
7) disk="oraclevdh";;
105+
8) disk="oraclevdi";;
106+
9) disk="oraclevdj";;
107+
10) disk="oraclevdk";;
108+
11) disk="oraclevdl";;
109+
12) disk="oraclevdm";;
110+
13) disk="oraclevdn";;
111+
14) disk="oraclevdo";;
112+
15) disk="oraclevdp";;
113+
16) disk="oraclevdq";;
114+
17) disk="oraclevdr";;
115+
18) disk="oraclevds";;
116+
19) disk="oraclevdt";;
117+
20) disk="oraclevdu";;
118+
21) disk="oraclevdv";;
119+
22) disk="oraclevdw";;
120+
23) disk="oraclevdx";;
121+
24) disk="oraclevdy";;
122+
25) disk="oraclevdz";;
123+
26) disk="oraclevdab";;
124+
27) disk="oraclevdac";;
125+
28) disk="oraclevdad";;
126+
29) disk="oraclevdae";;
127+
30) disk="oraclevdaf";;
128+
31) disk="oraclevdag";;
137129
esac
138130
}
131+
iscsi_detection() {
132+
iscsiadm -m discoverydb -D -t sendtargets -p 169.254.2.$i:3260 2>&1 2>/dev/null
133+
iscsi_chk=`echo -e $?`
134+
if [ $iscsi_chk = "0" ]; then
135+
iqn[${i}]=`iscsiadm -m discoverydb -D -t sendtargets -p 169.254.2.${i}:3260 | gawk '{print $2}'`
136+
log "-> Discovered volume $((i-1)) - IQN: ${iqn[${i}]}"
137+
continue
138+
else
139+
volume_count="${#iqn[@]}"
140+
log "--> Discovery Complete - ${#iqn[@]} volumes found"
141+
detection_done="1"
142+
fi
143+
}
139144
iscsi_setup() {
140145
log "-> ISCSI Volume Setup - Volume ${i} : IQN ${iqn[$n]}"
141146
iscsiadm -m node -o new -T ${iqn[$n]} -p 169.254.2.${n}:3260
@@ -145,51 +150,45 @@ iscsi_setup() {
145150
iscsiadm -m node -T ${iqn[$n]} -p 169.254.2.${n}:3260 -l
146151
log "--> Volume ${iqn[$n]} done"
147152
}
148-
iscsi_target_only(){
149-
log "-->Logging into Volume ${iqn[$n]}"
150-
su - opc -c "sudo iscsiadm -m node -T ${iqn[$n]} -p 169.254.2.${n}:3260 -l"
151-
}
152153
EXECNAME="DISK DETECTION"
153154
log "->Begin Block Volume Detection Loop"
154155
detection_flag="0"
155156
while [ "$detection_flag" = "0" ]; do
156-
detection_done="0"
157-
log "-- Detecting Block Volumes --"
158-
for i in `seq 2 33`; do
159-
if [ $detection_done = "0" ]; then
160-
iscsiadm -m discoverydb -D -t sendtargets -p 169.254.2.$i:3260 2>&1 2>/dev/null
161-
iscsi_chk=`echo -e $?`
162-
if [ $iscsi_chk = "0" ]; then
163-
iqn[${i}]=`iscsiadm -m discoverydb -D -t sendtargets -p 169.254.2.${i}:3260 | gawk '{print $2}'`
164-
log "-> Discovered volume $((i-1)) - IQN: ${iqn[${i}]}"
165-
continue
166-
else
167-
volume_count="${#iqn[@]}"
168-
log "--> Discovery Complete - ${#iqn[@]} volumes found"
169-
detection_done="1"
170-
fi
157+
detection_done="0"
158+
log "-- Detecting Block Volumes --"
159+
for i in `seq 2 33`; do
160+
if [ $detection_done = "0" ]; then
161+
iscsi_detection
171162
fi
172-
done;
173-
total_volume_count=$((block_volume_count+2))
174-
if [ "$volume_count" = "0" ]; then
175-
log "-- $volume_count Block Volumes detected, sleeping 15 then retry --"
176-
sleep 15
177-
continue
178-
elif [ "$volume_count" != "$total_volume_count" ]; then
179-
log "-- Sanity Check Failed - $volume_count Volumes found, $total_volume_count expected. Re-running --"
180-
sleep 15
181-
continue
182-
elif [ "$volume_count" = "$total_volume_count" ]; then
183-
log "-- Setup for ${#iqn[@]} Block Volumes --"
184-
for i in `seq 1 ${#iqn[@]}`; do
185-
n=$((i+1))
186-
iscsi_setup
187-
done;
188-
detection_flag="1"
189-
else
190-
log "-- Repeating Detection --"
191-
continue
192-
fi
163+
done;
164+
master_check=`hostname | grep master && echo -e $?`
165+
bastion_check=`hostname | grep bastion && echo -e $?`
166+
if [ $master_check = "0" ]; then
167+
total_volume_count=3
168+
elif [ $bastion_check = "0" ]; then
169+
total_volume_count=2
170+
else
171+
total_volume_count=$((block_volume_count+2))
172+
fi
173+
if [ "$volume_count" = "0" ]; then
174+
log "-- $volume_count Block Volumes detected, sleeping 15 then retry --"
175+
sleep 15
176+
continue
177+
elif [ "$volume_count" != "$total_volume_count" ]; then
178+
log "-- Sanity Check Failed - $volume_count Volumes found, $total_volume_count expected. Re-running --"
179+
sleep 15
180+
continue
181+
elif [ "$volume_count" = "$total_volume_count" ]; then
182+
log "-- Setup for ${#iqn[@]} Block Volumes --"
183+
for i in `seq 1 ${#iqn[@]}`; do
184+
n=$((i+1))
185+
iscsi_setup
186+
done;
187+
detection_flag="1"
188+
else
189+
log "-- Repeating Detection --"
190+
continue
191+
fi
193192
done;
194193

195194
EXECNAME="DISK PROVISIONING"
@@ -201,6 +200,22 @@ data_mount () {
201200
echo "UUID=$UUID /data$dcount ext4 defaults,noatime,discard,barrier=0 0 1" | tee -a /etc/fstab
202201
}
203202

203+
block_data_mount () {
204+
log "-->Mounting /dev/oracleoci/$disk to /data$dcount"
205+
mkdir -p /data$dcount
206+
mount -o noatime,barrier=1 -t ext4 /dev/oracleoci/$disk /data$dcount
207+
UUID=`lsblk -no UUID /dev/oracleoci/$disk`
208+
echo "UUID=$UUID /data$dcount ext4 defaults,_netdev,nofail,noatime,discard,barrier=0 0 2" | tee -a /etc/fstab
209+
}
210+
EXECNAME="DISK PROVISIONING"
211+
data_mount () {
212+
log "-->Mounting /dev/$disk to /data$dcount"
213+
mkdir -p /data$dcount
214+
mount -o noatime,barrier=1 -t ext4 /dev/$disk /data$dcount
215+
UUID=`lsblk -no UUID /dev/$disk`
216+
echo "UUID=$UUID /data$dcount ext4 defaults,noatime,discard,barrier=0 0 1" | tee -a /etc/fstab
217+
}
218+
204219
block_data_mount () {
205220
log "-->Mounting /dev/oracleoci/$disk to /data$dcount"
206221
mkdir -p /data$dcount
@@ -212,53 +227,72 @@ EXECNAME="DISK SETUP"
212227
log "->Checking for disks..."
213228
dcount=0
214229
for disk in `ls /dev/ | grep nvme | grep n1`; do
215-
log "-->Processing /dev/$disk"
216-
mke2fs -F -t ext4 -b 4096 -E lazy_itable_init=1 -O sparse_super,dir_index,extent,has_journal,uninit_bg -m1 /dev/$disk
217-
data_mount
218-
dcount=$((dcount+1))
230+
log "-->Processing /dev/$disk"
231+
mke2fs -F -t ext4 -b 4096 -E lazy_itable_init=1 -O sparse_super,dir_index,extent,has_journal,uninit_bg -m1 /dev/$disk
232+
data_mount
233+
dcount=$((dcount+1))
219234
done;
220-
if [ ${#iqn[@]} -gt 0 ]; then
235+
if [ ${#iqn[@]} -gt 0 ]; then
221236
for i in `seq 1 ${#iqn[@]}`; do
222-
n=$((i+1))
223-
dsetup="0"
224-
while [ $dsetup = "0" ]; do
225-
vol_match
226-
log "-->Checking /dev/oracleoci/$disk"
227-
if [ -h /dev/oracleoci/$disk ]; then
228-
case $disk in
229-
oraclevdb)
230-
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
231-
log "--->Mounting /dev/oracleoci/$disk to /var/log/cloudera"
232-
mkdir -p /var/log/cloudera
233-
mount -o noatime,barrier=1 -t ext4 /dev/oracleoci/$disk /var/log/cloudera
234-
UUID=`lsblk -no UUID /dev/oracleoci/$disk`
235-
echo "UUID=$UUID /var/log/cloudera ext4 defaults,_netdev,nofail,noatime,discard,barrier=0 0 2" | tee -a /etc/fstab
236-
mkdir -p /var/log/cloudera/cloudera-scm-agent
237-
ln -s /var/log/cloudera/cloudera-scm-agent /var/log/cloudera-scm-agent
238-
;;
239-
oraclevdc)
240-
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
241-
log "--->Mounting /dev/oracleoci/$disk to /opt/cloudera"
242-
mkdir -p /opt/cloudera
243-
mount -o noatime,barrier=1 -t ext4 /dev/oracleoci/$disk /opt/cloudera
244-
UUID=`lsblk -no UUID /dev/oracleoci/$disk`
245-
echo "UUID=$UUID /opt/cloudera ext4 defaults,_netdev,nofail,noatime,discard,barrier=0 0 2" | tee -a /etc/fstab
246-
;;
247-
*)
248-
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
249-
block_data_mount
250-
dcount=$((dcount+1))
251-
;;
252-
esac
253-
/sbin/tune2fs -i0 -c0 /dev/oracleoci/$disk
254-
dsetup="1"
255-
else
256-
log "--->${disk} not found, running ISCSI again."
257-
iscsi_target_only
258-
sleep 5
259-
fi
260-
done;
237+
n=$((i+1))
238+
dsetup="0"
239+
while [ $dsetup = "0" ]; do
240+
vol_match
241+
log "-->Checking /dev/oracleoci/$disk"
242+
if [ -h /dev/oracleoci/$disk ]; then
243+
case $disk in
244+
oraclevdb)
245+
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
246+
log "--->Mounting /dev/oracleoci/$disk to /var/log/cloudera"
247+
mkdir -p /var/log/cloudera
248+
mount -o noatime,barrier=1 -t ext4 /dev/oracleoci/$disk /var/log/cloudera
249+
UUID=`lsblk -no UUID /dev/oracleoci/$disk`
250+
echo "UUID=$UUID /var/log/cloudera ext4 defaults,_netdev,nofail,noatime,discard,barrier=0 0 2" | tee -a /etc/fstab
251+
mkdir -p /var/log/cloudera/cloudera-scm-agent
252+
ln -s /var/log/cloudera/cloudera-scm-agent /var/log/cloudera-scm-agent
253+
;;
254+
oraclevdc)
255+
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
256+
log "--->Mounting /dev/oracleoci/$disk to /opt/cloudera"
257+
mkdir -p /opt/cloudera
258+
mount -o noatime,barrier=1 -t ext4 /dev/oracleoci/$disk /opt/cloudera
259+
UUID=`lsblk -no UUID /dev/oracleoci/$disk`
260+
echo "UUID=$UUID /opt/cloudera ext4 defaults,_netdev,nofail,noatime,discard,barrier=0 0 2" | tee -a /etc/fstab
261+
;;
262+
*)
263+
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
264+
block_data_mount
265+
dcount=$((dcount+1))
266+
;;
267+
esac
268+
/sbin/tune2fs -i0 -c0 /dev/oracleoci/$disk
269+
dsetup="1"
270+
else
271+
log "--->${disk} not found, running ISCSI again."
272+
log "-- Re-Running Detection & Setup Block Volumes --"
273+
detection_done="0"
274+
log "-- Detecting Block Volumes --"
275+
for i in `seq 2 33`; do
276+
if [ $detection_done = "0" ]; then
277+
iscsi_detection
278+
fi
279+
done;
280+
for i in `seq 1 ${#iqn[@]}`; do
281+
n=$((i+1))
282+
iscsi_setup
283+
done
284+
fi
285+
done;
261286
done;
262287
fi
288+
EXECNAME="Cloudera Agent Install"
289+
rpm --import https://archive.cloudera.com/cdh${cm_major_version}/${cm_version}/redhat7/yum//RPM-GPG-KEY-cloudera
290+
wget http://archive.cloudera.com/cm${cm_major_version}/${cm_version}/redhat7/yum/cloudera-manager.repo -O /etc/yum.repos.d/cloudera-manager.repo
291+
yum install cloudera-manager-agent -y >> $LOG_FILE
292+
export JDK=`ls /usr/lib/jvm | head -n 1`
293+
sudo JAVA_HOME=/usr/lib/jvm/$JDK/jre/ /opt/cloudera/cm-agent/bin/certmanager setup --configure-services
294+
cp /etc/cloudera-scm-agent/config.ini /etc/cloudera-scm-agent/config.ini.orig
295+
sed -e "s/\(server_host=\).*/\1${cm_fqdn}/" -i /etc/cloudera-scm-agent/config.ini
296+
systemctl start cloudera-scm-agent
263297
EXECNAME="END"
264298
log "->DONE"

scripts/cloudera_manager_boot.sh

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,15 @@ log() {
55
}
66
EXECNAME="Metadata Extraction"
77
log "->Deployment Script Decode"
8-
curl -L http://169.254.169.254/opc/v1/instance/metadata/deploy_on_oci | base64 -d >> deploy_on_oci.py.gz
8+
curl -L http://169.254.169.254/opc/v1/instance/metadata/deploy_on_oci | base64 -d > /var/lib/cloud/instance/scripts/deploy_on_oci.py.gz
99
log "-->Extract"
10-
gunzip deploy_on_oci.py.gz >> $LOG_FILE
10+
gunzip /var/lib/cloud/instance/scripts/deploy_on_oci.py.gz >> $LOG_FILE
1111
log "->CMS Setup Script Decode"
12-
curl -L http://169.254.169.254/opc/v1/instance/metadata/cm_install | base64 -d >> cms_mysql.sh.gz
12+
curl -L http://169.254.169.254/opc/v1/instance/metadata/cm_install | base64 -d > /var/lib/cloud/instance/scripts/cms_mysql.sh.gz
1313
log"-->Extract"
14-
gunzip cms_mysql.sh.gz
15-
chmod +x cms_mysql.sh
14+
gunzip /var/lib/cloud/instance/scripts/cms_mysql.sh.gz
15+
chmod +x /var/lib/cloud/instance/scripts/cms_mysql.sh
1616
EXECNAME="CMS Setup"
1717
log "->Execute"
18+
cd /var/lib/cloud/instance/scripts/
1819
./cms_mysql.sh

scripts/cms_mysql.sh

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,7 @@ cp /etc/cloudera-scm-agent/config.ini /etc/cloudera-scm-agent/config.ini.orig
130130
sed -e "s/\(server_host=\).*/\1${cm_fqdn}/" -i /etc/cloudera-scm-agent/config.ini
131131
#export JDK=`ls /usr/lib/jvm | head -n 1`
132132
#sudo JAVA_HOME=/usr/lib/jvm/$JDK/jre/ /opt/cloudera/cm-agent/bin/certmanager setup --configure-services
133+
chown -R cloudera-scm:cloudera-scm /var/lib/cloudera-scm-agent/
133134
systemctl start cloudera-scm-agent
134135

135136
create_random_password()
@@ -354,11 +355,11 @@ for i in `seq 1 ${#iqn[@]}`; do
354355
done;
355356
done;
356357
fi
357-
EXECNAME="Clouera Manager"
358+
EXECNAME="Cloudera Manager"
358359
log "->Starting Cloudera Manager"
359360
chown -R cloudera-scm:cloudera-scm /etc/cloudera-scm-server
360361
systemctl start cloudera-scm-server
361-
EXECNAME="Cluster Build"
362+
EXECNAME="Cloudera Enterprise Data Hub"
362363
log "->Installing Python Pre-reqs"
363364
sudo yum install python python-pip -y >> $LOG_FILE
364365
sudo pip install --upgrade pip >> $LOG_FILE
@@ -377,15 +378,13 @@ while [ $detection_flag = "0" ]; do
377378
detection_flag="1"
378379
fi
379380
done;
380-
worker_fqdn_list=""
381+
fqdn_list="cdh-utility-1.public${availability_domain}.cdhvcn.oraclevcn.com,cdh-master-1.private${availability_domain}.cdhvcn.oraclevcn.com,cdh-master-2.private${availability_domain}.cdhvcn.oraclevcn.com"
381382
num_workers=${#worker_fqdn[@]}
382383
for w in `seq 1 $num_workers`; do
383-
if [ $w = "1" ]; then
384-
worker_fqdn_list="${worker_fqdn[$w]}"
385-
else
386-
worker_fqdn_list=`echo "${worker_fqdn_list},${worker_fqdn[$w]}"`
387-
fi
384+
fqdn_list=`echo "${fqdn_list},${worker_fqdn[$w]}"`
388385
done;
389-
python deploy_on_oci.py -S -m ${cm_ip} -i ${worker_fqdn_list} -d ${worker_disk_count} -w ${worker_shape} -n ${num_workers} -cdh ${cdh_version} -ad ${availability_domain} >> $LOG_FILE
390-
EXECNAME="END"
386+
log "-->Host List: ${fqdn_list}"
387+
log "-->Cluster Build"
388+
log "---> python deploy_on_oci.py -S -m ${cm_ip} -i ${fqdn_list} -d ${worker_disk_count} -w ${worker_shape} -n ${num_workers} -cdh ${cdh_version} -ad ${availability_domain}"
389+
python /var/lib/cloud/instance/scripts/deploy_on_oci.py -S -m ${cm_ip} -i ${fqdn_list} -d ${worker_disk_count} -w ${worker_shape} -n ${num_workers} -cdh ${cdh_version} -ad ${availability_domain} >> $LOG_FILE
391390
log "->DONE"

0 commit comments

Comments
 (0)