Last active
May 12, 2016 21:41
-
-
Save csabatini/041c6e24e7336925c0fd1d0673bb0b49 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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