[Eisfair_dev] E1 dhcpd Konfiguration nörgelt beim Deaktivieren

Marcus Roeckrath marcus.roeckrath at gmx.de
Sa Sep 12 09:15:14 CEST 2015


Hallo Thomas,

Thomas Zweifel wrote:

>> Dann müsste die Zeile so oft auftauchen, wie DHCP_CLIENT_N gesetzt ist.
>> 
>> Schau nun mal, ob die Ausgabe für START_DHCP=yes bzw. no auftaucht.
> 
> Mit yes gibts das erwartete:
>   Warning: nun drin: Counter 1
>   Warning: nun drin: Counter 2
>   Warning: nun drin: Counter 3

Gut, aber warum stolpert er hier nicht über die nicht vorhandenen Optionen.

> Lässt sich dennoch speichern und aktivieren.
> 
> Mit no kommt sofort die Fehlermeldung, diesmal mit Zeile 69

Die warning-Zeile schiebst nach hinten; aber doch mit Meckerei für CLIENT_3.

Warum gibt es hier keine Ausgabe der warning-Zeile, die steht doch vor der
Problemzeile.

Werden die optionalen Parameter bei START_DHCPD=yes intern doch (als leer)
gesetzt, bei no jedoch nicht?

Thorsten, das war jetzt mehr eine rhethorische Frage n mich selbst, so ein
Gedankengang.

Folgende Mail habe ich als Zusammenfassung an die interne Mailingliste
geschickt, berichte mich bitte, wenn das nicht korrekt sein sollte:

_________________________________________________________________________

Es geht um ein Problem, dass in spline.eisfair-dev unter "E1 dhcpd 
Konfiguration nörgelt beim Deaktivieren" diskutiert wird, für das ich 
keine Erklärung habe:

Im Paket sind gesetzt (ersten beiden sind Default-Beispieleinträge):

DHCPD_CLIENT_N='3'
 
  DHCPD_CLIENT_1_NAME='client1'
  DHCPD_CLIENT_1_ACTIVE='no'
  DHCPD_CLIENT_1_MAC='00:01:02:03:04:05'
  DHCPD_CLIENT_1_IPV4='192.168.6.2'
  DHCPD_CLIENT_1_PXE_KERNEL=''
  DHCPD_CLIENT_1_PXE_INITRD=''
  DHCPD_CLIENT_1_PXE_ROOTFS=''
  DHCPD_CLIENT_1_PXE_APPEND=''
  DHCPD_CLIENT_1_NETBOOT='yes'
 
  DHCPD_CLIENT_2_NAME='client2'
  DHCPD_CLIENT_2_ACTIVE='no'
  DHCPD_CLIENT_2_MAC='01:02:03:04:05:06'
  DHCPD_CLIENT_2_IPV4='192.168.6.3'
  DHCPD_CLIENT_2_PXE_KERNEL=''
  DHCPD_CLIENT_2_PXE_INITRD=''
  DHCPD_CLIENT_2_PXE_ROOTFS=''
  DHCPD_CLIENT_2_PXE_APPEND=''
  DHCPD_CLIENT_2_NETBOOT='yes'

  DHCPD_CLIENT_3_NAME='test'
  DHCPD_CLIENT_3_ACTIVE='yes'
  DHCPD_CLIENT_3_MAC='00:01:02:03:04:05'
  DHCPD_CLIENT_3_IPV4='192.168.1.1'

Die Optionen PXE_KERNEL, PXE_INITRD, PXE_ROOTFS, PXE_APPEND und NETBOOT 
sind optional und vom Anwender ausgeblendet; in der /etc/config.d/dhcpd 
sind sie deshalb für Eintrag 3 auch nicht vorhanden, jedoch mit Leerstring 
für CLIENT_1/2.

Soweit so gut und IMHO normal.

Steht START_DHCPD auf yes wird auch die Konfiguration von eischeck 
akzeptiert, steht START_DHCPD jedoch auf no, kommt:

unknown variable 'DHCPD_CLIENT_3_NETBOOT' in /etc/check.d/dhcpd.ext,
line 68

Zeile 68 ist die zweite set-Zeile in folgendem Codeausschnitt:

foreach idx in DHCPD_CLIENT_N
do
    set dhcpd_client_active = DHCPD_CLIENT_%_ACTIVE[idx]
    set dhcpd_client_netboot = DHCPD_CLIENT_%_NETBOOT[idx]
    set dhcpd_client_pxe_kernel = DHCPD_CLIENT_%_PXE_KERNEL[idx]
    set dhcpd_client_pxe_initrd = DHCPD_CLIENT_%_PXE_INITRD[idx]

    if (dhcpd_client_netboot != "")
    then
        set dhcpd_client_netboot = "yes"
    fi
    if (dhcpd_client_pxe_kernel != "")
    then
        set dhcpd_client_netboot = "yes"
    fi
    if (dhcpd_client_pxe_initrd != "")
    then
        set dhcpd_client_netboot = "yes"
    fi

    if (dhcpd_client_active == "yes") && (dhcpd_client_netboot == "yes")
    then
        set need_tftpd = "yes"
    fi
done

Ein direkt hinter die do-Zeile eingefügtes "warning ..." zeigt, dass bei 
START_DHCPD=yes die Schleife dreimal fehlerfrei durchlaufen wird, obwohl 
optionale Parameter fehlen.

Bei START_DHCPD=no wieder Fehlermeldung von eischeck (s. o.) eine Ausgabe 
der eigens eigefügten warning-Ausgabe fehlt.

Werden die optionalen Parameter für CLIENT_3 gefüllt (Leerstring) läuft der 
Check auch bei START_DHCPD=no durch.

Jemand eine Erklärung für dieses Verhalten?

-- 
Gruss Marcus


Mehr Informationen über die Mailingliste Eisfair_dev