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.fr < prev   
Encoding:
Text File  |  2003-10-31  |  8.2 KB  |  366 lines

  1. #!/bin/sh
  2.  
  3. ende() {
  4. IP=`cat /tmp/ip`
  5.  
  6. if [ -r /tmp/fail ]
  7.  then
  8. dialog --clear --title "Installation teminΘe" --msgbox \
  9. "\nFΘlicitations,\n
  10. Vous venez apparemment d'installer Server-on-CD avec succΦs. Lors 
  11. de la vΘrification automatique du rΘseau, aucune station de travail
  12. possΘdant un numΘro IP correct n'a pourtant pu Ωtre dΘtectΘe. 
  13. Veuillez vΘrifier le cΓblage et les paramΦtres rΘseau des stations de
  14. travail (DΘmarrer -> ParamΦtres -> Panneau de configuration -> 
  15. RΘseau). Vous trouverez de plus amples informations dans les fichier
  16. d'aide du CD, que vous pouvez consulter α l'aide d'un navigateur Web." 15 74
  17. else
  18. dialog --clear --title "Installation teminΘe" --msgbox \
  19. "\nFΘlicitations,\n
  20. Vous venez d'installer Server-on-CD avec succΦs. Vous pouvez 
  21. effectuer les autres configurations requises sur une station de 
  22. travail connectΘe. Pour cela, vous devez entrer le numΘro IP suivant
  23. dans le champ adresse du navigateur Web de cette station de travail :
  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 "NumΘros IP du serveur DHCP" --inputbox \
  39. "Veuillez entrer le numΘro IP de votre serveur DHCP ou bien appuyer 
  40. sur la touche pour valider le numΘro IP 192.168.0.1. Le troisiΦme 
  41. groupe de chiffres (valeur par dΘfaut=0) dΘtemine la structure 
  42. rΘseau du serveur DHCP, le quatriΦme groupe de chiffres (valeur 
  43. par dΘfaut=1), le numΘro du serveur. Le premier groupe de chiffres 
  44. devrait Ωtre dΘfini sur \"192\", le deuxiΦme sur \"168\"." 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 "Test de la configuration rΘseau"    --infobox \
  144. "\n\n                     Veuillez patienter..." 8 72   
  145.     sleep 1
  146.  
  147.     /usr/bin/myping $IPNR
  148.  
  149.     if [ $? -ne 0 ]
  150.     then
  151.         /sbin/ifconfig eth$zahl $(($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 "Mot de passe" --inputbox \
  162. "\nLe mot de passe que vous avez indiquΘ est trop court. Le mot
  163. de passe doit comporter au moins 4 caractΦres alphanumΘriques !" 20 72 2>/tmp/setup.$$
  164. antwort=$?
  165. testpass
  166. }
  167.  
  168. passwort()
  169. {
  170.  dialog --clear --title "Mot de passe pour Server-on-CD" --inputbox \
  171. "\nVeuillez saisir un mot de passe pour l'adminitrateur. Le mot 
  172. de passe est indispensable pour pouvoir modifier les paramΦtres 
  173. du systΦme. Le mot de passe doit comporter au moins 4 caractΦres 
  174. alphanumΘriques, et uniquement des nombres et des lettres. Vous 
  175. pouvez effectuer une modification ultΘrieure du mot de passe d'une
  176. station de travail.
  177. \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 "Saisie erronΘe" --msgbox \
  219. "\nLe numΘro IP que vous avez indiquΘ n'est pas valide.
  220. VΘrifiez les spΘcifications de format." 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 "Avertissement" --menu "\n
  252. Le rΘseau ne rΘpond pas. Cela peut venir du fait qu'aucun 
  253. autre ordinateur pourvu d'un numΘro IP valide n'est 
  254. connectΘ et en fonctionnement. Les numΘros IP valides 
  255. correspondent aux trois premiers chiffres.
  256. Veuillez sΘlectionner :\n" 17 72 2 \
  257. "1" "Poursuivre la configuration" \
  258. "2" "RΘtablir la configuration rΘseau" 2>/tmp/setup.$$
  259. antwort=$?
  260.  
  261. if [ $antwort = 0 ]
  262.  then
  263.   ANTWORT=`cat /tmp/setup.$$`
  264.   case $ANTWORT in
  265.     2) netz
  266.        return ;;
  267.         1)  /sbin/ifconfig eth0 $IPNR 
  268.         echo -n $IPNR >/etc/IPNR 
  269.         echo -e "1" >/tmp/fail 
  270.         echo " 0" >>/etc/IPNR ;;
  271.         
  272.   esac
  273. else
  274.  netz
  275.  return
  276. fi
  277. fi
  278.  
  279. return 0
  280. }
  281.  
  282.  
  283. netzwerk()
  284. {
  285.  dialog --clear --title "NumΘro IP du serveur" --inputbox \
  286. "\nVeuillez entrer \"DHCP\", si Server-on-CD doit effectuer 
  287. l'installation automatiquement. Sinon, veuillez enregistrer 
  288. le numΘro IP de cet ordinateur. Ce numΘro doit Ωtre indiquΘ 
  289. au format 192.168.x.y (x=0-255, y=1-254). La valeur x doit 
  290. Ωtre la mΩme pour tous les ordinateurs connectΘs de ce rΘseau, 
  291. la valeur y doit Ωtre unique pour chaque ordinateur. Si vous 
  292. n'avez pas encore attribuΘ de numΘro IP au rΘseau, nous 
  293. conseillons le numΘro 192.168.0.1 (valeur par dΘfaut) pour ce 
  294. serveur, le numΘro 192.168.0.2 pour la premiΦre station de 
  295. travail, etc.\n\n" 20 72 "DHCP" 2>/tmp/setup.$$
  296.  
  297. antwort=$?
  298. if [ $antwort -eq 0 ]
  299.  then
  300.     cp /tmp/setup.$$ /tmp/ip
  301. else 
  302.  /etc/rc.d/rc.install
  303.  exit
  304. fi
  305. }
  306.  
  307. netz()
  308. {
  309.     netzwerk
  310.     if [ `grep -i -c "dhcp" /tmp/ip` -eq 1 ]
  311.      then
  312.       dhcp
  313.     else
  314.      testnetz
  315.       if [ $? -ne 0 ] 
  316.        then
  317.         return 1
  318.      fi
  319.     fi
  320. }
  321.  
  322. foo()
  323. {
  324.    return
  325. }
  326.  
  327. startdienste()
  328. {
  329. /usr/sbin/apachectl start 2>&1 1>&/dev/null
  330. /usr/sbin/smbd -D -s /etc/samba/smb.conf 2>&1 1>&/dev/null
  331. /usr/sbin/nmbd -D -s /etc/samba/smb.conf 2>&1 1>&/dev/null
  332. }
  333.  
  334. dialog --clear --title "Server-on-CD" --msgbox \
  335. "\nBienvenue sur votre nouveau Server-on-CD. Vous devez encore 
  336. indiquer ci-dessous quelques informations cocnernant cet 
  337. ordinateur. Une fois l'installation rΘussie, vous pouvez gΘrer ce 
  338. serveur depuis une station de travail connectΘe. Pour cela, cette 
  339. station de travail a juste besoin d'un navigateur Web courant 
  340. prenant en charge le langage Java-Script." 15 72
  341.  
  342. # mount -t vfat /dev/hda1 /mnt
  343. cd /mnt/C  2>&1 1>&/dev/null
  344. if [ ! -d socd ]
  345.  then
  346.   mkdir socd  2>&1 1>&/dev/null
  347. fi
  348.  
  349. until netz
  350.  do
  351.   foo
  352. done
  353.  
  354. passwort
  355. testpass
  356. ende
  357.  
  358. if [ -e /etc/DHCP ]
  359. then
  360.  if [ `cat /etc/DHCP` -eq 1 ]
  361.   then
  362.   /usr/bin/dhcpd
  363.  fi
  364. fi
  365. # /sbin/init 2
  366.