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.es < prev    next >
Encoding:
Text File  |  2003-10-31  |  8.0 KB  |  363 lines

  1. #!/bin/sh
  2.  
  3. ende() {
  4. IP=`cat /tmp/ip`
  5.  
  6. if [ -r /tmp/fail ]
  7.  then
  8. dialog --clear --title "Finalizaci≤n de la instalaci≤n" --msgbox \
  9. "\níEnhorabuena!\n
  10. La instalaci≤n de Server-on-CD parece satisfactoria. Sin embargo, 
  11. la verificaci≤n de red automßtica no ha encontrado ninguna 
  12. estaci≤n de trabajo con el n·mero IP apropiado Compruebe el cable 
  13. de conexi≤n a la red y la configuraci≤n de la red en las estaciones
  14. de trabajo (Inicio -> Configuraci≤n -> Panel de control -> Red). Si
  15. desea mßs informaci≤n, consulte los archivos de ayuda relativos al
  16. CD, que puede encontrar mediante su explorador Web." 15 74
  17. else
  18. dialog --clear --title "Finalizaci≤n de la instalaci≤n" --msgbox \
  19. "\níEnhorabuena!\n
  20. Ha instalado Server-on-CD correctamente. El resto de las 
  21. configuraciones necesarias deben llevarse a cabo en una de las 
  22. estaciones de trabajo conectadas. Introduzca en la lφnea de 
  23. direcci≤n del explorador Web de la estaci≤n de trabajo, el 
  24. siguiente n·mero IP: 
  25. http://$IP:150" 15 72
  26. fi
  27.  
  28. rm /tmp/{setup.*,ip,ipnr,pass,fail} 2>&1 1>&/dev/null
  29.  
  30. startdienste
  31.  
  32. setterm -default
  33. setterm -blank 15
  34. }
  35.  
  36.  
  37. dhcp()
  38. {
  39.   dialog --clear --title "N·meros IP de DHCP" --inputbox \
  40. "\nIntroduzca el n·mero IP de su servidor DHCP o pulse <INTRO>
  41. para confirmar el n·mero IP 192.168.0.1. El tercer grupo de cifras 
  42. (valor predeterminado=0) determina el ßmbito de red para el 
  43. servidor DHCP; el cuarto grupo de cifras (valor predeterminado=1) 
  44. determina el n·mero del servidor. El primer grupo de cifras debe 
  45. definirse como \"192\", el segundo como \"168\".\n\n" \
  46. 20 72 "192.168.0.1" 2>/tmp/setup.$$
  47. antwort=$?
  48.  
  49. if [ $antwort -eq 0 ]
  50.  then
  51.  if [ -z `cat /tmp/setup.$$` ]
  52.  then
  53.      /sbin/ifconfig eth0 192.168.0.1 2>&1 1>&/dev/null
  54.     echo -n "192.168.0.1" >/etc/IPNR
  55.     echo " 0" >>/etc/IPNR
  56.     echo "ddns-update-style ad-hoc;" >/etc/dhcpd.conf
  57.     echo "subnet $IPNR netmask 255.255.255.0 {" >>/etc/dhcpd.conf
  58.     echo "       range 192.168.0.2 192.168.0.254;">>/etc/dhcpd.conf
  59.     echo "max-lease-time 2419200;">>/etc/dhcpd.conf
  60.     echo "default-lease-time 2419200;">>/etc/dhcpd.conf
  61.     echo "}">>/etc/dhcpd.conf
  62.     echo "option netbios-node-type 1;">>/etc/dhcpd.conf
  63.     echo "option routers 192.168.0.1;">>/etc/dhcpd.conf
  64.     echo "option domain-name-servers 192.168.0.1;">>/etc/dhcpd.conf
  65.  
  66.   else 
  67.  
  68.    /bin/testip -a `cat /tmp/setup.$$`
  69.    if [ $?  -ne 0 ]
  70.     then
  71.     fehlernetz
  72.         return 1
  73.     fi
  74.  
  75.     IP=`cat /tmp/setup.$$`
  76.     echo $IP >/tmp/ip
  77.     NET=`awk -F. '{print $1"."$2"."$3}' /tmp/setup.$$`
  78.  
  79.     /sbin/ifconfig eth0 $IP up 2>&1 1>&/dev/null
  80.  
  81.     IPNET=`awk -F. '{print $4+0}' /tmp/setup.$$`
  82.  
  83.     if [ $IPNET  -lt 3 ]
  84.      then
  85.     IPMI=3
  86.     IPMA=254
  87.     elif [ $IPNET -gt 253 ]
  88.      then
  89.     IPMI=1
  90.     IPMA=253
  91.     else 
  92.     MAX2=`expr $IPNET - 1`
  93.     MIN2=`expr $IPNET + 1`
  94.     fi
  95.  
  96.     echo -n $IP >/etc/IPNR
  97.     echo " 0" >>/etc/IPNR
  98.  
  99.     echo "ddns-update-style ad-hoc;" >/etc/dhcpd.conf
  100.     echo "subnet $NET.0 netmask 255.255.255.0 {" >>/etc/dhcpd.conf
  101.  
  102.     if [ $MAX2 -lt $IPNET ]
  103.      then
  104.         echo "       range $NET.1 $NET.$MAX2;" >> /etc/dhcpd.conf
  105.         echo "       range $NET.$MIN2 $NET.254;" >> /etc/dhcpd.conf
  106.     else
  107.     echo "       range $NET.$IPMI $NET.$IPMA;">>/etc/dhcpd.conf
  108.     fi
  109.  
  110.     echo "max-lease-time 2419200;">>/etc/dhcpd.conf
  111.     echo "default-lease-time 2419200;">>/etc/dhcpd.conf
  112.     echo "}">>/etc/dhcpd.conf
  113.     echo "option netbios-node-type 1;">>/etc/dhcpd.conf
  114.     echo "option routers $IP;">>/etc/dhcpd.conf
  115.     echo "option domain-name-servers $IP;">>/etc/dhcpd.conf
  116.   fi 
  117.   else
  118.    /etc/rc.d/rc.install
  119.    exit 
  120. fi
  121.  
  122.  /usr/bin/dhcpd 2>&1 1>&/dev/null
  123.  echo "1" >/etc/DHCP
  124.  passwort
  125.  testpass
  126.  ende
  127.  init 2
  128.  exit
  129. }
  130.  
  131. ethkonfig()
  132. {
  133.     zahl=$1
  134.     IPNR=$2
  135.  
  136.     /sbin/ifconfig eth$zahl $IPNR up 2>&1 1>&/dev/null
  137.     
  138.     if [ $? -ne 0 ]
  139.     then
  140.     return 0
  141.     fi
  142.  
  143.     echo -n $IPNR >/etc/IPNR
  144.  
  145.     dialog --title "omprobaci≤n de la configuraci≤n de la red"    --infobox \
  146. "\n\n                            Espere..." 8 72
  147.     sleep 1
  148.  
  149.     /usr/bin/myping $IPNR
  150.  
  151.     if [ $? -ne 0 ]
  152.     then
  153.         /sbin/ifconfig eth$zahl 10.0.0.$(($zahl+1)) 2>&1 1>&/dev/null
  154.     return 0
  155.     else
  156.     echo " $zahl" >>/etc/IPNR
  157.     return 1
  158.     fi
  159. }
  160.  
  161. fehlerpass()
  162. {
  163.   dialog --clear --title "Contrase±a" --inputbox \
  164. "\nLa contrase±a elegida es demasiado corta. Debe contener 
  165. como mφnimo cuatro sφmbolos". 20 72 2>/tmp/setup.$$
  166. antwort=$?
  167. testpass
  168. }
  169.  
  170. passwort()
  171. {
  172.  dialog --clear --title "Contrase±a para Server-on-CD" --inputbox \
  173. "\nIntroduzca una contrase±a para el administrador. La contrase±a
  174. es necesaria para modificar la configuraci≤n del sistema. Debe 
  175. contener como mφnimo cuatro sφmbolos. Puede contener ·nicamente 
  176. cifras y letras. Podrß modificar la contrase±a posteriormente en 
  177. la estaci≤n de trabajo.\n" 20 72 2>/tmp/setup.$$
  178. antwort=$?
  179.  
  180. if [ $antwort -eq 1 ]
  181.  then
  182.     until netz
  183.       do foo
  184.     done
  185.   passwort
  186.   testpass
  187.   return
  188. fi
  189.  
  190. }
  191.  
  192. testpass()
  193. {
  194. COUNT=$(wc -c </tmp/setup.$$)
  195. if [ $COUNT -lt 4 ]
  196.  then
  197.   fehlerpass $IPNR 1
  198.   unset COUNT
  199.   return 1
  200. fi
  201. unset COUNT
  202. writepass
  203. }
  204.  
  205. writepass()
  206. {
  207. echo -n "root:" > /tmp/pass
  208. cat /tmp/setup.$$ >> /tmp/pass
  209. echo -e "" >> /tmp/pass
  210. chpasswd </tmp/pass
  211. /usr/bin/htpasswd -bc /etc/apache/passwd supervisor `cat /tmp/setup.$$` 2>&1 1>&/dev/null
  212. rm /tmp/setup.$$
  213. rm /tmp/pass
  214. }
  215.  
  216. fehlernetz()
  217. {
  218. dialog --clear --title "Entrada incorrecta" --msgbox \
  219. "\nEl n·mero IP seleccionado no es vßlido. Consulte la 
  220. informaci≤n relativa al formato.\n" 10 72
  221. }
  222.  
  223. testnetz()
  224. {
  225. if [ ! -r /tmp/setup.$$ ]
  226.  then
  227.   fehlernetz
  228. fi
  229. IPNR=`awk -F. '{print $1+0"."$2+0"."$3+0"."$4+0}' /tmp/setup.$$`
  230. echo $IPNR >/tmp/ipnr
  231.  
  232. /bin/testip -a $IPNR
  233. if [ $? -ne 0 ]
  234. then
  235.   fehlernetz
  236.   return 1
  237. fi
  238.  
  239. for i in 0 1 2 3 
  240.  do
  241.   ethkonfig $i $IPNR
  242.   rueck=$?
  243.   if [ $rueck -eq 1 ]
  244.    then 
  245.    break
  246.   fi
  247. done
  248.  
  249. if [ $rueck -eq 0 ]
  250.  then
  251.   dialog --title "Advertencia" --menu "\n
  252. La red no responde. Puede que no haya otros equipos con los n·meros
  253. IP apropiados conectados o en funcionamiento. Los n·meros IP 
  254. adecuados coinciden con las tres primeras cifras.
  255. \nSeleccione:\n" 17 72 2 \
  256. "1" "Continuar con la configuraci≤n" \
  257. "2" "Volver a ejecutar la configuraci≤n de red" 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 "N·mero IP de los servidores" --inputbox \
  285. "\nIntroduzca \"DHCP\" para la instalaci≤n automßtica de 
  286. Server-on-CD. De forma alternativa, introduzca el n·mero IP 
  287. correspondiente a este equipo. El formato debe ser: 192.168.x.y 
  288. (x=0-255, y=1-254). El valor de x debe ser el mismo para todos los 
  289. equipos conectados a la red; el valor de y debe ser unφvoco. Si no 
  290. ha introducido ning·n n·mero IP en la red, aparecerß la propuesta 
  291. 192.168.0.1 (valor predeterminado) para la primera estaci≤n de 
  292. trabajo; para la segunda 192.168.0.2, y asφ sucesivamente.\n\n" 20 72 "DHCP" 2>/tmp/setup.$$
  293.  
  294. antwort=$?
  295. if [ $antwort -eq 0 ]
  296.  then
  297.     cp /tmp/setup.$$ /tmp/ip
  298. else 
  299.  /etc/rc.d/rc.install
  300.  exit
  301. fi
  302. }
  303.  
  304. netz()
  305. {
  306.     netzwerk
  307.     if [ `grep -i -c "dhcp" /tmp/ip` -eq 1 ]
  308.      then
  309.       dhcp
  310.     else
  311.      testnetz
  312.       if [ $? -ne 0 ] 
  313.        then
  314.         return 1
  315.      fi
  316.     fi
  317. }
  318.  
  319. foo()
  320. {
  321.    return
  322. }
  323.  
  324. startdienste()
  325. {
  326. /usr/sbin/apachectl start 2>&1 1>&/dev/null
  327. /usr/sbin/smbd -D -s /etc/samba/smb.conf 2>&1 1>&/dev/null
  328. /usr/sbin/nmbd -D -s /etc/samba/smb.conf 2>&1 1>&/dev/null
  329. }
  330.  
  331. dialog --clear --title "Server-on-CD" --msgbox \
  332. "\nBienvenido a su nuevo Server-on-CD.\n
  333. A continuaci≤n deberß introducir ciertas especificaciones. Una vez 
  334. finalizada correctamente la instalaci≤n podrß administrar el 
  335. servidor desde cualquier estaci≤n de trabajo conectada a la red. 
  336. La estaci≤n de trabajo deberß contar ·nicamente con un explorador 
  337. Web actual con el lenguaje Java-Script activado." 15 72
  338.  
  339. # mount -t vfat /dev/hda1 /mnt
  340. cd /mnt/C  2>&1 1>&/dev/null
  341. if [ ! -d socd ]
  342.  then
  343.   mkdir socd  2>&1 1>&/dev/null
  344. fi
  345.  
  346. until netz
  347.  do
  348.   foo
  349. done
  350.  
  351. passwort
  352. testpass
  353. ende
  354.  
  355. if [ -e /etc/DHCP ]
  356. then
  357.  if [ `cat /etc/DHCP` -eq 1 ]
  358.   then
  359.   /usr/bin/dhcpd
  360.  fi
  361. fi
  362. # /sbin/init 2
  363.