source: client/boot-tools/ogClientManager.lib @ 345354b

918-git-images-111dconfigfileconfigure-oglivegit-imageslgromero-new-oglivemainmaint-cronmount-efivarfsmultivmmultivm-ogboot-installerogClonningEngineogboot-installer-jenkinsoglive-ipv6test-python-scriptsticket-301ticket-50ticket-50-oldticket-577ticket-585ticket-611ticket-612ticket-693ticket-700ubu24tplunification2use-local-agent-oglivevarios-instalacionwebconsole3
Last change on this file since 345354b was b1ccf9b, checked in by adv <adv@…>, 14 years ago

version1.0 renombrando ogclient boot-tools

git-svn-id: https://opengnsys.es/svn/branches/version1.0@1764 a21b9725-9963-47de-94b9-378ad31fedc9

  • Property mode set to 100644
File size: 19.8 KB
Line 
1
2ogClientVar()
3{
4export SVNCLIENTDIR=/tmp/opengnsys_installer/opengnsys/installer/ogClient
5export SVNCLIENTSTRUCTURE=/tmp/opengnsys_installer/opengnsys/client/shared
6export SVNCLIENTENGINE=/tmp/opengnsys_installer/opengnsys/client/engine
7
8export OGCLIENTBASEDIR=/var/lib/tftpboot/ogclient/
9export OGCLIENTFILE=${OGCLIENTBASEDIR}ogclient.img
10export OGCLIENTMOUNT=${OGCLIENTBASEDIR}ogclientmount
11# tamaño maximo limitado por schroot 2GB
12export OGCLIENTSIZEMB=1900
13#export OGCLIENTSIZEMB=1000
14# export OGCLIENTSIZEKB=500
15export OGCLIENTLABEL=ogClient
16#export OGLIB=/opt/opengnsys/client/lib
17}
18
19
20
21function ogClientOsInfo ()
22{
23#TODO según host, un OSHHTP u otro  OSARCH
24        #1 OSCODENAME jaunty|karmic|lucid
25        #devuelve OSDISTRIB(ubuntu,debian),OSCODENAME(lucid,karmic,squeeze):OGRELEASE:httpAPT
26        case $1 in
27                host | HOST)
28                        export OSDISTRIB=$(lsb_release -i | awk -F: '{sub(/\t/,""); print $2}') 2>/dev/null
29                        #OSCODENAME=$(lsb_release -c | awk -F: '{sub(/\t/,""); print $2}') 2>/dev/null
30                        export OSCODENAME=$(cat /etc/lsb-release | grep CODENAME | awk -F= '{print $NF}')
31                        export OSRELEASE=$(uname -a | awk '{print $3}')
32                        uname -a | grep x86_64 > /dev/null  &&  export OSARCH=amd64 || export OSARCH=i386
33                        export OSHTTP="http://es.archive.ubuntu.com/ubuntu/"
34                ;;
35                jaunty|JAUNTY)
36                    export OSDISTRIB=ubuntu
37                        export OSCODENAME=jaunty
38                        export OSRELEASE="2.6.28-11-generic"
39                        export OSARCH=i386
40                        export OSHTTP="http://es.archive.ubuntu.com/ubuntu/"
41                ;;
42                lenny|LENNY)
43                        export OSDISTRIB=debian
44                        export OSCODENAME=lenny
45                        export OSRELEASE="2.6.28-11-generic"
46                        export OSARCH=i386
47                        export OSHTTP="http://es.archive.ubuntu.com/ubuntu/ "
48                ;;
49                squeeze|SQUEEZE)
50                        export OSDISTRIB=debian
51                        export OSCODENAME=squeeze
52                        export OSRELEASE="2.6.28-11-generic"
53                        export OSARCH=i386
54                        export OSHTTP="http://es.archive.ubuntu.com/ubuntu/ "
55                ;;
56                karmic|KARMIC)
57                        export OSDISTRIB=ubuntu
58                        export OSCODENAME=karmic
59                        export OSRELEASE="2.6.31-14-generic"
60                        export OSARCH=i386
61                        export OSHTTP="http://es.archive.ubuntu.com/ubuntu/ "
62                ;;
63                lucid|LUCID)
64                        export OSDISTRIB=ubuntu
65                        export OSCODENAME=lucid
66                        export OSRELEASE="2.6.32-21-generic-pae"
67                        export OSARCH=i386
68                        export OSHTTP="http://es.archive.ubuntu.com/ubuntu/ "
69                ;;
70                *)
71                        return 1
72                ;;
73        esac
74                echo $OSDISTRIB:$OSCODENAME:$OSRELEASE:$OSARCH:$OSHTTP
75}
76
77#creación y formateo del disco virtual.
78ogClient2ndFile ()
79{
80local RERROR  DISKLOOP PARTLOOP #return code error
81echoAndLog "$FUNCNAME(): Creación y formateo del disco virtual $OGCLIENTSIZEMB MB "
82#Desmontamos por si acaso el dispositivo virtual
83mount | grep $OGCLIENTMOUNT && umount $OGCLIENTMOUNT
84mount | grep $OGCLIENTMOUNT && umount $OGCLIENTMOUNT
85echo "$FUNCNAME(): Creando el directorio donde se montará el disco virtual $OGCLIENTMOUNT"
86mkdir -p $OGCLIENTMOUNT
87if [ $? -ne 0 ]
88then
89        errorAndLog "$FUNCNAME(): Creando directorio $OGCLIENTMOUNT : ERROR"
90        return 1
91fi
92echo "$FUNCNAME(): Creando el disco virtual que almacenará el FS del cliente $OGCLIENTSIZEMB MB de datos físicos"
93dd if=/dev/zero of=$OGCLIENTFILE bs=1048576 count=$OGCLIENTSIZEMB
94#qemu-img create $OGCLIENTFILE 3G       
95#dd if=/dev/zero of=$OGCLIENTFILE bs=1k count=$OGCLIENTSIZEKB   # necesita 500MB
96if [ $? -ne 0 ]
97then
98        errorAndLog "$FUNCNAME(): Creando el disco virtual: ERROR"
99        return 1
100fi
101
102DISKLOOP=$(losetup -f)
103losetup $DISKLOOP $OGCLIENTFILE
104echo "$FUNCNAME(): particiondo el disco virtual - $DISKLOOP - con una particion primaria"
105echo -e "n\np\n1\n\n\nt\n83\nw" | fdisk $DISKLOOP
106#echo $?
107# da error, porque no puede actualizar el kernel.
108#if [ $? -ne 0 ]
109#then
110#       errorAndLog "$FUNCNAME(): Particionando el disco virutal: ERROR"
111#       return 1
112#fi
113
114echoAndLog "$FUNCNAME(): Desmontando $DISKLOOP despues del particionado "
115losetup -d $DISKLOOP
116
117if [ $? -ne 0 ]
118then
119        errorAndLog "$FUNCNAME(): Liberando disco virtual despues del particionado: ERROR"
120        return 1
121fi
122
123
124#mkfs.ext3 -L $OGCLIENTLABEL /dev/loop1
125#mkfs.ext3 -L $OGCLIENTLABEL /dev/loop1
126PARTLOOP=$(losetup -f)
127echo "$FUNCNAME(): Formateando la particion principal $PARTLOOP"
128losetup -o 32256 $PARTLOOP $OGCLIENTFILE && mkfs.ext3 -b 4096 -L $OGCLIENTLABEL $PARTLOOP
129if [ $? -ne 0 ]
130then
131        errorAndLog "$FUNCNAME(): Formateando la particion principal del disco virtual: ERROR"
132        return 1
133fi
134echoAndLog "$FUNCNAME(): Desmontando $PARTLOOP despues del formateo "
135losetup -d $PARTLOOP
136if [ $? -ne 0 ]
137then
138        errorAndLog "$FUNCNAME(): Liberando la particion virtual despues del formateo: ERROR"
139        return 1
140else
141        echoAndLog "$FUNCNAME(): $OGCLIENTFILE $OGCLIENTSIZEMB MB : OK"
142fi
143}
144
145
146
147
148
149ogClient2ndFs ()
150{       
151ogClientOsInfo $1
152echoAndLog "$FUNCNAME:  Iniciando la generación del sistema de archivos "
153#Montamos el dispositivo virtual en su punto de montaje.
154mount | grep $OGCLIENTMOUNT || mount $OGCLIENTFILE $OGCLIENTMOUNT -o loop,offset=32256
155
156mount | grep $OGCLIENTMOUNT && echoAndLog "$FUNCNAME:  mount $OGCLIENTFILE $OGCLIENTMOUNT -o loop,offset=32256 OK   " || errorAndLog  "$FUNCNAME:  mount $OGCLIENTFILE $OGCLIENTMOUNT -o loop,offset=32256 : FAILURE  "
157
158#debootstrap --include=linux-image-${OSRELEASE},linux-headers-${OSRELEASE} --arch=$OSARCH --components=main,universe ${OSCODENAME} ${OGCLIENTMOUNT} ${OSHTTP}
159debootstrap --arch=$OSARCH --components=main,universe ${OSCODENAME} ${OGCLIENTMOUNT} ${OSHTTP}
160
161
162if [ $? -ne 0 ]; then
163        errorAndLog "$FUNCNAME:  debootstrap --include=linux-image-${OSRELEASE},linux-headers-${OSRELEASE} --arch=$OSARCH --components=main,universe $OSCODENAME $OGCLIENTMOUNT $OSHTTP
164        : ha fallado!"
165        mount | grep $OGCLIENTMOUNT && umount $OGCLIENTMOUNT
166        return 1
167else
168        echoAndLog "$FUNCNAME:  debootstrap --include=linux-image-${OSRELEASE},linux-headers-${OSRELEASE} --arch=$OSARCH --components=main,universe $OSCODENAME $OGCLIENTMOUNT $OSHTTP
169         :  ok"
170         mount | grep $OGCLIENTMOUNT && umount $OGCLIENTMOUNT
171                return 0
172fi     
173  sleep 5
174
175##preubas  revisar OSRELEASE
176#debootstrap --include=linux-image-${OSRELEASE} --arch=i386 --variant=minbase $OSVERSION $OGCLIENTMOUNT http://es.archive.ubuntu.com/ubuntu/
177#debootstrap --variant=minbase --include=linux-image-${OGRELEASE} --arch=i386 $OGVERSION $OGCLIENTMOUNT http://es.archive.ubuntu.com/ubuntu/
178#echo debootstrap --include=linux-image-${OGRELEASE},dbus --arch=i386 --components=main,universe $OGVERSION $OGCLIENTMOUNT http://es.archive.ubuntu.com/ubuntu/
179}
180
181
182
183
184########## configura el segundo sistema de archivos
185########### parametro:    "host"
186function ogClient2ndSVN()
187{
188ogClientOsInfo $1
189#1 la salida de ogClientOsInfo
190local LERROR
191LERROR=TRUE
192echoAndLog "$FUNCNAME: Iniciando la personalización con datos del SVN "
193# comprobar que está montado  $OGCLIENTMOUNT
194mount | grep $OGCLIENTMOUNT || mount $OGCLIENTFILE $OGCLIENTMOUNT -o loop,offset=32256
195
196# parseamos del apt.source
197sed -e "s/OSCODENAME/$OSCODENAME/g" ${SVNCLIENTDIR}/clientstructure/etc/apt/sources.list.ubuntu > ${SVNCLIENTDIR}/clientstructure/etc/apt/sources.list
198if [ $? -ne 0 ]
199then
200        errorAndLog "$FUNCNAME(): Parsing apt.sources : ERROR"
201        return 1
202fi
203
204#parseamos el script de generación del initrd.
205sed -e "s/OSRELEASE/$OSRELEASE/g" ${SVNCLIENTDIR}/clientstructure/root/GenerateInitrd.generic.sh > ${SVNCLIENTDIR}/clientstructure/root/GenerateInitrd.sh
206if [ $? -ne 0 ]
207then
208        errorAndLog "$FUNCNAME(): Parsing GenerateInitrd.sh : ERROR"
209        return 1
210fi
211
212#damos permiso al directorio de scripts
213chmod 775 ${SVNCLIENTDIR}/clientstructure/root/*
214
215# los copiamos
216cp -prv ${SVNCLIENTDIR}/clientstructure/* $OGCLIENTMOUNT
217mkdir -p ${OGCLIENTMOUNT}/opt/opengnsys/
218cp -prv ${SVNCLIENTSTRUCTURE}/* ${OGCLIENTMOUNT}/opt/opengnsys/
219cp -prv ${SVNCLIENTENGINE}/* ${OGCLIENTMOUNT}/opt/opengnsys/lib/engine/bin/
220
221if [ $? -ne 0 ]
222then
223        errorAndLog "$FUNCNAME(): Copying client data : ERROR"
224        return 1
225fi
226
227# copiamos algunas cosas del nfsexport
228
229#### Tipos de letra para el Browser.
230cp -pr ${SVNCLIENTSTRUCTURE}/lib/fonts $OGCLIENTMOUNT/usr/local/lib/fonts
231#### Crear enlaces para compatibilidad con las distintas versiones del Browser.
232mkdir -p $OGCLIENTMOUNT/usr/local/Trolltech/QtEmbedded-4.5.1/lib/
233mkdir -p $OGCLIENTMOUNT/usr/local/QtEmbedded-4.6.2/lib/
234mkdir -p $OGCLIENTMOUNT/usr/local/QtEmbedded-4.6.3/lib/
235ln -fs $OGCLIENTMOUNT/usr/local/lib/fonts /usr/local/Trolltech/QtEmbedded-4.5.1/lib/fonts
236ln -fs $OGCLIENTMOUNT/usr/local/lib/fonts /usr/local/QtEmbedded-4.6.2/lib/fonts
237ln -fs $OGCLIENTMOUNT/usr/local/lib/fonts /usr/local/QtEmbedded-4.6.3/lib/fonts
238if [ $? -ne 0 ]
239then
240        errorAndLog "$FUNCNAME(): Linking Browser fonts : ERROR"
241        return 1
242fi
243
244# B ########################################################
245cp -pr ${SVNCLIENTSTRUCTURE}/lib/pci.ids $OGCLIENTMOUNT/etc
246if [ $? -ne 0 ]
247then
248        errorAndLog "$FUNCNAME(): Copying pci.ids : ERROR"
249        return 1
250fi
251
252cp ${SVNCLIENTSTRUCTURE}/bin/browser $OGCLIENTMOUNT/bin
253if [ $? -ne 0 ]
254then
255        errorAndLog "$FUNCNAME(): Copying Browser : ERROR"
256        return 1
257fi
258
259cp ${SVNCLIENTSTRUCTURE}/bin/ogAdmClient  $OGCLIENTMOUNT/bin
260if [ $? -ne 0 ]
261then
262        errorAndLog "$FUNCNAME(): Copying ogAdmClient : ERROR"
263        return 1
264else
265        mount | grep $OGCLIENTMOUNT && umount $OGCLIENTMOUNT
266        mount | grep $OGCLIENTMOUNT && umount $OGCLIENTMOUNT
267        mount | grep $OGCLIENTMOUNT && umount $OGCLIENTMOUNT
268        mount | grep $OGCLIENTMOUNT && umount $OGCLIENTMOUNT
269        echoAndLog "$FUNCNAME: Finalizado: OK  "
270        return 0
271fi
272}
273
274
275ogClientSchrootConf()
276{
277echoAndLog "$FUNCNAME: Iniciando la configuración del schroot "
278cp /etc/schroot/schroot.conf /etc/schroot/schroot.conf.`getDateTime`
279cat << EOF > /etc/schroot/schroot.conf
280[IMGogclient]
281type=loopback
282file=/var/lib/tftpboot/ogclient/ogclient.img
283description=ogclient ubuntu luc IMGi
284priority=1
285users=root
286groups=root
287root-groups=root
288mount-options=-o offset=32256
289root-users=root
290[DIRogclient]
291type=directory
292directory=/var/lib/tftpboot/ogclient/ogclientmount
293description=ogclient ubuntu lucid DIR
294priority=2
295users=root
296groups=root
297root-groups=root
298root-users=root
299EOF
300cp /etc/schroot/mount-defaults /etc/schroot/mount-defaults.`getDateTime`
301cat << EOF > /etc/schroot/mount-defaults
302# mount.defaults: static file system information for chroots.
303# Note that the mount point will be prefixed by the chroot path
304# (CHROOT_PATH)
305#
306# <file system> <mount point>   <type>  <options>       <dump>  <pass>
307proc            /proc           proc    defaults        0       0
308#procbususb      /proc/bus/usb   usbfs   defaults        0       0
309#/dev            /dev            none    rw,bind         0       0
310/dev/pts        /dev/pts        none    rw,bind         0       0
311/dev/shm        /dev/shm        none    rw,bind         0       0
312#/home          /home           none    rw,bind         0       0
313/tmp            /tmp            none    rw,bind         0       0                                                               
314EOF
315
316echoAndLog "$FUNCNAME: Finalizado: OK  "
317return 0
318}
319
320
321
322########### param1   "host"
323ogClientInitrd()
324{
325ogClientVar     
326cd /
327ogClientOsInfo $1
328schroot -c IMGogclient -- /root/GenerateInitrd.generic.sh
329echo "cp /tmp/*-${OSRELEASE} $OGCLIENTBASEDIR"
330cp /tmp/*-${OSRELEASE} $OGCLIENTBASEDIR
331cp /tmp/initrd.img-${OSRELEASE} ${OGCLIENTBASEDIR}/oginitrd.img
332cp /tmp/vmlinuz-${OSRELEASE} ${OGCLIENTBASEDIR}/ogvmlinuz
333cd -
334}
335
336
337ogClient2ndSqfs()
338{
339ogClientVar     
340echoAndLog "$FUNCNAME: Iniciando la creación del sistema de archivos en sqfs "
341# si ya existe un sqfs lo renombramos
342[ -f $OGCLIENTBASEDIR/ogclient.sqfs ] && mv $OGCLIENTBASEDIR/ogclient.sqfs $OGCLIENTBASEDIR/ogclient.sqfs.`date +%Y%m%d-%H%M%S`
343mount | grep $OGCLIENTMOUNT || mount $OGCLIENTFILE $OGCLIENTMOUNT -o loop,offset=32256
344mksquashfs $OGCLIENTMOUNT $OGCLIENTBASEDIR/ogclient.sqfs
345chmod 744 $OGCLIENTBASEDIR/ogclient.sqfs
346mount | grep $OGCLIENTMOUNT && umount $OGCLIENTMOUNT
347}
348
349
350
351
352ogClientSshkeys()
353{
354echo comprobamos clave rsa en el host REPO OG.
355if [ ! -f /root/.ssh/id_rsa.pub ]
356then
357   echo "creando claves rsa"
358        ssh-keygen -q -f /root/.ssh/id_dsa -t dsa -N "opengnsys"       
359else
360   echo "la claves ya estan creadas"
361fi
362echo "copiamos la clave publica a /tmp"
363cp /root/.ssh/id_dsa.pub /tmp
364
365cat /tmp/id_dsa.pub
366
367echo "schroot con instrucciones."
368schroot -c IMGogclient -- /root/importSshKeys.sh
369
370echo "limpiando"
371rm /tmp/id_dsa.pub   
372
373## copiamos ssh rsa del host al guest como authorized-key2
374##rm ${OGCLIENTMOUNT}/root/.ssh/authorized-key2
375##cat /root/.ssh/id_rsa.pub >> ${OGCLIENTMOUNT}/root/.ssh/authorized-key2
376#cat ${OGCLIENTMOUNT}/root/.ssh/id_rsa.pub >> ${OGCLIENTMOUNT}/root/.ssh/authorized-key2
377##mount | grep $OGCLIENTMOUNT || umount $OGCLIENTMOUNT
378}
379
380
381ogClientConfpxe()
382{
383################## DEJAMOS FICHERO DE EJEMPLOS PARA:
384#default
385cat << FIN >> /var/lib/tftpboot/pxelinux.cfg/defaultNEWClient
386LABEL pxe-${OGRELEASE}
387KERNEL ogclient/vmlinuz-$OGRELEASE
388APPEND initrd=ogclient/initrd.img-$OGRELEASE ip=dhcp ro boot=og vga=788 irqpoll acpi=on reposerver=
389LABEL pxe-2.6.32-21-generic-pae
390KERNEL ogclient/vmlinuz-2.6.32-21-generic-pae
391APPEND initrd=ogclient/initrd.img-2.6.32-21-generic-pae ip=dhcp ro boot=oginit vga=788 irqpoll acpi=on ogrepo=172.17.36.11 ogprotocol=nfs og2nd=sqfs
392LABEL cache
393KERNEL grub.exe
394APPEND --config-file="find --set-root /vmlinuz; kernel /vmlinuz ip=dhcp ro boot=og vga=788 irqpoll acpi=on engine=testing reposerver=172.17.32.242; initrd /initrd.img"
395LABEL net
396KERNEL grub.exe
397APPEND keeppxe --config-file="pxe detect; kernel (pd)/ogclient/vmlinuz-2.6.32-21-generic-pae ip=dhcp ro boot=og vga=788 irqpoll acpi=on engine=testing reposerver=172.17.32.242; initrd (pd)/ogclient/initrd.img-2.6.32-21-generic-pae"
398LABEL IfNOTcacheGOnet
399KERNEL grub.exe
400APPEND keeppxe --config-file="pxe detect; default 0; timeout 0; hiddenmenu; title cache; fallback 1; find --set-root /vmlinuz; kernel /vmlinuz ip=dhcp ro boot=og vga=788 irqpoll acpi=on engine=testing reposerver=172.17.32.242; initrd /initrd.img; boot; title net; kernel (pd)/ogclient/vmlinuz-2.6.32-21-generic-pae ip=dhcp ro boot=og vga=788 irqpoll acpi=on engine=testing reposerver=172.17.32.242; initrd (pd)/ogclient/initrd.img-2.6.32-21-generic-pae; boot"
401#LABEL pxe-2.6.32-21-generic-pae
402#KERNEL ogclient/vmlinuz-2.6.32-21-generic-pae
403#APPEND initrd=ogclient/initrd.img-2.6.32-21-generic-pae ip=dhcp ro boot=og vga=788 irqpoll acpi=on reposerver=172.17.32.242
404#LABEL grub
405#KERNEL grub.exe
406#APPEND keeppxe
407FIN
408#/etc/hosts
409echo "/var/lib/tftpboot   *(ro,no_subtree_check,no_root_squash,sync)" > /etc/exportsNEWClient
410/etc/init.d/nfs-kernel-server restart
411#####################################################################
412}
413
414
415
416############### No usados en el instalador, solo en actualizaciones.
417#/**
418#         ogClientMount [str_program]
419#@brief   Acceso al 2nd FS del cliente desde el Servidor Opengnsys
420#@param 1 Opciona: scripts o programa a ejecutar para automatizaciones
421#@return  Si no hay parametros: login de acceso.
422#@return  con un parametro: La salida del programa ejecutado
423#@exception
424#@note   
425#@todo   
426#@version 0.9 - Primera versión para OpenGnSys
427#@author  Antonio J. Doblas Viso, Universidad de Málaga
428#@date    2010/02/15
429#*/ ##
430function ogClientMount ()
431{
432        #TODO comprobar que OGFILE y OGFILEMOUNT existe.
433        mount | grep $OGCLIENTFILE > /dev/null || mount $OGCLIENTFILE $OGCLIENTMOUNT -o loop,offset=32256
434        mount | grep $OGCLIENTMOUNT/proc > /dev/null || mount --bind /proc $OGCLIENTMOUNT/proc
435        mount | grep $OGCLIENTMOUNT/sys > /dev/null || mount --bind /sys $OGCLIENTMOUNT/sys
436        mount | grep $OGCLIENTMOUNT/tmp > /dev/null || mount --bind /tmp $OGCLIENTMOUNT/tmp
437        mount | grep $OGCLIENTMOUNT/dev > /dev/null || mount --bind /dev $OGCLIENTMOUNT/dev
438        mount | grep $OGCLIENTMOUNT/dev/pts > /dev/null || mount --bind /dev/pts $OGCLIENTMOUNT/dev/pts
439       
440       
441        [ $# = 0 ] && $(chroot $OGCLIENTMOUNT /sbin/getty 38400 `tty`)
442        [ $# = 1 ] && chroot $OGCLIENTMOUNT $1
443       
444}
445
446#/**
447#         ogClientUnmount
448#@brief   Desmonta el 2nd FS del cliente desde el Servidor Opengnsys
449#@param   
450#@return 
451#@exception
452#@note   
453#@todo   
454#@version 0.9 - Primera versión para OpenGnSys
455#@author  Antonio J. Doblas Viso, Universidad de Málaga
456#@date    2010/02/15
457#*/ ##
458
459function ogClientUnmount ()
460{
461        cd /tmp
462        echo "desmontando cliente espere"
463        sleep 5
464        mount | grep $OGCLIENTMOUNT/dev > /dev/null && umount $OGCLIENTMOUNT/dev || ogClientUnmount
465        mount | grep $OGCLIENTMOUNT/dev/pts > /dev/null && umount $OGCLIENTMOUNT/dev/pts || ogClientUnmount
466        mount | grep $OGCLIENTMOUNT/proc > /dev/null && umount $OGCLIENTMOUNT/proc || ogClientUnmount
467        mount | grep $OGCLIENTMOUNT/sys > /dev/null && umount $OGCLIENTMOUNT/sys || ogClientUnmount
468        mount | grep $OGCLIENTMOUNT/tmp > /dev/null && umount $OGCLIENTMOUNT/tmp || ogClientUnmount
469        mount | grep $OGCLIENTMOUNT > /dev/null && umount $OGCLIENTMOUNT || ogClientUnmount
470        #-d -f -l
471
472}
473
474
475############################ hasta el final del archivo antiguos
476############################# ANTIGUOS
477function ogClientGetRelease ()
478{
479        #1 OSCODENAME jaunty|karmic|lucid
480        case $1 in
481                jaunty|JAUNTY)
482                        OSCODENAME=jaunty
483                        OGRELEASE="2.6.28-11-generic"
484                        echo $OGRELEASE
485                ;;
486                lenny|LENNY)
487                        OSCODENAME=lenny
488                        OGRELEASE="2.6.28-11-generic"
489                        echo $OGRELEASE
490                ;;
491                squeeze|SQUEEZE)
492                        OSCODENAME=squeeze
493                        OGRELEASE="2.6.28-11-generic"
494                        echo $OGRELEASE
495                ;;
496                karmic|KARMIC)
497                        OSCODENAME=karmic
498                        OGRELEASE="2.6.31-14-generic"
499                        echo $OGRELEASE
500                ;;
501                lucid|LUCID)
502                        OSCODENAME=lucid
503                        OGRELEASE="2.6.32-21-generic-pae"
504                        echo $OGRELEASE
505                ;;
506                *)
507                        return 1
508                ;;
509        esac
510               
511}
512
513
514#/**
515#         ogClientGenerator str_versionUbuntu str_release
516#@brief   Crea el 2nd FS del cliente desde el Servidor Opengnsys
517#@param 1 Versión de ubuntu a generar, jaunty karmic
518#@return 
519#@exception
520#@note   
521#@todo   
522#@version 0.9 - Primera versión para OpenGnSys
523#@author  Antonio J. Doblas Viso, Universidad de Málaga
524#@date    2010/02/15
525#*/ ##
526
527function ogClientGeneratorDebootstrap ()
528{
529        if [ $# != 2 ]
530        then
531                echo Debes introducir como argumento1: jaunty karmic lucid
532                echo Debes introducir como argumento2: la release
533                echo utiliza como entrada ogClientCheckVersion
534                return
535        fi
536        OSCODENAME=$1
537        OGRELEASE=$2
538       
539        # instalamos el ultimo debotstrap para permitir instalar versiones superiores a nuestro sistema
540        #apt-get install gdebi-core
541        #wget $LASTDEBOOTSTRAP
542        #gdebi -n debootstrap_1.0.20_all.deb
543
544        #Desmontamos por si acaso el dispositivo virtual
545        mount | grep $OGCLIENTMOUNT && umount $OGCLIENTMOUNT
546
547        #Creamos el directorio donde montaremos el disco virtual
548        mkdir -p $OGCLIENTMOUNT
549
550        #Creamos el disco virtual con el filesystem del cliente.
551        dd if=/dev/zero of=$OGCLIENTFILE bs=1048576 count=$OGCLIENTSIZEMB
552        #qemu-img create $OGCLIENTFILE 3G       
553        #dd if=/dev/zero of=$OGCLIENTFILE bs=1k count=$OGCLIENTSIZEKB   # necesita 500MB
554       
555       
556        #particionamos el disco virtual
557        losetup /dev/loop0 $OGCLIENTFILE
558        echo -e "n\np\n1\n\n\nt\n83\nw" | fdisk /dev/loop0
559        losetup -d /dev/loop0
560       
561       
562        #formateamos la particion principal.
563        losetup -o 32256 /dev/loop1 $OGCLIENTFILE
564        mkfs.ext3 -b 4096 -L $OGCLIENTLABEL /dev/loop1
565        #mkfs.ext3 -L $OGCLIENTLABEL /dev/loop1
566        #mkfs.ext3 -L $OGCLIENTLABEL /dev/loop1
567        losetup -d /dev/loop1
568       
569        #Montamos el dispositivo virtual en su punto de montaje.
570        mount | grep $OGCLIENTMOUNT || mount $OGCLIENTFILE $OGCLIENTMOUNT -o loop,offset=32256
571
572        #TODO Comprobar arquitectura
573        #Iniciamos la creación del sistema en el directorio de clientes.
574        #echo debootstrap --include=linux-image-${OGRELEASE},dbus --arch=i386 --components=main,universe $OGVERSION $OGCLIENTMOUNT http://es.archive.ubuntu.com/ubuntu/
575        debootstrap --include=linux-image-${OGRELEASE},linux-headers-${OGRELEASE} --arch=i386 --components=main,universe $OSCODENAME $OGCLIENTMOUNT http://es.archive.ubuntu.com/ubuntu/
576        ##preubas
577        #debootstrap --include=linux-image-${OGRELEASE} --arch=i386 --variant=minbase $OGVERSION $OGCLIENTMOUNT http://es.archive.ubuntu.com/ubuntu/
578        #debootstrap --variant=minbase --include=linux-image-${OGRELEASE} --arch=i386 $OGVERSION $OGCLIENTMOUNT http://es.archive.ubuntu.com/ubuntu/
579
580        if [ $? -ne 0 ]; then
581                errorAndLog "ogClientGeneratorDebootstrap(): ha fallado!"
582                return 1
583        else
584                echoAndLog "ogClientGeneratorDebootstrap(): ok"
585                return 0
586        fi     
587          sleep 5
588
589mount | grep $OGCLIENTMOUNT && umount $OGCLIENTFILE
590
591cat << EOF > /etc/schroot/schroot.conf
592[DIRogclient]
593type=directory
594directory=/var/lib/tftpboot/ogclient/ogclientmount
595description=ogclient ubuntu lucid DIR
596priority=2
597users=root
598groups=root
599root-groups=root
600root-users=root
601EOF
602}
603
604
605
606
607
Note: See TracBrowser for help on using the repository browser.