versión 1.0.1: actualizar correctamente enlaces simbólicos (cerrar #400).

git-svn-id: https://opengnsys.es/svn/branches/version1.0@2014 a21b9725-9963-47de-94b9-378ad31fedc9
remotes/github/debian-pkg
ramon 2011-05-23 10:15:41 +00:00
parent 78b5dfe77e
commit aa36857ef4
2 changed files with 48 additions and 130 deletions

View File

@ -507,29 +507,38 @@ function checkNetworkConnection()
# Obtener los parámetros de red de la interfaz por defecto.
function getNetworkSettings()
{
# Variables globales definidas:
# - SERVERIP: IP local del servidor.
# - NETIP: IP de la red.
# - NETMASK: máscara de red.
# - NETBROAD: IP de difusión de la red.
# - ROUTERIP: IP del router.
# - DNSIP: IP del servidor DNS.
# Arrays globales definidas:
# - DEVICE: nombres de dispositivos de red activos.
# - DEFAULTDEV: dispositivo de red por defecto.
# - SERVERIP: IP local del servidor.
# - NETIP: IP de la red.
# - NETMASK: máscara de red.
# - NETBROAD: IP de difusión de la red.
# - ROUTERIP: IP del router.
# - DNSIP: IP del servidor DNS.
local MAINDEV
local i=0
local dev=""
echoAndLog "${FUNCNAME}(): Detecting default network parameters."
MAINDEV=$(ip -o link show up | awk '!/loopback/ {d=d$2} END {sub(/:.*/,"",d); print d}')
if [ -z "$MAINDEV" ]; then
errorAndLog "${FUNCNAME}(): Network device not detected."
echoAndLog "${FUNCNAME}(): Detecting network parameters."
DEVICE=$(ip -o link show up | awk '!/loopback/ {sub(/:.*/,"",$2); print $2}')
if [ -z "$DEVICE" ]; then
errorAndLog "${FUNCNAME}(): Network devices not detected."
exit 1
fi
SERVERIP=$(ip -o addr show dev $MAINDEV | awk '$3~/inet$/ {sub (/\/.*/, ""); print ($4)}')
NETMASK=$(LANG=C ifconfig $MAINDEV | awk '/Mask/ {sub(/.*:/,"",$4); print $4}')
NETBROAD=$(ip -o addr show dev $MAINDEV | awk '$3~/inet$/ {print ($6)}')
NETIP=$(netstat -nr | grep $MAINDEV | awk '$1!~/0\.0\.0\.0/ {if (n=="") n=$1} END {print n}')
ROUTERIP=$(netstat -nr | awk '$1~/0\.0\.0\.0/ {print $2}')
for dev in ${DEVICE[*]}; do
SERVERIP[i]=$(ip -o addr show dev $dev | awk '$3~/inet$/ {sub (/\/.*/, ""); print ($4)}')
if [ -n "${SERVERIP[i]}"; then
NETMASK[i]=$(LANG=C ifconfig $dev | awk '/Mask/ {sub(/.*:/,"",$4); print $4}')
NETBROAD[i]=$(ip -o addr show dev $dev | awk '$3~/inet$/ {print ($6)}')
NETIP[i]=$(netstat -nr | awk -v d="$dev" '$1!~/0\.0\.0\.0/&&$8==d {if (n=="") n=$1} END {print n}')
ROUTERIP[i]=$(netstat -nr | awk -v d="$dev" '$1~/0\.0\.0\.0/&&$8==d {print $2}')
DEFAULTDEV=${DEFAULTDEV:-"$dev"}
let i++
fi
done
DNSIP=$(awk '/nameserver/ {print $2}' /etc/resolv.conf | head -n1)
if [ -z "$NETIP" -o -z "$NETMASK" ]; then
if [ -z "${NETIP}[*]" -o -z "${NETMASK[*]}" ]; then
errorAndLog "${FUNCNAME}(): Network not detected."
exit 1
fi
@ -590,108 +599,6 @@ function testPxe ()
}
########################################################################
## Configuracion servicio NFS
########################################################################
# ADVERTENCIA: usa variables globales NETIP y NETMASK!
function nfsConfigure()
{
echoAndLog "${FUNCNAME}(): Config nfs server."
backupFile /etc/exports
nfsAddExport /opt/opengnsys/client ${NETIP}/${NETMASK}:ro,no_subtree_check,no_root_squash,sync
if [ $? -ne 0 ]; then
errorAndLog "${FUNCNAME}(): error while adding nfs client config"
return 1
fi
nfsAddExport /opt/opengnsys/images ${NETIP}/${NETMASK}:rw,no_subtree_check,no_root_squash,sync,crossmnt
if [ $? -ne 0 ]; then
errorAndLog "${FUNCNAME}(): error while adding nfs images config"
return 1
fi
nfsAddExport /opt/opengnsys/log/clients ${NETIP}/${NETMASK}:rw,no_subtree_check,no_root_squash,sync
if [ $? -ne 0 ]; then
errorAndLog "${FUNCNAME}(): error while adding logging client config"
return 1
fi
nfsAddExport /var/lib/tftpboot ${NETIP}/${NETMASK}:ro,no_subtree_check,no_root_squash,sync
if [ $? -ne 0 ]; then
errorAndLog "${FUNCNAME}(): error while adding second filesystem for the pxe ogclient"
return 1
fi
/etc/init.d/nfs-kernel-server restart
exportfs -va
if [ $? -ne 0 ]; then
errorAndLog "${FUNCNAME}(): error while configure exports"
return 1
fi
echoAndLog "${FUNCNAME}(): Added NFS configuration to file \"/etc/exports\"."
return 0
}
# ejemplos:
#nfsAddExport /opt/opengnsys 192.168.0.0/255.255.255.0:ro,no_subtree_check,no_root_squash,sync
#nfsAddExport /opt/opengnsys 192.168.0.0/255.255.255.0
#nfsAddExport /opt/opengnsys 80.20.2.1:ro 192.123.32.2:rw
function nfsAddExport()
{
if [ $# -lt 2 ]; then
errorAndLog "${FUNCNAME}(): invalid number of parameters"
exit 1
fi
if [ ! -f /etc/exports ]; then
errorAndLog "${FUNCNAME}(): /etc/exports don't exists"
return 1
fi
local export="${1}"
local contador=0
local cadenaexport
grep "^${export}" /etc/exports > /dev/null
if [ $? -eq 0 ]; then
echoAndLog "${FUNCNAME}(): $export exists in /etc/exports, omiting"
return 0
fi
cadenaexport="${export}"
for parametro in $*
do
if [ $contador -gt 0 ]
then
host=`echo $parametro | awk -F: '{print $1}'`
options=`echo $parametro | awk -F: '{print $2}'`
if [ "${host}" == "" ]; then
errorAndLog "${FUNCNAME}(): host can't be empty"
return 1
fi
cadenaexport="${cadenaexport}\t${host}"
if [ "${options}" != "" ]; then
cadenaexport="${cadenaexport}(${options})"
fi
fi
let contador=contador+1
done
echo -en "$cadenaexport\n" >> /etc/exports
echoAndLog "${FUNCNAME}(): add $export to /etc/exports"
return 0
}
########################################################################
## Configuracion servicio Samba
########################################################################
@ -727,20 +634,27 @@ function dhcpConfigure()
{
echoAndLog "${FUNCNAME}(): Sample DHCP Configuration."
backupFile /etc/dhcp3/dhcpd.conf
local i=0
local dev=""
sed -e "s/SERVERIP/$SERVERIP/g" \
-e "s/NETIP/$NETIP/g" \
-e "s/NETMASK/$NETMASK/g" \
-e "s/NETBROAD/$NETBROAD/g" \
-e "s/ROUTERIP/$ROUTERIP/g" \
-e "s/DNSIP/$DNSIP/g" \
$WORKDIR/opengnsys/server/etc/dhcpd.conf.tmpl > /etc/dhcp3/dhcpd.conf
[ -h /etc/dhcp3/dhcpd.conf ] || backupFile /etc/dhcp3/dhcpd.conf
for dev in ${DEVICE[*]}; do
if [ -n "${SERVERIP[i]}"; then
backupFile /etc/dhcp3/dhcpd-$dev.conf
sed -e "s/SERVERIP/${SERVERIP[i]}/g" \
-e "s/NETIP/${NETIP[i]}/g" \
-e "s/NETMASK/${NETMASK[i]}/g" \
-e "s/NETBROAD/${NETBROAD[i]}/g" \
-e "s/ROUTERIP/${ROUTERIP[i]}/g" \
-e "s/DNSIP/$DNSIP/g" \
$WORKDIR/opengnsys/server/etc/dhcpd.conf.tmpl > /etc/dhcp3/dhcpd-$dev.conf
fi
done
if [ $? -ne 0 ]; then
errorAndLog "${FUNCNAME}(): error while configuring dhcp server"
return 1
fi
ln -fs /etc/dhcp3/dhcpd.conf dhcpd-$DEFAULTDEV.conf
/etc/init.d/dhcp3-server restart
echoAndLog "${FUNCNAME}(): Sample DHCP Configured in file \"/etc/dhcp3/dhcpd.conf\"."
return 0

View File

@ -453,7 +453,11 @@ function updateServerFiles()
pushd $WORKDIR/opengnsys >/dev/null
local i
for (( i = 0; i < ${#SOURCES[@]}; i++ )); do
rsync --exclude .svn -irplt "${SOURCES[$i]}" $(dirname "${INSTALL_TARGET}/${TARGETS[$i]}")
if [ -d "$INSTALL_TARGET/${TARGETS[$i]}" ]; then
rsync --exclude .svn -irplt "${SOURCES[i]}" $(dirname "$INSTALL_TARGET/${TARGETS[i]}")
else
rsync --exclude .svn -irplt "${SOURCES[i]}" "$INSTALL_TARGET/${TARGETS[i]}"
fi
done
popd >/dev/null
echoAndLog "${FUNCNAME}(): updating cron files"