Changeset 167 for nutchez-0.2/src/test/client_install_func.sh
- Timestamp:
- Jun 8, 2010, 5:05:25 PM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
nutchez-0.2/src/test/client_install_func.sh
r159 r167 8 8 9 9 # 正式版之後,記的將不必要的 echo 拿掉 10 function debug_info () { 11 if [ $? -eq 0 ]; then 12 echo -e "\033[1;35;40m info - $1 \033[0m" 13 fi 14 } 15 16 function show_info () { 17 if [ $? -eq 0 ]; then 18 echo -e "\033[1;32;40m $1 \033[0m" 19 fi 20 } 10 21 11 22 … … 13 24 function check_root(){ 14 25 # 正式版後可拿掉此 echo 15 echo -e "\n\033[31m= check_root (debug) =\033[0m"16 if [ $USER != "root" ]; then17 echo -e "\nPlzChange root to execute it!!!"18 exit 19 fi26 debug_info "check_root" 27 if [ $USER != "root" ]; then 28 show_info "Please Change root to execute it!!!" 29 exit 30 fi 20 31 # 正式版後可拿掉此 echo 21 echo -e"Identify is root."32 show_info "Identify is root." 22 33 } 23 34 … … 25 36 # 查出此主機的作業系統,以及版本 26 37 function check_systemInfo(){ 27 echo -e "\n\033[31m= check_systemInfo (debug) =\033[0m"28 echo -e "\nYour system information are:"38 debug_info "check systemInfo" 39 show_info "Your system information are:" 29 40 Linux_Distribution=$(lsb_release -a 2> /dev/null | grep "Distributor ID:" | awk '{print $3}') 30 41 Linux_Version=$(lsb_release -a 2> /dev/null | grep "Release" | awk '{print $2}') 31 echo $Linux_Distribution , $Linux_Version 42 show_info "$Linux_Distribution , $Linux_Version" 32 43 } 33 44 … … 35 46 # 安裝需要的相依套件 (目前只支援 deb 套件的系統自動安裝,yum或其他套件系統的則需手動安裝) 36 47 function install_packages(){ 37 # deb 系列系統38 echo -e "\n\033[31m= install_packages (debug) =\033[0m"39 echo -e "\nCheck dependent packages"40 if [ "$Linux_Distribution" == "Ubuntu" ] || [ "$Linux_Distribution" == "Debian" ] ;then48 # deb 系列系統 49 debug_info "install_packages" 50 debug_info "Check dependent packages" 51 if [ "$Linux_Distribution" == "Ubuntu" ] || [ "$Linux_Distribution" == "Debian" ] ;then 41 52 echo -e "\nIt will install sime packages (expect, ssh, and dialog).\n" 42 53 aptitude install -y expect ssh dialog 43 # rpm 系列系統44 elif [ "$Linux_Distribution" == "Fedora" ] || [ "$Linux_Distribution" == "CentOS" ] ;then45 echo -e "Plzinstall expect, ssh, and dialog."46 exit 47 else48 echo -e "Plzinstall expect, ssh, and dialog."49 exit 50 fi54 # rpm 系列系統 55 elif [ "$Linux_Distribution" == "Fedora" ] || [ "$Linux_Distribution" == "CentOS" ] ;then 56 show_info "Please install expect, ssh, and dialog." 57 exit 58 else 59 show_info "Please install expect, ssh, and dialog." 60 exit 61 fi 51 62 } 52 63 … … 55 66 # 目前先檢查是否有/opt/nutchez 這個資料夾即可 56 67 function check_nez_installed(){ 57 echo -e "\n\033[31m= chcheck_nez_installed (debug) =\033[0m"58 if [ -d /opt/nutchez ]; then59 echo -e "\nSystem already had NutchEz."60 exit 61 else62 echo -e "\nSystem does not has NutchEz."63 fi68 debug_info "chcheck_nez_installed" 69 if [ -d /opt/nutchez ]; then 70 show_info "System already had NutchEz." 71 exit 72 else 73 show_info "System does not has NutchEz." 74 fi 64 75 } 65 76 … … 69 80 # (3)系統有安裝但Sun Java 在非預設路徑下 (4)以正確安裝 Sun JAVA 預設路徑下 70 81 function check_sunJava(){ 71 echo -e "\n\033[31m= check_sunJava (debug) =\033[0m"72 echo -e "\nNutchEz need Sun Java JDK 1.6.x or above version"73 74 javaPath="/usr"75 yesno="no"76 choice="3"77 78 79 80 81 82 debug_info "check_sunJava" 83 debug_info "NutchEz need Sun Java JDK 1.6.x or above version" 84 85 javaPath="/usr" 86 yesno="no" 87 choice="3" 88 89 if [ -e $javaPath/bin/java ]; then 90 JAVA_org=$($javaPath/bin/java -version 2>&1 | grep "Java(TM)") 91 JAVA_version=$($javaPath/bin/java -version 2>&1 | grep "java version" | \ 92 awk '{print $3}' | cut -d "." -f1-2 | cut -d "\"" -f2) 82 93 83 if [ "$JAVA_org" == "" ]; then 84 echo "Java is not Sun version, plz install sun Java 1.6.X" 85 echo -e "\nPlz input your choice: " 86 echo "(1)System don't have Sun Java (2)Sun Java is in other path (3)Exit" 87 read -p "plz input (1/2/3): " choice 88 case $choice in 89 "1") 90 echo -e "Plz install Sun Java manually!" 91 exit 92 ;; 93 "2") 94 read -p "Input Sun Java home path(ex. '/usr/lib/jvm/java-6-sun-1.6.0.12' or using default '/usr' ): " javaPath 95 ;; 96 "*") 97 exit 98 ;; 99 esac 100 101 if [ $choice == "2" ]; then 102 JAVA_org=$($javaPath/bin/java -version 2>&1 | grep "Java(TM)") 103 JAVA_version=$($javaPath/bin/java -version 2>&1 | grep "java version" | \ 104 awk '{print $3}' | cut -d "." -f1-2 | cut -d "\"" -f2) 105 106 if [ "$JAVA_org" == "" ]; then 107 echo -e "It is not Sun Java! Plz install Sun Java manually!" 108 exit 109 fi 94 if [ "$JAVA_org" == "" ]; then 95 show_info "Java is not Sun version, plz install sun Java 1.6.X" 96 show_info "Please input your choice: " 97 show_info "(1)System don't have Sun Java (2)Sun Java is in other path (3)Exit" 98 read -p "plz input (1/2/3): " choice 99 case $choice in 100 "1") 101 show_info "Please install Sun Java manually!" 102 exit 103 ;; 104 "2") 105 read -p "Input Sun Java home path(ex. '/usr/lib/jvm/java-6-sun-1.6.0.12' or using default '/usr' ): " javaPath 106 ;; 107 "*") 108 exit 109 ;; 110 esac 111 112 if [ $choice == "2" ]; then 113 JAVA_org=$($javaPath/bin/java -version 2>&1 | grep "Java(TM)") 114 JAVA_version=$($javaPath/bin/java -version 2>&1 | grep "java version" | \ 115 awk '{print $3}' | cut -d "." -f1-2 | cut -d "\"" -f2) 116 117 if [ "$JAVA_org" == "" ]; then 118 show_info "It is not Sun Java! Plz install Sun Java manually!" 119 exit 110 120 fi 121 fi 111 122 fi 112 123 113 124 large16=$(echo "$JAVA_version >= 1.6" | bc) 114 125 if [ "${large16}" == 0 ]; then 115 echo "Java version is too old (it need 1.6.X above)"116 126 show_info "Java version is too old (it need 1.6.X above)" 127 exit 117 128 fi 118 129 119 echo "System has Sun Java 1.6 above version."120 else 121 echo "Plzinstall Sun JAVA 1.6.X or above version"122 123 fi 124 125 unset JAVA_org126 unset JAVA_version130 show_info "System has Sun Java 1.6 above version." 131 else 132 show_info "Please install Sun JAVA 1.6.X or above version" 133 exit 134 fi 135 136 unset JAVA_org 137 unset JAVA_version 127 138 } 128 139 … … 130 141 # 檢查是否有安裝openssh, openssh-server 131 142 function check_ssh(){ 132 echo -e "\n\033[31m= check_ssh (debug) =\033[0m"133 if [ -e /usr/bin/ssh ]; then134 echo -e "\nSystem has ssh."135 else136 echo "Plzinstall ssh."137 exit 138 fi139 140 if [ -e /usr/sbin/sshd ]; then141 echo "System has ssh Server (sshd)."142 else143 echo "Plzinstall ssh Server (sshd)."144 exit 145 fi143 debug_info "check_ssh" 144 if [ -e /usr/bin/ssh ]; then 145 show_info "System has ssh." 146 else 147 show_info "Please install ssh." 148 exit 149 fi 150 151 if [ -e /usr/sbin/sshd ]; then 152 show_info "System has ssh Server (sshd)." 153 else 154 show_info "Please install ssh Server (sshd)." 155 exit 156 fi 146 157 } 147 158 … … 149 160 # 檢查是否有安裝dialog 150 161 function check_dialog(){ 151 echo -e "\n\033[31m= check_dialog (debug) =\033[0m"152 if [ -e /usr/bin/dialog ]; then153 echo -e "\nSystem has dialog."154 else155 echo "Plzinstall dialog."156 exit 157 fi162 debug_info "check_dialog" 163 if [ -e /usr/bin/dialog ]; then 164 show_info "System has dialog." 165 else 166 show_info "Please install dialog." 167 exit 168 fi 158 169 } 159 170 … … 163 174 # 此步驟若無法連到 master 則跳出 164 175 function scp_master_nutchuser_sshkey(){ 165 echo -e "\n\033[31m= scp_master_nutchuser_sshkey (debug) =\033[0m"166 echo -e"mkdir -p /home/nutchuser/"176 debug_info "scp_master_nutchuser_sshkey" 177 debug_info "mkdir -p /home/nutchuser/" 167 178 mkdir -p /home/nutchuser/.ssh/ 168 179 rm -fr /home/nutchuser/.ssh/* 169 170 180 unset Nutchuser_Passwd2 171 181 172 echo -e"scp nutchuser@$1:~/.ssh /home/nutchuser/"182 debug_info "scp nutchuser@$1:~/.ssh /home/nutchuser/" 173 183 expect -c "spawn scp -r -o StrictHostKeyChecking=no nutchuser@$1:~/.ssh /home/nutchuser/ 174 184 expect \"*: \" { send \"$Nutchuser_Passwd\r\" } … … 177 187 178 188 if [ -e "/home/nutchuser/.ssh/authorized_keys" ]; then 179 echo -e "\nscp correct."189 show_info "scp correct." 180 190 else 181 echo -e "\nscp is error,\n(1)plzcheck nutchuser password in server\n(2)nutchuser's authorized_keys in server\n(3)server's network status"182 183 191 show_info "scp error,\n(1)plese check nutchuser password in server\n(2)nutchuser's authorized_keys in server\n(3)server's network status" 192 exit 193 fi 184 194 ssh-add /home/nutchuser/.ssh/id_rsa 185 echo "chown -R nutchuser:nutchuser /home/nutchuser/.ssh"195 debug_info "chown -R nutchuser:nutchuser /home/nutchuser/.ssh" 186 196 chown -R nutchuser:nutchuser /home/nutchuser/.ssh 187 197 } 188 189 198 190 199 # 新增nutchuser 帳號時用 Nutchuser_Passwd 當密碼 191 200 function creat_nutchuser_account(){ 192 echo -e "\n\033[31m= creat_nutchuser_account (debug) =\033[0m" 193 194 while [ "$Nutchuser_Passwd" != "$Nutchuser_Passwd2" ] 195 do 196 echo -e "\n" 197 read -sp "Plz input nutchuser password of master node: " Nutchuser_Passwd 198 echo 199 read -sp "plz input nutchuser password, again: " Nutchuser_Passwd2 200 echo 201 debug_info "creat_nutchuser_account" 202 while [ "$Nutchuser_Passwd" != "$Nutchuser_Passwd2" ] 203 do 204 echo -e "\n" 205 read -sp "Plz input nutchuser password of master node: " Nutchuser_Passwd 206 echo 207 read -sp "plz input nutchuser password, again: " Nutchuser_Passwd2 208 echo 201 209 if [ "$Nutchuser_Passwd" == "$Nutchuser_Passwd2" ]; then 202 echo "Two Passwords match."210 show_info "Two Passwords match." 203 211 else 204 echo "Two passwords don't match, plzre-input nutchuser's password."212 show_info "Two passwords don't match, please re-input nutchuser's password." 205 213 fi 206 done 207 208 unset Nutchuser_Passwd2 209 210 if [ $(cat /etc/passwd | grep nutchuser) ]; then 211 echo "System already has nutchuser, change nutchuser password." 214 done 215 unset Nutchuser_Passwd2 216 217 if [ $(cat /etc/passwd | grep nutchuser) ]; then 218 show_info "System already has nutchuser, change nutchuser password." 212 219 expect -c "spawn passwd nutchuser 213 220 set timeout 1 … … 217 224 send \"$Nutchuser_Passwd\r\" 218 225 expect eof" 219 else220 echo "Create nutchuser and change password."221 useradd -m nutchuser -s /bin/bash222 expect -c "spawn passwd nutchuser223 set timeout 1224 expect \"*: \"225 send \"$Nutchuser_Passwd\r\"226 expect \"*: \"227 send \"$Nutchuser_Passwd\r\"228 expect eof"229 fi226 else 227 echo "Create nutchuser and change password." 228 useradd -m nutchuser -s /bin/bash 229 expect -c "spawn passwd nutchuser 230 set timeout 1 231 expect \"*: \" 232 send \"$Nutchuser_Passwd\r\" 233 expect \"*: \" 234 send \"$Nutchuser_Passwd\r\" 235 expect eof" 236 fi 230 237 } 231 238 … … 233 240 # 目前僅需做到能無礙的複製遠端的/opt/nutchez/到local的/opt/ 234 241 function scp_packages(){ 235 echo -e "\n\033[31m= scp_packages (debug) =\033[0m"242 debug_info "scp_packages" 236 243 mkdir /opt/nutchez 237 244 mkdir /var/nutchez … … 240 247 chmod 777 /opt/nutchez 241 248 #su nutchuser -c "scp -r -o StrictHostKeyChecking=no nutchuser@$1:/opt/nutchez /opt/" 242 echo "scp -r nutchuser@$1:/opt/nutchez/NutchezForClientOf_$Master_IP_Address.tar.gz /opt/nutchez/"249 debug_info "scp -r nutchuser@$1:/opt/nutchez/NutchezForClientOf_$Master_IP_Address.tar.gz /opt/nutchez/" 243 250 su nutchuser -c "scp -r -o StrictHostKeyChecking=no nutchuser@$1:/home/nutchuser/nutchez/source/NutchezForClientOf_$Master_IP_Address.tar.gz /home/nutchuser/nutchez/source" 244 251 245 echo -e "\nchown -R nutchuser:nutchuser /opt/nutchez"252 debug_info "chown -R nutchuser:nutchuser /opt/nutchez" 246 253 chown -R nutchuser:nutchuser /opt/nutchez 247 254 chown -R nutchuser:nutchuser /var/nutchez … … 252 259 253 260 function install_nutch_package(){ 254 echo -e "\n\033[31m= install_nutch_package (debug) =\033[0m"261 debug_info "install_nutch_package" 255 262 tar -zxvf /home/nutchuser/nutchez/source/NutchezForClientOf_$Master_IP_Address.tar.gz -C /opt/nutchez 256 263 sed -i '1a '$Master_IP_Address' '$Master_Hostname'' /etc/hosts … … 260 267 261 268 function recall_hostname_ip(){ 262 echo -e "\n\033[31m= recall_hostname_ip (debug) =\033[0m" 263 264 net_interfaces=$(ifconfig | grep ^eth | cut -d " " -f1) 265 net_nu=$(echo $net_interfaces | wc -w) 266 267 # 若只有一個 eth 時 268 if [ "$net_nu" == "1" ]; then 269 270 # ifconfig $net_interfaces | grep "inet addr:" | sed 's/^.*inet addr://g' | cut -d " " -f1 271 net_address=$(ifconfig $net_interfaces | grep "inet addr:" | sed 's/^.*inet addr://g' | cut -d " " -f1) 272 net_MacAddr=$(ifconfig $net_interfaces | grep 'HW' | sed 's/^.*HWaddr //g') 273 echo "net_address is $net_address" 274 echo "net_MacAddr is $net_MacAddr" 275 276 # 若有多個 eth 時 277 else 278 declare -i i=1 279 echo -e "\nSystem have multiple network device, which network use for this machine: " 269 debug_info "recall_hostname_ip" 270 net_interfaces=$(ifconfig | grep ^eth | cut -d " " -f1) 271 net_nu=$(echo $net_interfaces | wc -w) 272 # 若只有一個 eth 時 273 if [ "$net_nu" == "1" ]; then 274 # ifconfig $net_interfaces | grep "inet addr:" | sed 's/^.*inet addr://g' | cut -d " " -f1 275 net_address=$(ifconfig $net_interfaces | grep "inet addr:" | sed 's/^.*inet addr://g' | cut -d " " -f1) 276 net_MacAddr=$(ifconfig $net_interfaces | grep 'HW' | sed 's/^.*HWaddr //g') 277 show_info "net_address is $net_address" 278 show_info "net_MacAddr is $net_MacAddr" 279 280 # 若有多個 eth 時 281 else 282 declare -i i=1 283 show_info "System have multiple network device, which network use for this machine: " 280 284 281 for net in $net_interfaces282 283 284 285 285 for net in $net_interfaces 286 do 287 echo "($i) $net $(ifconfig $net | grep "inet addr:" | sed 's/^.*inet addr://g' | cut -d " " -f1)" 288 i=i+1 289 done 286 290 287 read -p "Plzchoice(1/2/3...): " net_choice288 289 290 291 292 echo "choice is $net_choice"293 294 295 296 net_MacAddr=$(ifconfig $net_interfaces| grep 'HW' | sed 's/^.*HWaddr //g')297 echo "net_address is $net_address"298 echo "net_MacAddr is $net_MacAddr"299 fi300 301 echo "ssh nutchuser@$1 echo $net_address $(hostname) $net_MacAddr \>\> ~/nutchez/nutch_nodes"302 su nutchuser -c "ssh nutchuser@$1 echo $net_address $(hostname) $net_MacAddr \>\> ~/nutchez/nutch_nodes"291 read -p "Please choice(1/2/3...): " net_choice 292 if [ -z $net_choice ]; then 293 net_choice=1 294 fi 295 296 show_info "choice is $net_choice" 297 net_interface=$(echo $net_interfaces | cut -d " " -f $net_choice) 298 # config $net_interface | grep "inet addr:" | sed 's/^.*inet addr://g' | cut -d " " -f1 299 net_address=$(ifconfig $net_interface | grep "inet addr:" | sed 's/^.*inet addr://g' | cut -d " " -f1) 300 net_MacAddr=$(ifconfig $net_interface | grep 'HW' | sed 's/^.*HWaddr //g') 301 show_info "net_address is $net_address" 302 show_info "net_MacAddr is $net_MacAddr" 303 fi 304 305 debug_info "ssh nutchuser@$1 echo $net_address $(hostname) $net_MacAddr \>\> ~/nutchez/nutch_nodes" 306 su nutchuser -c "ssh nutchuser@$1 echo $net_address $(hostname) $net_MacAddr \>\> ~/nutchez/nutch_nodes" 303 307 304 308 #su nutchuser -c expect -c "spawn ssh nutchuser@$1
Note: See TracChangeset
for help on using the changeset viewer.