High Availability Computer Center (hacc-) Teil 1
Teil 1: Übersicht, Bootvorgang und Arbeitsknoten
Von
Josef Müller
Dieser Datensatz wird nicht manuell erstellt. Dazu gibt es ein Skript. Im Verzeichnis /usr/local/nagios/local wurden eine ganze Menge von Skripten gesammelt, die sowohl von Nagios als auch anderweitig genutzt werden können. Das Skript (Skript 1) cre_pxeboot_nfs erstellt diese Boot-Datensätze.
Skript 1: /usr/local/nagios/local/cre_pxeboot_nfs
1:#!/bin/bash 2: 3:# cre_pxeboot_nfs <knoten> 4: 5:# Erstellen der PXE Boot Datei fuer das Booten ueber nfs 6: 7:# Parameter: 8:# <knoten> ip-fs-Nummer 9:# (= letzte Stelle der privaten/internen IP Adresse) 10:# 6/7/8/9/10/11 11:# 12:# Ergebnis: 13:# PXE Boot File und die zugehoerigen sys-links fuer tftp 14:# RC: 0 OK 15:# 1 auch noch OK, aber das Filesystem fehlt 16:# 2 Abbruch wegen Parameterfehler 17: 18:. /usr/local/nagios/local/data 19: 20:#D set -x 21: 22:KNOTEN=${1:?'Parameter1 KNOTEN fehlt'} 23: 24:# Check Parameter 25: 26:# existiert der Knoten (existiert die Knoten-Variable) ? 27:V="echo \$IP_${KNOTEN}_K" 28:if [ ! $(eval "$V") ] 29:then 30: echo "Parameter1 KNOTEN falsch: $KNOTEN" 31: exit 2 32:fi 33: 34:V="echo \$PXE_FILE_${KNOTEN}" 35:FILE=$(eval "$V") # Name der PXE Boot Datei 36: 37:V="echo \$BOOT_HOSTNAME_${KNOTEN}" 38:BOOT_HOSTNAME=$(eval "$V") # interner Host-Name 39: 40:RC=0 41: 42:# Erstellen der Symlinks fuer das Laden Kernel + initrd per TFTP, wenn fehlt 43:if [ ! -d ${ROOT_DIR}${KNOTEN} ] 44:then 45: echo "Das Root Filesystem fehlt: ${ROOT_DIR}${KNOTEN}" 46: RC=1 47:fi 48:cd $TFTP_DIR && [ ! -L ${KNOTEN}-vmlinuz ] && \ 49: ln -s ${SLINK_TFTP_TO_ROOT}${KNOTEN}/boot/vmlinuz \ 50: ${KNOTEN}-vmlinuz 51:cd $TFTP_DIR && [ ! -L ${KNOTEN}-initrd ] && \ 52: ln -s ${SLINK_TFTP_TO_ROOT}${KNOTEN}/boot/initrd \ 53: ${KNOTEN}-initrd 54: 55:# erstellen des PXE Boot Files 56:echo "Erstellen PXE Bootfile: ${PXE_DIR}${FILE}" 57:cat <<EOF >${PXE_DIR}${FILE} 58:default LINUX 59:label LINUX 60:KERNEL ${KNOTEN}-vmlinuz 61:APPEND initrd=${KNOTEN}-initrd ip=${NODE_NET}${KNOTEN}:${NFS_SERVER}::${NET_MASK}:${BOOT_HOSTNAME}:${BOOT_INTERFACE}:off root=/dev/nfs nfsroot=${NFS_SERVER}:${NFS_BOOT_RESOURCE}${KNOTEN} acpi=off 62:EOF 63: 64:exit $RC