source: client/boot-tools/ogClientManager.lib @ afeb76b

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 afeb76b was a9f114a, checked in by adv <adv@…>, 14 years ago

version 1.0.2 #404 funcion de crear iso para el boot-tools -ogclient- live cd

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

  • Property mode set to 100644
File size: 22.3 KB
Line 
1
2ogClientVar()
3{
4export SVNCLIENTDIR=/tmp/opengnsys_installer/opengnsys/client/boot-tools
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/
235#ln -fs $OGCLIENTMOUNT/usr/local/lib/fonts /usr/local/Trolltech/QtEmbedded-4.5.1/lib/fonts
236#ln -fs $OGCLIENTMOUNT/usr/local/lib/fonts /usr/local/QtEmbedded-4.6.2/lib/fonts
237#ln -fs $OGCLIENTMOUNT/usr/local/lib/fonts /usr/local/QtEmbedded-4.6.3/lib/fonts
238cp -pr ${SVNCLIENTSTRUCTURE}/lib/fonts $OGCLIENTMOUNT/usr/local/Trolltech/QtEmbedded-4.5.1/lib/fonts
239cp -pr ${SVNCLIENTSTRUCTURE}/lib/fonts $OGCLIENTMOUNT/usr/local/QtEmbedded-4.6.2/lib/fonts
240cp -pr ${SVNCLIENTSTRUCTURE}/lib/fonts $OGCLIENTMOUNT/usr/local/QtEmbedded-4.6.3/lib/fonts
241
242
243
244
245if [ $? -ne 0 ]
246then
247        errorAndLog "$FUNCNAME(): Linking Browser fonts : ERROR"
248        return 1
249fi
250
251# B ########################################################
252cp -pr ${SVNCLIENTSTRUCTURE}/lib/pci.ids $OGCLIENTMOUNT/etc
253if [ $? -ne 0 ]
254then
255        errorAndLog "$FUNCNAME(): Copying pci.ids : ERROR"
256        return 1
257fi
258
259cp ${SVNCLIENTSTRUCTURE}/bin/browser $OGCLIENTMOUNT/bin
260if [ $? -ne 0 ]
261then
262        errorAndLog "$FUNCNAME(): Copying Browser : ERROR"
263        return 1
264fi
265
266cp ${SVNCLIENTSTRUCTURE}/bin/ogAdmClient  $OGCLIENTMOUNT/bin
267if [ $? -ne 0 ]
268then
269        errorAndLog "$FUNCNAME(): Copying ogAdmClient : ERROR"
270        return 1
271else
272        mount | grep $OGCLIENTMOUNT && umount $OGCLIENTMOUNT
273        mount | grep $OGCLIENTMOUNT && umount $OGCLIENTMOUNT
274        mount | grep $OGCLIENTMOUNT && umount $OGCLIENTMOUNT
275        mount | grep $OGCLIENTMOUNT && umount $OGCLIENTMOUNT
276        echoAndLog "$FUNCNAME: Finalizado: OK  "
277        return 0
278fi
279}
280
281
282ogClientSchrootConf()
283{
284echoAndLog "$FUNCNAME: Iniciando la configuración del schroot "
285cp /etc/schroot/schroot.conf /etc/schroot/schroot.conf.`getDateTime`
286cat << EOF > /etc/schroot/schroot.conf
287[IMGogclient]
288type=loopback
289file=/var/lib/tftpboot/ogclient/ogclient.img
290description=ogclient ubuntu luc IMGi
291priority=1
292users=root
293groups=root
294root-groups=root
295mount-options=-o offset=32256
296root-users=root
297[DIRogclient]
298type=directory
299directory=/var/lib/tftpboot/ogclient/ogclientmount
300description=ogclient ubuntu lucid DIR
301priority=2
302users=root
303groups=root
304root-groups=root
305root-users=root
306EOF
307cp /etc/schroot/mount-defaults /etc/schroot/mount-defaults.`getDateTime`
308cat << EOF > /etc/schroot/mount-defaults
309# mount.defaults: static file system information for chroots.
310# Note that the mount point will be prefixed by the chroot path
311# (CHROOT_PATH)
312#
313# <file system> <mount point>   <type>  <options>       <dump>  <pass>
314proc            /proc           proc    defaults        0       0
315#procbususb      /proc/bus/usb   usbfs   defaults        0       0
316#/dev            /dev            none    rw,bind         0       0
317/dev/pts        /dev/pts        none    rw,bind         0       0
318/dev/shm        /dev/shm        none    rw,bind         0       0
319#/home          /home           none    rw,bind         0       0
320/tmp            /tmp            none    rw,bind         0       0                                                               
321EOF
322
323echoAndLog "$FUNCNAME: Finalizado: OK  "
324return 0
325}
326
327
328
329########### param1   "host"
330ogClientInitrd()
331{
332ogClientVar     
333cd /
334ogClientOsInfo $1
335schroot -c IMGogclient -- /root/GenerateInitrd.generic.sh
336echo "cp /tmp/*-${OSRELEASE} $OGCLIENTBASEDIR"
337cp /tmp/*-${OSRELEASE} $OGCLIENTBASEDIR
338cp /tmp/initrd.img-${OSRELEASE} ${OGCLIENTBASEDIR}/oginitrd.img
339cp /tmp/vmlinuz-${OSRELEASE} ${OGCLIENTBASEDIR}/ogvmlinuz
340cd -
341}
342
343
344ogClient2ndSqfs()
345{
346ogClientVar     
347echoAndLog "$FUNCNAME: Iniciando la creación del sistema de archivos en sqfs "
348# si ya existe un sqfs lo renombramos
349[ -f $OGCLIENTBASEDIR/ogclient.sqfs ] && mv $OGCLIENTBASEDIR/ogclient.sqfs $OGCLIENTBASEDIR/ogclient.sqfs.`date +%Y%m%d-%H%M%S`
350mount | grep $OGCLIENTMOUNT || mount $OGCLIENTFILE $OGCLIENTMOUNT -o loop,offset=32256
351mksquashfs $OGCLIENTMOUNT $OGCLIENTBASEDIR/ogclient.sqfs
352chmod 744 $OGCLIENTBASEDIR/ogclient.sqfs
353mount | grep $OGCLIENTMOUNT && umount $OGCLIENTMOUNT
354}
355
356
357
358
359ogClientSshkeys()
360{
361echo comprobamos clave rsa en el host REPO OG.
362if [ ! -f /root/.ssh/id_rsa.pub ]
363then
364   echo "creando claves rsa"
365        ssh-keygen -q -f /root/.ssh/id_dsa -t dsa -N "opengnsys"       
366else
367   echo "la claves ya estan creadas"
368fi
369echo "copiamos la clave publica a /tmp"
370cp /root/.ssh/id_dsa.pub /tmp
371
372cat /tmp/id_dsa.pub
373
374echo "schroot con instrucciones."
375schroot -c IMGogclient -- /root/importSshKeys.sh
376
377echo "limpiando"
378rm /tmp/id_dsa.pub   
379
380## copiamos ssh rsa del host al guest como authorized-key2
381##rm ${OGCLIENTMOUNT}/root/.ssh/authorized-key2
382##cat /root/.ssh/id_rsa.pub >> ${OGCLIENTMOUNT}/root/.ssh/authorized-key2
383#cat ${OGCLIENTMOUNT}/root/.ssh/id_rsa.pub >> ${OGCLIENTMOUNT}/root/.ssh/authorized-key2
384##mount | grep $OGCLIENTMOUNT || umount $OGCLIENTMOUNT
385}
386
387
388
389function ogCrearISO {
390apt-get install syslinux genisoimage
391#apt-get install gpxe
392mkdir -p /tmp/iso/isolinux
393#cd tmp/iso/
394cp -prv /usr/lib/syslinux/* /tmp/iso/isolinux/
395cp -prv /usr/share/gpxe/* /tmp/iso/isolinux/
396mkdir -p /tmp/iso/ogclient
397#el ogclienteToISO  debe tener una copia del ogvmlinuz como linuxISO
398cp -prv /var/lib/tftpboot/ogclientToIso/* /tmp/iso/ogclient
399
400
401cat << FIN > /tmp/iso/isolinux/isolinux.cfg
402DEFAULT menu.c32
403PROMPT 0
404ALLOWOPTIONS 1
405
406MENU TITLE FuTuR3 Live Collection
407
408LABEL gpxe
409MENU LABEL gpxe
410KERNEL /clonezilla/live/vmlinuz1
411APPEND initrd=/clonezilla/live/initrd1.img boot=live union=aufs noswap vga=788 ip=frommedia
412
413
414#default 0
415#prompt 1
416#timeout 100
417
418#display mensaje.txt
419
420 
421
422
423LABEL 0
424MENU LABEL ogClient vga irqpool acpi ogdebug ip:none
425KERNEL /ogclient/linuxISO
426APPEND initrd=/ogclient/oginitrd.img ro vga=788 irqpoll acpi=on boot=oginit  og2nd=sqfs ogprotocol=cdrom ogactiveadmin=true ogdebug=true ip=none
427
428LABEL 1
429MENU LABEL ogClient irqpoll acpi ip:none
430KERNEL /ogclient/linuxISO
431APPEND initrd=/ogclient/oginitrd.img ro  irqpoll acpi=on boot=oginit  og2nd=sqfs ogprotocol=cdrom ogactiveadmin=true ogdebug=false ip=none
432
433LABEL 2
434MENU LABEL ogClient acpi debug ip=dhcp
435KERNEL /ogclient/linuxISO
436APPEND initrd=/ogclient/oginitrd.img ro acpi=on boot=oginit  og2nd=sqfs ogprotocol=cdrom ogactiveadmin=true ogdebug=true ip=dhcp
437
438LABEL 3
439MENU LABEL ogClient ip=dhcp
440KERNEL /ogclient/linuxISO
441APPEND initrd=/ogclient/oginitrd.img ro acpi=off boot=oginit  og2nd=sqfs ogprotocol=cdrom ogactiveadmin=true ogdebug=false ip=dhcp
442
443
444#LABEL ogclient
445#KERNEL /ogclient/linuxISO
446#APPEND initrd=/ogclient/initrdISO.img
447
448#KERNEL linuxISO
449#APPEND initrd=initrdISO.img
450
451LABEL 4
452MENU LABEL local
453localboot 0x80
454append -
455
456
457label 5
458MENU LABEL Network boot via gPXE lkrn
459KERNEL gpxe.lkrn
460
461label 5
462MENU LABEL Network boot via gPXE usb
463KERNEL gpxe.usb
464
465label 5
466MENU LABEL Network boot via gPXE  pxe
467KERNEL gpxe.pxe
468
469label 5
470MENU LABEL Network boot via gPXE  iso
471KERNEL gpxe.iso
472FIN
473#### /tmp/iso#
474mkisofs -V ogClient -o ogClient.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -J -no-emul-boot -boot-load-size 4 -boot-info-table tmp/iso
475
476}
477
478function ogprobarISO {
479#/tmp/iso
480qemu -m 256 -boot d -cdrom ogClient.iso
481}
482
483
484
485
486
487
488ogClientConfpxe()
489{
490################## DEJAMOS FICHERO DE EJEMPLOS PARA:
491#default
492cat << FIN >> /var/lib/tftpboot/pxelinux.cfg/defaultNEWClient
493LABEL pxe-${OGRELEASE}
494KERNEL ogclient/vmlinuz-$OGRELEASE
495APPEND initrd=ogclient/initrd.img-$OGRELEASE ip=dhcp ro boot=og vga=788 irqpoll acpi=on reposerver=
496LABEL pxe-2.6.32-21-generic-pae
497KERNEL ogclient/vmlinuz-2.6.32-21-generic-pae
498APPEND 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
499LABEL cache
500KERNEL grub.exe
501APPEND --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"
502LABEL net
503KERNEL grub.exe
504APPEND 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"
505LABEL IfNOTcacheGOnet
506KERNEL grub.exe
507APPEND 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"
508#LABEL pxe-2.6.32-21-generic-pae
509#KERNEL ogclient/vmlinuz-2.6.32-21-generic-pae
510#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
511#LABEL grub
512#KERNEL grub.exe
513#APPEND keeppxe
514FIN
515#/etc/hosts
516echo "/var/lib/tftpboot   *(ro,no_subtree_check,no_root_squash,sync)" > /etc/exportsNEWClient
517/etc/init.d/nfs-kernel-server restart
518#####################################################################
519}
520
521
522
523############### No usados en el instalador, solo en actualizaciones.
524#/**
525#         ogClientMount [str_program]
526#@brief   Acceso al 2nd FS del cliente desde el Servidor Opengnsys
527#@param 1 Opciona: scripts o programa a ejecutar para automatizaciones
528#@return  Si no hay parametros: login de acceso.
529#@return  con un parametro: La salida del programa ejecutado
530#@exception
531#@note   
532#@todo   
533#@version 0.9 - Primera versión para OpenGnSys
534#@author  Antonio J. Doblas Viso, Universidad de Málaga
535#@date    2010/02/15
536#*/ ##
537function ogClientMount ()
538{
539        #TODO comprobar que OGFILE y OGFILEMOUNT existe.
540        mount | grep $OGCLIENTFILE > /dev/null || mount $OGCLIENTFILE $OGCLIENTMOUNT -o loop,offset=32256
541        mount | grep $OGCLIENTMOUNT/proc > /dev/null || mount --bind /proc $OGCLIENTMOUNT/proc
542        mount | grep $OGCLIENTMOUNT/sys > /dev/null || mount --bind /sys $OGCLIENTMOUNT/sys
543        mount | grep $OGCLIENTMOUNT/tmp > /dev/null || mount --bind /tmp $OGCLIENTMOUNT/tmp
544        mount | grep $OGCLIENTMOUNT/dev > /dev/null || mount --bind /dev $OGCLIENTMOUNT/dev
545        mount | grep $OGCLIENTMOUNT/dev/pts > /dev/null || mount --bind /dev/pts $OGCLIENTMOUNT/dev/pts
546       
547       
548        [ $# = 0 ] && $(chroot $OGCLIENTMOUNT /sbin/getty 38400 `tty`)
549        [ $# = 1 ] && chroot $OGCLIENTMOUNT $1
550       
551}
552
553#/**
554#         ogClientUnmount
555#@brief   Desmonta el 2nd FS del cliente desde el Servidor Opengnsys
556#@param   
557#@return 
558#@exception
559#@note   
560#@todo   
561#@version 0.9 - Primera versión para OpenGnSys
562#@author  Antonio J. Doblas Viso, Universidad de Málaga
563#@date    2010/02/15
564#*/ ##
565
566function ogClientUnmount ()
567{
568        cd /tmp
569        echo "desmontando cliente espere"
570        sleep 5
571        mount | grep $OGCLIENTMOUNT/dev > /dev/null && umount $OGCLIENTMOUNT/dev || ogClientUnmount
572        mount | grep $OGCLIENTMOUNT/dev/pts > /dev/null && umount $OGCLIENTMOUNT/dev/pts || ogClientUnmount
573        mount | grep $OGCLIENTMOUNT/proc > /dev/null && umount $OGCLIENTMOUNT/proc || ogClientUnmount
574        mount | grep $OGCLIENTMOUNT/sys > /dev/null && umount $OGCLIENTMOUNT/sys || ogClientUnmount
575        mount | grep $OGCLIENTMOUNT/tmp > /dev/null && umount $OGCLIENTMOUNT/tmp || ogClientUnmount
576        mount | grep $OGCLIENTMOUNT > /dev/null && umount $OGCLIENTMOUNT || ogClientUnmount
577        #-d -f -l
578
579}
580
581
582############################ hasta el final del archivo antiguos
583############################# ANTIGUOS
584function ogClientGetRelease ()
585{
586        #1 OSCODENAME jaunty|karmic|lucid
587        case $1 in
588                jaunty|JAUNTY)
589                        OSCODENAME=jaunty
590                        OGRELEASE="2.6.28-11-generic"
591                        echo $OGRELEASE
592                ;;
593                lenny|LENNY)
594                        OSCODENAME=lenny
595                        OGRELEASE="2.6.28-11-generic"
596                        echo $OGRELEASE
597                ;;
598                squeeze|SQUEEZE)
599                        OSCODENAME=squeeze
600                        OGRELEASE="2.6.28-11-generic"
601                        echo $OGRELEASE
602                ;;
603                karmic|KARMIC)
604                        OSCODENAME=karmic
605                        OGRELEASE="2.6.31-14-generic"
606                        echo $OGRELEASE
607                ;;
608                lucid|LUCID)
609                        OSCODENAME=lucid
610                        OGRELEASE="2.6.32-21-generic-pae"
611                        echo $OGRELEASE
612                ;;
613                *)
614                        return 1
615                ;;
616        esac
617               
618}
619
620
621#/**
622#         ogClientGenerator str_versionUbuntu str_release
623#@brief   Crea el 2nd FS del cliente desde el Servidor Opengnsys
624#@param 1 Versión de ubuntu a generar, jaunty karmic
625#@return 
626#@exception
627#@note   
628#@todo   
629#@version 0.9 - Primera versión para OpenGnSys
630#@author  Antonio J. Doblas Viso, Universidad de Málaga
631#@date    2010/02/15
632#*/ ##
633
634function ogClientGeneratorDebootstrap ()
635{
636        if [ $# != 2 ]
637        then
638                echo Debes introducir como argumento1: jaunty karmic lucid
639                echo Debes introducir como argumento2: la release
640                echo utiliza como entrada ogClientCheckVersion
641                return
642        fi
643        OSCODENAME=$1
644        OGRELEASE=$2
645       
646        # instalamos el ultimo debotstrap para permitir instalar versiones superiores a nuestro sistema
647        #apt-get install gdebi-core
648        #wget $LASTDEBOOTSTRAP
649        #gdebi -n debootstrap_1.0.20_all.deb
650
651        #Desmontamos por si acaso el dispositivo virtual
652        mount | grep $OGCLIENTMOUNT && umount $OGCLIENTMOUNT
653
654        #Creamos el directorio donde montaremos el disco virtual
655        mkdir -p $OGCLIENTMOUNT
656
657        #Creamos el disco virtual con el filesystem del cliente.
658        dd if=/dev/zero of=$OGCLIENTFILE bs=1048576 count=$OGCLIENTSIZEMB
659        #qemu-img create $OGCLIENTFILE 3G       
660        #dd if=/dev/zero of=$OGCLIENTFILE bs=1k count=$OGCLIENTSIZEKB   # necesita 500MB
661       
662       
663        #particionamos el disco virtual
664        losetup /dev/loop0 $OGCLIENTFILE
665        echo -e "n\np\n1\n\n\nt\n83\nw" | fdisk /dev/loop0
666        losetup -d /dev/loop0
667       
668       
669        #formateamos la particion principal.
670        losetup -o 32256 /dev/loop1 $OGCLIENTFILE
671        mkfs.ext3 -b 4096 -L $OGCLIENTLABEL /dev/loop1
672        #mkfs.ext3 -L $OGCLIENTLABEL /dev/loop1
673        #mkfs.ext3 -L $OGCLIENTLABEL /dev/loop1
674        losetup -d /dev/loop1
675       
676        #Montamos el dispositivo virtual en su punto de montaje.
677        mount | grep $OGCLIENTMOUNT || mount $OGCLIENTFILE $OGCLIENTMOUNT -o loop,offset=32256
678
679        #TODO Comprobar arquitectura
680        #Iniciamos la creación del sistema en el directorio de clientes.
681        #echo debootstrap --include=linux-image-${OGRELEASE},dbus --arch=i386 --components=main,universe $OGVERSION $OGCLIENTMOUNT http://es.archive.ubuntu.com/ubuntu/
682        debootstrap --include=linux-image-${OGRELEASE},linux-headers-${OGRELEASE} --arch=i386 --components=main,universe $OSCODENAME $OGCLIENTMOUNT http://es.archive.ubuntu.com/ubuntu/
683        ##preubas
684        #debootstrap --include=linux-image-${OGRELEASE} --arch=i386 --variant=minbase $OGVERSION $OGCLIENTMOUNT http://es.archive.ubuntu.com/ubuntu/
685        #debootstrap --variant=minbase --include=linux-image-${OGRELEASE} --arch=i386 $OGVERSION $OGCLIENTMOUNT http://es.archive.ubuntu.com/ubuntu/
686
687        if [ $? -ne 0 ]; then
688                errorAndLog "ogClientGeneratorDebootstrap(): ha fallado!"
689                return 1
690        else
691                echoAndLog "ogClientGeneratorDebootstrap(): ok"
692                return 0
693        fi     
694          sleep 5
695
696mount | grep $OGCLIENTMOUNT && umount $OGCLIENTFILE
697
698cat << EOF > /etc/schroot/schroot.conf
699[DIRogclient]
700type=directory
701directory=/var/lib/tftpboot/ogclient/ogclientmount
702description=ogclient ubuntu lucid DIR
703priority=2
704users=root
705groups=root
706root-groups=root
707root-users=root
708EOF
709}
710
711
712
713
714
Note: See TracBrowser for help on using the repository browser.