Skip to content

Instantly share code, notes, and snippets.

@csabatini
Last active May 12, 2016 21:41
Show Gist options
  • Save csabatini/041c6e24e7336925c0fd1d0673bb0b49 to your computer and use it in GitHub Desktop.
Save csabatini/041c6e24e7336925c0fd1d0673bb0b49 to your computer and use it in GitHub Desktop.
#!/bin/bash
NODE_TYPE=$1
etc_configs() {
echo -e "root soft nofile 32768\nroot hard nofile 32768" >> /etc/security/limits.conf
echo -e "session required pam_limits.so" >> /etc/pam.d/common-session
echo -e "session required pam_limits.so" >> /etc/pam.d/common-session-noninteractive
sed -i 's/%admin ALL=(ALL) ALL/%admin ALL=(ALL) NOPASSWD:ALL/g' /etc/sudoers
cp /etc/fstab ~/
cp /etc/fstab /etc/fstab.original
}
swap_file() {
fallocate -l 56G /mnt/swapfile
chmod 600 /mnt/swapfile
mkswap /mnt/swapfile
swapon /mnt/swapfile
echo "/mnt/swapfile none swap defaults 0 0" >> ~/fstab
}
install_pkgs() {
apt-key adv --recv-keys --keyserver keyserver.ubuntu.com B9733A7A07513CAD
cd /etc/apt/sources.list.d
wget http://public-repo-1.hortonworks.com/ambari/ubuntu12/2.x/updates/2.2.1.0/ambari.list
apt-get update
DEBIAN_FRONTEND=noninteractive apt-get install -y openjdk-7-jdk ntp ambari-agent htop sysstat mdadm
update-rc.d ntp defaults
}
fmt_mount_disks() {
disks=("$@")
((last_idx=${#disks[@]} - 1))
mp=${disks[last_idx]}
unset disks[last_idx]
((last_idx=${#disks[@]} - 1))
b=${disks[last_idx]}
unset disks[last_idx]
i=0
for d in "${disks[@]}"; do
(echo n; echo p; echo 1; echo ; echo ; echo t; echo fd; echo p; echo w;) | fdisk ${d}
mkfs.ext4 ${d}"1"
mp="pd"$i
mkdir -p /media/${mp}
uuid=$(blkid | grep "${d}" | grep -oP '[-a-z0-9]{36}')
echo "UUID=${uuid} /media/${mp} ext4 defaults,noatime,barrier=${b} 0 0" >> ~/fstab
i=$[$i+1]
done
}
disks_realtime() {
HDD=(/dev/sdc /dev/sdd /dev/sde /dev/sdf /dev/sdg /dev/sdh /dev/sdi /dev/sdj /dev/sdk /dev/sdl /dev/sdm\
/dev/sdn /dev/sdo)
SSD=(/dev/sdp /dev/sdq)
fmt_mount_disks "${SSD[@]}" "0" "kafka"
fmt_mount_disks "${HDD[@]}" "1" "main"
}
disks_worker() {
HDD=(/dev/sdc /dev/sdd /dev/sde /dev/sdf /dev/sdg /dev/sdh /dev/sdi /dev/sdj /dev/sdk /dev/sdl\
/dev/sdm /dev/sdn /dev/sdo /dev/sdp /dev/sdq)
fmt_mount_disks "${HDD[@]}" "1" "main"
}
etc_configs
install_pkgs
case "$NODE_TYPE" in
master)
# no additional disks
;;
realtime)
disks_realtime
;;
worker)
disks_worker
;;
(*)
echo "Usage: $0 (master|realtime|worker)"
;;
esac
swap_file
mv ~/fstab /etc/fstab
mount -a
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment