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

Commit 222a3b9

Browse files
committed
Local KDC enabled, Secure Cluster by default.
1 parent efadeab commit 222a3b9

File tree

7 files changed

+546
-174
lines changed

7 files changed

+546
-174
lines changed

v6/compute.tf

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ resource "oci_core_instance" "Utility" {
55
hostname_label = "CDH-Utility-1"
66
shape = "${var.master_instance_shape}"
77
subnet_id = "${oci_core_subnet.public.*.id[var.availability_domain - 1]}"
8+
fault_domain = "FAULT-DOMAIN-3"
89

910
source_details {
1011
source_type = "image"
@@ -30,6 +31,7 @@ resource "oci_core_instance" "Master" {
3031
hostname_label = "CDH-Master-${format("%01d", count.index+1)}"
3132
shape = "${var.master_instance_shape}"
3233
subnet_id = "${oci_core_subnet.private.*.id[var.availability_domain - 1]}"
34+
fault_domain = "FAULT-DOMAIN-${(count.index%3)+1}"
3335

3436
source_details {
3537
source_type = "image"
@@ -79,6 +81,7 @@ resource "oci_core_instance" "Worker" {
7981
hostname_label = "CDH-Worker-${format("%01d", count.index+1)}"
8082
shape = "${var.worker_instance_shape}"
8183
subnet_id = "${oci_core_subnet.private.*.id[var.availability_domain - 1]}"
84+
fault_domain = "FAULT-DOMAIN-${(count.index%3)+1}"
8285

8386
source_details {
8487
source_type = "image"

v6/outputs.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@ output "0 - INFO - Block Volume Size (HDFS)" { value = "${var.data_blocksize_in_
44
output "1 - Bastion SSH Login" { value = "ssh -i ${var.ssh_keypath} opc@${data.oci_core_vnic.bastion_vnic.public_ip_address}" }
55
output "2 - Cloudera Manager URL" { value = "http://${data.oci_core_vnic.utility_node_vnic.public_ip_address}:7180/cmf/" }
66
output "3 - Cloudera Manager Recent Commands" { value = "http://${data.oci_core_vnic.utility_node_vnic.public_ip_address}:7180/cmf/commands/commands" }
7-
output "4 - DEPLOYMENT COMMAND" { value = "python scripts/deploy_on_oci.py -m ${data.oci_core_vnic.utility_node_vnic.public_ip_address} -d ${ceil(((var.hdfs_usable_in_gbs*3)/var.data_blocksize_in_gbs)/var.worker_node_count)} -w ${var.worker_instance_shape}" }
7+
output "4 - DEPLOYMENT COMMAND" { value = "python scripts/deploy_on_oci.py -B -m ${data.oci_core_vnic.utility_node_vnic.public_ip_address} -d ${ceil(((var.hdfs_usable_in_gbs*3)/var.data_blocksize_in_gbs)/var.worker_node_count)} -w ${var.worker_instance_shape}" }

v6/scripts/boot.sh

Lines changed: 66 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,68 @@ log "->TUNING START"
1313
# HOST TUNINGS
1414
#
1515

16+
# Disable SELinux
17+
sed -i.bak 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
18+
setenforce 0
19+
1620
## Modify resolv.conf to ensure DNS lookups work
1721
rm -f /etc/resolv.conf
1822
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
1923
echo "nameserver 169.254.169.254" >> /etc/resolv.conf
2024

21-
## Install Java
22-
yum install java-1.8.0-openjdk.x86_64 -y
25+
EXECNAME="JAVA - KERBEROS"
26+
log "->INSTALL"
27+
## Install Java & Kerberos client
28+
yum install java-1.8.0-openjdk.x86_64 krb5-workstation -y
29+
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/
2342
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"
2478
## Disable Transparent Huge Pages
2579
echo never | tee -a /sys/kernel/mm/transparent_hugepage/enabled
2680
echo "echo never | tee -a /sys/kernel/mm/transparent_hugepage/enabled" | tee -a /etc/rc.local
@@ -44,6 +98,7 @@ echo net.ipv4.tcp_low_latency=1 >> /etc/sysctl.conf
4498
## Tune File System options
4599
sed -i "s/defaults 1 1/defaults,noatime 0 0/" /etc/fstab
46100

101+
log "->SSH"
47102
## Enable root login via SSH key
48103
cp /root/.ssh/authorized_keys /root/.ssh/authorized_keys.bak
49104
cp /home/opc/.ssh/authorized_keys /root/.ssh/authorized_keys
@@ -55,27 +110,30 @@ hbase - nofile 32768
55110
hbase - nproc 2048" >> /etc/security/limits.conf
56111
ulimit -n 262144
57112

113+
log "->FirewallD"
58114
systemctl stop firewalld
59115
systemctl disable firewalld
60116

61117
## Post Tuning Execution Below
62-
118+
EXECNAME="MYSQL Connector"
63119
## MySQL Connector Install
120+
log "->INSTALL"
64121
wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.46.tar.gz
65122
tar zxvf mysql-connector-java-5.1.46.tar.gz
66123
mkdir -p /usr/share/java/
67124
cd mysql-connector-java-5.1.46
68125
cp mysql-connector-java-5.1.46-bin.jar /usr/share/java/mysql-connector-java.jar
69126

127+
EXECNAME="SLEEP"
128+
log "->START"
129+
sleep 300
130+
# Sleep for 5 minutes to allow block volume attachments time to finish
131+
log "->DONE"
132+
70133
#
71134
# DISK SETUP
72135
#
73136

74-
EXECNAME="SLEEP"
75-
## SLEEP HERE - GIVE TIME FOR BLOCK VOLUMES TO ATTACH
76-
log "->SLEEP"
77-
sleep 180
78-
79137
vol_match() {
80138
case $i in
81139
1) disk="oraclevdb";;
@@ -225,57 +283,5 @@ for i in `seq 1 ${#iqn[@]}`; do
225283
done;
226284
done;
227285
fi
228-
# Kerberos Workstation Setup
229-
EXECNAME="KERBEROS"
230-
log "-> INSTALL"
231-
yum install krb5-workstation
232-
233-
KERBEROS_PASSWORD="SOMEPASSWORD"
234-
OPC_USER_PASSWORD="somepassword"
235-
kdc_server="cdh-utility-1"
236-
kdc_fqdn=`host $kdc_server | gawk '{print $1}'`
237-
realm="hadoop.com"
238-
REALM="HADOOP.COM"
239-
log "-> CONFIG"
240-
rm -f /etc/krb5.conf
241-
cat > /etc/krb5.conf << EOF
242-
# Configuration snippets may be placed in this directory as well
243-
includedir /etc/krb5.conf.d/
244-
245-
[libdefaults]
246-
default_realm = ${REALM}
247-
dns_lookup_realm = false
248-
dns_lookup_kdc = false
249-
rdns = false
250-
ticket_lifetime = 24h
251-
renew_lifetime = 7d
252-
forwardable = true
253-
udp_preference_limit = 1000000
254-
default_tkt_enctypes = des-cbc-md5 des-cbc-crc des3-cbc-sha1
255-
default_tgs_enctypes = des-cbc-md5 des-cbc-crc des3-cbc-sha1
256-
permitted_enctypes = des-cbc-md5 des-cbc-crc des3-cbc-sha1
257-
258-
[realms]
259-
${REALM} = {
260-
kdc = ${kdc_fqdn}:88
261-
admin_server = ${kdc_fqdn}:749
262-
default_domain = ${realm}
263-
}
264-
265-
[domain_realm]
266-
.${realm} = ${REALM}
267-
${realm} = ${REALM}
268-
269-
[kdc]
270-
profile = /var/kerberos/krb5kdc/kdc.conf
271-
272-
[logging]
273-
kdc = FILE:/var/log/krb5kdc.log
274-
admin_server = FILE:/var/log/kadmin.log
275-
default = FILE:/var/log/krb5lib.log
276-
EOF
277-
log "-> Principal & ticket"
278-
echo -e "${KERBEROS_PASSWORD}\naddprinc -randkey host/client.${REALM}\nktadd host/kdc.${REALM}" | kadmin -p root/admin
279-
280286
EXECNAME="END"
281287
log "->DONE"

v6/scripts/cm_boot_mysql.sh

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,10 @@ log() {
1010
EXECNAME="TUNING"
1111

1212
log "-> START"
13+
# Disable SELinux
14+
sed -i.bak 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
15+
setenforce 0
16+
1317
## Modify resolv.conf to ensure DNS lookups work
1418
rm -f /etc/resolv.conf
1519
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
@@ -56,9 +60,9 @@ cp /home/opc/.ssh/authorized_keys /root/.ssh/authorized_keys
5660
EXECNAME="KERBEROS"
5761
log "-> INSTALL"
5862

59-
yum -y install krb5-server krb5-libs
63+
yum -y install krb5-server krb5-libs krb5-workstation
6064
KERBEROS_PASSWORD="SOMEPASSWORD"
61-
OPC_USER_PASSWORD="somepassword"
65+
SCM_USER_PASSWORD="somepassword"
6266
kdc_server=$(hostname)
6367
kdc_fqdn=`host $kdc_server | gawk '{print $1}'`
6468
realm="hadoop.com"
@@ -78,9 +82,9 @@ includedir /etc/krb5.conf.d/
7882
renew_lifetime = 7d
7983
forwardable = true
8084
udp_preference_limit = 1000000
81-
default_tkt_enctypes = des-cbc-md5 des-cbc-crc des3-cbc-sha1
82-
default_tgs_enctypes = des-cbc-md5 des-cbc-crc des3-cbc-sha1
83-
permitted_enctypes = des-cbc-md5 des-cbc-crc des3-cbc-sha1
85+
default_tkt_enctypes = rc4-hmac
86+
default_tgs_enctypes = rc4-hmac
87+
permitted_enctypes = rc4-hmac
8488
8589
[realms]
8690
${REALM} = {
@@ -121,19 +125,20 @@ default_realm = ${REALM}
121125
max_life = 10h 0m 0s
122126
max_renewable_life = 7d 0h 0m 0s
123127
master_key_type = des3-hmac-sha1
124-
supported_enctypes = arcfour-hmac:normal des3-hmac-sha1:normal des-cbc-crc:normal des:normal des:v4 des:norealm des:onlyrealm des:afs3
128+
supported_enctypes = rc4-hmac:normal
125129
default_principal_flags = +preauth
126130
}
127131
EOF
128132

129133
rm -f /var/kerberos/krb5kdc/kadm5.acl
130134
cat > /var/kerberos/krb5kdc/kadm5.acl << EOF
131135
*/admin@${REALM} *
136+
cloudera-scm@${REALM} *
132137
EOF
133138

134139
kdb5_util create -r ${REALM} -s -P ${KERBEROS_PASSWORD}
135140

136-
echo -e "addprinc root/admin\n${KERBEROS_PASSWORD}\n${KERBEROS_PASSWORD}\naddprinc opc\n${OPC_USER_PASSWORD}\n${OPC_USER_PASSWORD}\nktadd -k /var/kerberos/krb5kdc/kadm5.keytab kadmin/admin\nktadd -k /var/kerberos/krb5kdc/kadm5.keytab kadmin/changepw\nexit\n" | kadmin.local -r ${REALM}
141+
echo -e "addprinc root/admin\n${KERBEROS_PASSWORD}\n${KERBEROS_PASSWORD}\naddprinc cloudera-scm\n${SCM_USER_PASSWORD}\n${SCM_USER_PASSWORD}\nktadd -k /var/kerberos/krb5kdc/kadm5.keytab kadmin/admin\nktadd -k /var/kerberos/krb5kdc/kadm5.keytab kadmin/changepw\nexit\n" | kadmin.local -r ${REALM}
137142
log "-> START"
138143
systemctl start krb5kdc.service
139144
systemctl start kadmin.service
@@ -147,7 +152,11 @@ rpm --import https://archive.cloudera.com/cdh6/6.1.0/redhat7/yum//RPM-GPG-KEY-cl
147152
wget http://archive.cloudera.com/cm6/6.1.0/redhat7/yum/cloudera-manager.repo -O /etc/yum.repos.d/cloudera-manager.repo
148153
yum install oracle-j2sdk* cloudera-manager-server java-1.8.0-openjdk.x86_64 python-pip -y
149154
pip install psycopg2==2.7.5 --ignore-installed
150-
yum install cloudera-manager-daemons -y
155+
yum install oracle-j2sdk1.8.x86_64 cloudera-manager-daemons cloudera-manager-agent -y
156+
cm_host=`host cdh-utility-1 | gawk '{print $1}'`
157+
cp /etc/cloudera-scm-agent/config.ini /etc/cloudera-scm-agent/config.ini.orig
158+
sed -e "s/\(server_host=\).*/\1${cm_host}/" -i /etc/cloudera-scm-agent/config.ini
159+
systemctl start cloudera-scm-agent
151160

152161
create_random_password()
153162
{

v6/scripts/cm_boot_postgres.sh

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,10 @@ log() {
1010
EXECNAME="TUNING"
1111

1212
log "->START"
13+
# Disable SELinux
14+
sed -i.bak 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
15+
setenforce 0
16+
1317
## Modify resolv.conf to ensure DNS lookups work
1418
rm -f /etc/resolv.conf
1519
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

0 commit comments

Comments
 (0)