97 lines
2.2 KiB
Bash
97 lines
2.2 KiB
Bash
#!/bin/bash
|
|
|
|
function firstboot_common()
|
|
{
|
|
distro=$(lsb_release -is || :)
|
|
case "$distro" in
|
|
Ubuntu )
|
|
mkdir -p /home/ubuntu/.ssh
|
|
touch /home/ubuntu/.ssh/authorized_keys
|
|
chown -R ubuntu:ubuntu /home/ubuntu
|
|
;;
|
|
Fedora )
|
|
sleep 20
|
|
rm /etc/resolv.conf
|
|
service network restart
|
|
if [ $(lsb_release -rs) -ge '19' ]; then
|
|
user=fedora
|
|
else
|
|
user=ec2-user
|
|
fi
|
|
until [[ -n $(grep "$user:" /etc/passwd) && -n $(cat /etc/group | grep "$user:") ]];
|
|
do
|
|
sleep 1
|
|
done
|
|
chown -R $user:$user /home/$user
|
|
|
|
#TODO: configure iptables (https://bugs.launchpad.net/sahara/+bug/1195744)
|
|
iptables -F
|
|
;;
|
|
CentOS )
|
|
chown -R cloud-user:cloud-user /home/cloud-user
|
|
service iptables stop
|
|
chkconfig iptables off
|
|
;;
|
|
* )
|
|
echo "Unknown distro: $distro. Exiting."
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
chown root:root /mnt
|
|
mkdir -p /mnt/log/hadoop
|
|
chown hadoop:hadoop /mnt/log/hadoop
|
|
}
|
|
|
|
function firstboot_hadoop_v1()
|
|
{
|
|
distro=$(lsb_release -is || :)
|
|
case "$distro" in
|
|
Ubuntu )
|
|
mkdir /run/hadoop
|
|
chown hadoop:hadoop /run/hadoop/
|
|
chown -R ubuntu:ubuntu /etc/hadoop
|
|
;;
|
|
Fedora )
|
|
if [ $(lsb_release -rs) -ge '19' ]; then
|
|
user=fedora
|
|
else
|
|
user=ec2-user
|
|
fi
|
|
chown -R $user:$user /etc/hadoop
|
|
;;
|
|
CentOS )
|
|
chown -R cloud-user:cloud-user /etc/hadoop
|
|
;;
|
|
* )
|
|
echo "Unknown distro: $distro. Exiting."
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
mkdir -p /var/run/hadoop
|
|
chown hadoop:hadoop /var/run/hadoop
|
|
}
|
|
|
|
DIB_HADOOP_VERSION=
|
|
|
|
firstboot_common
|
|
|
|
if [[ "$DIB_HADOOP_VERSION" < "2.0.0" ]];
|
|
then
|
|
firstboot_hadoop_v1
|
|
fi
|
|
|
|
# Clean
|
|
if [ "$distro" == "Ubuntu" ]; then
|
|
if [ -f /etc/rc.local.old ]; then
|
|
mv /etc/rc.local.old /etc/rc.local
|
|
fi
|
|
else
|
|
if [ -f /etc/rc.d/rc.local.old ]; then
|
|
mv /etc/rc.d/rc.local.old /etc/rc.d/rc.local
|
|
fi
|
|
fi
|
|
|
|
exit 0
|