#/bin/sh echo "running cloud-init..." HOSTNAME=`hostname` IP_TAG=`echo $HOSTNAME | awk -F "-" '{print $1}'` if [ IP_TAG != "ip" ] then echo "not a eucalyptus image, exit" exit 1; fi IP=`echo $HOSTNAME | awk -F "-" '{print $2"."$3"."$4"."$5}'` #echo -e "\n$IP $HOSTNAME\n" IP_EXISTS=`grep -c "$IP" /etc/hosts` if [ $IP_EXISTS = "0" ] then sudo sh -c "echo '$IP $HOSTNAME' >> /etc/hosts" echo "$IP added to /etc/hosts file" fi
When we want to run hadoop on eucalyptus image, it need set ip address to the hostname first. The image default hostname is like ip-172.18.1.3, which carry ip address information.
So the above script will resolve hostname and set ip address in the host file.