source: server/bin/installoglive @ c21abbc

Last change on this file since c21abbc was de687e3, checked in by ramon <ramongomez@…>, 10 years ago

#673: Integrar código de la versión 1.0.6 en rama principal.

git-svn-id: https://opengnsys.es/svn/trunk@4641 a21b9725-9963-47de-94b9-378ad31fedc9

  • Property mode set to 100755
File size: 2.4 KB
Line 
1#!/bin/bash
2# installoglive - descarga e instala cliente ogLive.
3# Nota: El usuario debe elegir el número del ogLive que desea instalar.
4# Uso:  installoglive
5# Autor: Ramón M. Gómez - ETSII Univ. Sevilla
6# Fecha: 2015-01-26
7
8
9# Control de acceso.
10PROG=$(basename $0)
11if [ "$USER" != "root" ]; then
12        echo "$PROG: Need to be root." >&2
13        exit 1
14fi
15
16# Constantes.
17DOWNLOADURL="http://opengnsys.es/downloads"
18OPENGNSYS=/opt/opengnsys
19OGINITRD=$OPENGNSYS/tftpboot/ogclient/oginitrd.img
20OGVMLINUZ=$OPENGNSYS/tftpboot/ogclient/ogvmlinuz
21
22# Listar todos los ficheros ogLive que pueden ser descargados.
23OGLIVE=( $(wget $DOWNLOADURL -O - 2>/dev/null|grep ogLive.*iso) )
24NISOS=${#OGLIVE[@]}
25echo "Descargas disponibles (+- = instalado):"
26for i in $(seq 1 $NISOS); do
27        [ -e $OPENGNSYS/lib/${OGLIVE[i-1]} ] && OGLIVE[i-1]="+-${OGLIVE[i-1]}"
28done
29select opt in ${OGLIVE[@]}; do
30        [ -n "$opt" ] && OGLIVEFILE=${opt/+-/} && break
31done
32
33# Tamaño del fichero a descargar.
34SOURCELENGTH=$(LANG=C wget --spider $DOWNLOADURL/$OGLIVEFILE 2>&1 | awk '/Length:/ {print $2}')
35[ -n "$SOURCELENGTH" ] || exit
36
37# Descarga de ogLive.
38TARGETFILE=$OPENGNSYS/lib/$OGLIVEFILE
39wget $DOWNLOADURL/$OGLIVEFILE -O $TARGETFILE || exit
40
41# Obtener la clave actual de acceso a Samba para restaurarla tras la descarga.
42if [ -f $OGINITRD ]; then
43        SAMBAPASS=$(gzip -dc $OGINITRD | \
44        cpio -i --to-stdout scripts/ogfunctions 2>&1 | \
45                        grep "^[        ].*OPTIONS=" | \
46                        sed 's/\(.*\)pass=\(\w*\)\(.*\)/\2/')
47fi
48
49# Hacer copia de seguridad del ogLive actual.
50rm -fr $OPENGNSYS/tftpboot/ogclient.old
51mv -f $OPENGNSYS/tftpboot/ogclient $OPENGNSYS/tftpboot/ogclient.old
52
53# Montar la imagen ISO del ogclient, actualizar ficheros y desmontar.
54TMPDIR=/tmp/${OGLIVEFILE%.iso}
55mkdir -p $TMPDIR
56mount -o loop,ro $TARGETFILE $TMPDIR
57cp -va $TMPDIR/ogclient $OPENGNSYS/tftpboot/ogclient
58umount $TMPDIR
59rmdir $TMPDIR
60
61# Recuperar la clave de acceso a Samba o solicitar una nueva clave.
62if [ -n "$SAMBAPASS" ]; then
63        echo -ne "$SAMBAPASS\n$SAMBAPASS\n" | $OPENGNSYS/bin/setsmbpass
64else
65        $OPENGNSYS/bin/setsmbpass
66fi
67
68# Establecer los permisos.
69find -L $OPENGNSYS/tftpboot/ogclient -type d -exec chmod 755 {} \;
70find -L $OPENGNSYS/tftpboot/ogclient -type f -exec chmod 644 {} \;
71chown -R :opengnsys $OPENGNSYS/tftpboot/ogclient
72
73# Ofrecer md5 del kernel y vmlinuz para ogupdateinitrd en cache
74cp -av $OPENGNSYS/tftpboot/ogclient/{ogvmlinuz,oginitrd.img}* $OPENGNSYS/tftpboot
75
Note: See TracBrowser for help on using the repository browser.