home *** CD-ROM | disk | FTP | other *** search
/ PC Professionell 2004 December / PCpro_2004_12.ISO / server / Server-on-CD.iso / socd / sbin / rc.d / rc.install.de < prev    next >
Encoding:
Text File  |  2003-10-31  |  8.0 KB  |  371 lines

  1. #!/bin/sh
  2.  
  3. ende() {
  4. IP=`cat /tmp/ip`
  5.  
  6. if [ -r /tmp/fail ]
  7.  then
  8. dialog --clear --title "Installationsende" --msgbox \
  9. "\nHerzlichen Glⁿckwunsch,\n
  10. Sie haben Server-on-CD wahrscheinlich erfolgreich installiert. Bei der
  11. automatischen Netzprⁿfung konnte allerdings keine Workstation mit 
  12. passender IP-Nummer gefunden werden. Bitte ⁿberprⁿfen Sie die 
  13. Netzverkabelung und die Netzwerkeinstellungen an den Workstations 
  14. (Start -> Einstellungen -> Systemsteuerung -> Netzwerk). Weitere 
  15. Informationen finden Sie in den Hilfedateien auf der CD, die Sie mit 
  16. einem Webbrowser anschauen k÷nnen." 15 74
  17. else
  18. dialog --clear --title "Installationsende" --msgbox \
  19. "\nHerzlichen Glⁿckwunsch,\n
  20. Sie haben Server-on-CD erfolgreich installiert. Die weiteren 
  21. erforderlichen Konfigurationen nehmen Sie ⁿber eine angeschlossene 
  22. Workstation vor. Geben Sie dazu in der Adresszeile des Web-Browsers 
  23. dieser Workstation die folgende IP-Nummer ein: 
  24. http://$IP:150 " 15 72
  25. fi
  26.  
  27. rm /tmp/{setup.*,ip,ipnr,pass,fail} 2>&1 1>&/dev/null
  28.  
  29. startdienste
  30.  
  31. setterm -default
  32. setterm -blank 15
  33. }
  34.  
  35.  
  36. dhcp()
  37. {
  38.   dialog --clear --title "DHCP IP-Nummern" --inputbox \
  39. "\nGeben Sie bitte die IP-Nummer fⁿr Ihren DHCP-Server ein oder
  40. drⁿcken Sie <ENTER> fⁿr die IP-Nummer 192.168.0.1. Die dritte
  41. Zahlengruppe (default=0) bestimmt den Netzwerkrahmen fⁿr den
  42. DHCP-Server, die vierte Zahlengruppe (default=1) die Nummer des
  43. Servers. Die erste Zahlengruppe sollte auf \"192\", die zweite auf
  44. \"168\" lauten.\n\n" 20 72 "192.168.0.1" 2>/tmp/setup.$$
  45. antwort=$?
  46.  
  47. if [ $antwort -eq 0 ]
  48.  then
  49.  if [ -z `cat /tmp/setup.$$` ]
  50.  then
  51.      /sbin/ifconfig eth0 192.168.0.1 2>&1 1>&/dev/null
  52.     echo -n "192.168.0.1" >/etc/IPNR
  53.     echo " 0" >>/etc/IPNR
  54.     echo "ddns-update-style ad-hoc;" >/etc/dhcpd.conf
  55.     echo "subnet $IPNR netmask 255.255.255.0 {" >>/etc/dhcpd.conf
  56.     echo "       range 192.168.0.2 192.168.0.254;">>/etc/dhcpd.conf
  57.     echo "max-lease-time 2419200;">>/etc/dhcpd.conf
  58.     echo "default-lease-time 2419200;">>/etc/dhcpd.conf
  59.     echo "}">>/etc/dhcpd.conf
  60.     echo "option netbios-node-type 1;">>/etc/dhcpd.conf
  61.     echo "option routers 192.168.0.1;">>/etc/dhcpd.conf
  62.     echo "option domain-name-servers 192.168.0.1;">>/etc/dhcpd.conf
  63.  
  64.   else 
  65.  
  66.    /bin/testip -a `cat /tmp/setup.$$`
  67.    if [ $?  -ne 0 ]
  68.     then
  69.     fehlernetz
  70.         return 1
  71.     fi
  72.  
  73.     IP=`cat /tmp/setup.$$`
  74.     echo $IP >/tmp/ip
  75.     NET=`awk -F. '{print $1"."$2"."$3}' /tmp/setup.$$`
  76.  
  77.     /sbin/ifconfig eth0 $IP up 2>&1 1>&/dev/null
  78.  
  79.     IPNET=`awk -F. '{print $4+0}' /tmp/setup.$$`
  80.  
  81.     if [ $IPNET  -lt 3 ]
  82.      then
  83.     IPMI=3
  84.     IPMA=254
  85.     elif [ $IPNET -gt 253 ]
  86.      then
  87.     IPMI=1
  88.     IPMA=253
  89.     else 
  90.     MAX2=`expr $IPNET - 1`
  91.     MIN2=`expr $IPNET + 1`
  92.     fi
  93.  
  94.     echo -n $IP >/etc/IPNR
  95.     echo " 0" >>/etc/IPNR
  96.  
  97.     echo "ddns-update-style ad-hoc;" >/etc/dhcpd.conf
  98.     echo "subnet $NET.0 netmask 255.255.255.0 {" >>/etc/dhcpd.conf
  99.  
  100.     if [ $MAX2 -lt $IPNET ]
  101.      then
  102.         echo "       range $NET.1 $NET.$MAX2;" >> /etc/dhcpd.conf
  103.         echo "       range $NET.$MIN2 $NET.254;" >> /etc/dhcpd.conf
  104.     else
  105.     echo "       range $NET.$IPMI $NET.$IPMA;">>/etc/dhcpd.conf
  106.     fi
  107.  
  108.     echo "max-lease-time 2419200;">>/etc/dhcpd.conf
  109.     echo "default-lease-time 2419200;">>/etc/dhcpd.conf
  110.     echo "}">>/etc/dhcpd.conf
  111.     echo "option netbios-node-type 1;">>/etc/dhcpd.conf
  112.     echo "option routers $IP;">>/etc/dhcpd.conf
  113.     echo "option domain-name-servers $IP;">>/etc/dhcpd.conf
  114.   fi 
  115.   else
  116.    /etc/rc.d/rc.install
  117.    exit 
  118. fi
  119.  
  120.  /usr/bin/dhcpd 2>&1 1>&/dev/null
  121.  echo "1" >/etc/DHCP
  122.  passwort
  123.  testpass
  124.  ende
  125.  init 2
  126.  exit
  127. }
  128.  
  129. ethkonfig()
  130. {
  131.     zahl=$1
  132.     IPNR=$2
  133.  
  134.     /sbin/ifconfig eth$zahl $IPNR up 2>&1 1>&/dev/null
  135.     
  136.     if [ $? -ne 0 ]
  137.     then
  138.     return 0
  139.     fi
  140.  
  141.     echo -n $IPNR >/etc/IPNR
  142.  
  143.     dialog --title "Teste Netzkonfiguration"    --infobox "\n\n                        Bitte warten..." 8 72
  144.     
  145.     sleep 1
  146.  
  147.     /usr/bin/myping $IPNR
  148.  
  149.     if [ $? -ne 0 ]
  150.     then
  151.         /sbin/ifconfig eth$zahl 10.0.0.$(($zahl+1)) 2>&1 1>&/dev/null
  152.     return 0
  153.     else
  154.     echo " $zahl" >>/etc/IPNR
  155.     return 1
  156.     fi
  157. }
  158.  
  159. fehlerpass()
  160. {
  161.   dialog --clear --title "Passwort" --inputbox \
  162. "\nDas von Ihnen angegebene Passwort ist zu kurz. Das Passwort
  163. mu▀ mindestens vier Zeichen enthalten!" 20 72 2>/tmp/setup.$$
  164. antwort=$?
  165. testpass
  166. }
  167.  
  168. passwort()
  169. {
  170.  dialog --clear --title "Passwort fⁿr Server-on-CD" --inputbox \
  171. "\nBitte geben Sie ein Passwort fⁿr den Administrator ein. Das 
  172. Passwort wird ben÷tigt, um ─nderungen an den Systemeinstellungen 
  173. vornehmen zu k÷nnen. Das Passwort mu▀ mindestens vier Zeichen 
  174. lang sein und darf nur aus Zahlen und Buchstaben bestehen. Sie 
  175. k÷nnen das Passwort spΣter ⁿber eine Workstation Σndern.
  176. \n" 20 72 2>/tmp/setup.$$
  177. antwort=$?
  178.  
  179. if [ $antwort -eq 1 ]
  180.  then
  181.     until netz
  182.       do foo
  183.     done
  184.   passwort
  185.   testpass
  186.   return
  187. fi
  188.  
  189. }
  190.  
  191. testpass()
  192. {
  193. COUNT=$(wc -c </tmp/setup.$$)
  194. if [ $COUNT -lt 4 ]
  195.  then
  196.   fehlerpass $IPNR 1
  197.   unset COUNT
  198.   return 1
  199. fi
  200. unset COUNT
  201. writepass
  202. }
  203.  
  204. writepass()
  205. {
  206. echo -n "root:" > /tmp/pass
  207. cat /tmp/setup.$$ >> /tmp/pass
  208. echo -e "" >> /tmp/pass
  209. chpasswd </tmp/pass
  210. /usr/bin/htpasswd -bc /etc/apache/passwd supervisor `cat /tmp/setup.$$` 2>&1 1>&/dev/null
  211. rm /tmp/setup.$$
  212. rm /tmp/pass
  213. }
  214.  
  215. fehlernetz()
  216. {
  217. dialog --clear --title "Falsche Eingabe" --msgbox \
  218. "\nDie von Ihnen angegebene IP-Nummer ist ungⁿltig. Beachten Sie 
  219. bitte die Formatangaben." 10 72
  220. }
  221.  
  222. testnetz()
  223. {
  224. if [ ! -r /tmp/setup.$$ ]
  225.  then
  226.   fehlernetz
  227. fi
  228. IPNR=`awk -F. '{print $1+0"."$2+0"."$3+0"."$4+0}' /tmp/setup.$$`
  229. echo $IPNR >/tmp/ipnr
  230.  
  231. /bin/testip -a $IPNR
  232. if [ $? -ne 0 ]
  233. then
  234.   fehlernetz
  235.   return 1
  236. fi
  237.  
  238. for i in 0 1 2 3 
  239.  do
  240.   ethkonfig $i $IPNR
  241.   rueck=$?
  242.   if [ $rueck -eq 1 ]
  243.    then 
  244.    break
  245.   fi
  246. done
  247.  
  248. if [ $rueck -eq 0 ]
  249.  then
  250.   dialog --title "Warnung" --menu "\n
  251. Das Netzwerk antwortet nicht. Das kann daran liegen, da▀ 
  252. keine anderen Rechner mit passenden IP-Nummern angeschlossen 
  253. und eingeschaltet sind. Passende IP-Nummern stimmen in den 
  254. ersten drei Zahlen ⁿberein. 
  255. Bitte wΣhlen Sie:\n" 17 72 2 \
  256. "1" "Konfiguration fortfⁿhren" \
  257. "2" "Netzwerkkonfiguration erneut durchfⁿhren" 2>/tmp/setup.$$
  258. antwort=$?
  259.  
  260. if [ $antwort = 0 ]
  261.  then
  262.   ANTWORT=`cat /tmp/setup.$$`
  263.   case $ANTWORT in
  264.     2) netz
  265.        return ;;
  266.         1)  /sbin/ifconfig eth0 $IPNR 
  267.         echo -n $IPNR >/etc/IPNR 
  268.         echo -e "1" >/tmp/fail 
  269.         echo " 0" >>/etc/IPNR ;;
  270.         
  271.   esac
  272. else
  273.  netz
  274.  return
  275. fi
  276. fi
  277.  
  278. return 0
  279. }
  280.  
  281.  
  282. netzwerk()
  283. {
  284.  dialog --clear --title "IP-Nummer des Servers" --inputbox \
  285. "\nBitte geben Sie \"DHCP\" ein, wenn Server-on-CD die
  286. Installation automatisch vornehmen soll. Andernfalls tragen
  287. Sie bitte die IP-Nummer fⁿr diesen Rechner ein. Diese Nummer 
  288. mu▀ im Format 192.168.x.y (x=0-255, y=1-254) angegeben werden. 
  289. Der Wert fⁿr x mu▀ mit allen in diesem Netzwerk zusammengefa▀ten
  290. Rechnern gleich, der Wert fⁿr y mu▀ fⁿr jeden Rechner einmalig sein.
  291. Sofern Sie noch keine IP-Nummern im Netz vergeben haben, empfehlen
  292. wir fⁿr diesen Server die Nummer 192.168.0.1 (default),fⁿr die 
  293. erste Workstation die Nummer 192.168.0.2 usw.\n\n" 20 72 "DHCP" \
  294. 2>/tmp/setup.$$
  295.  
  296. antwort=$?
  297. if [ $antwort -eq 0 ]
  298.  then
  299.     cp /tmp/setup.$$ /tmp/ip
  300. else 
  301.  /etc/rc.d/rc.install
  302.  exit
  303. fi
  304. }
  305.  
  306. netz()
  307. {
  308.     netzwerk
  309.     if [ `grep -i -c "dhcp" /tmp/ip` -eq 1 ]
  310.      then
  311.       dhcp
  312.     else
  313.      testnetz
  314.       if [ $? -ne 0 ] 
  315.        then
  316.         return 1
  317.      fi
  318.     fi
  319. }
  320.  
  321. foo()
  322. {
  323.    return
  324. }
  325.  
  326. startdienste()
  327. {
  328. /usr/sbin/apachectl start 2>&1 1>&/dev/null
  329. /usr/sbin/smbd -D -s /etc/samba/smb.conf 2>&1 1>&/dev/null
  330. /usr/sbin/nmbd -D -s /etc/samba/smb.conf 2>&1 1>&/dev/null
  331. }
  332.  
  333. dialog --clear --title "Server-on-CD" --msgbox \
  334. "\nWillkommen auf Ihrem neuen Server-on-CD. Im Folgenden mⁿssen Sie 
  335. noch einige Angaben fⁿr diesen Rechner machen. Nach erfolgreicher 
  336. Installation k÷nnen Sie diesen Server von einer angeschlossenen 
  337. Workstation aus verwalten. Diese Workstation ben÷tigt hierzu 
  338. lediglich einen aktuellen Web-Browser mit aktivierter Java-Script-
  339. Unterstⁿtzung." 15 72
  340.  
  341. # mount -t vfat /dev/hda1 /mnt
  342. cd /mnt/C  2>&1 1>&/dev/null
  343. if [ ! -d socd ]
  344.  then
  345.   mkdir socd  2>&1 1>&/dev/null
  346. fi
  347.  
  348. until netz
  349.  do
  350.   foo
  351. done
  352.  
  353. passwort
  354. testpass
  355. ende
  356.  
  357. if [ -e /etc/DHCP ]
  358. then
  359.  if [ `cat /etc/DHCP` -eq 1 ]
  360.   then
  361.   /usr/bin/dhcpd
  362.  fi
  363. fi
  364. # /sbin/init 2
  365.  
  366.  
  367.  
  368.  
  369.  
  370.  
  371.