From 54b5d8e4a62b61e3d0ca57419e8b743201dceed3 Mon Sep 17 00:00:00 2001 From: Gregory Kurtzer Date: Sun, 20 Dec 2020 23:14:55 -0800 Subject: [PATCH] Move all configurations to a separate config that can be sourced as needed --- Makefile | 2 +- overlays/system/default/{init.ww => init} | 26 ++++++------------- overlays/system/default/warewulf/config.ww | 9 +++++++ .../default/warewulf/init.d/20-loopback | 2 ++ .../system/default/warewulf/init.d/50-ipmi | 2 ++ .../default/warewulf/init.d/75-vnfs_fixes | 2 +- .../default/warewulf/init.d/80-wwclient | 2 ++ .../system/default/warewulf/init.d/90-selinux | 1 + overlays/system/default/warewulf/wwinit | 17 +++--------- 9 files changed, 30 insertions(+), 33 deletions(-) rename overlays/system/default/{init.ww => init} (77%) create mode 100644 overlays/system/default/warewulf/config.ww diff --git a/Makefile b/Makefile index bed8b130..d635833d 100644 --- a/Makefile +++ b/Makefile @@ -52,7 +52,7 @@ files: all # cp -r tftpboot/* /var/lib/tftpboot/warewulf/ipxe/ # restorecon -r /var/lib/tftpboot/warewulf cp -r overlays /var/warewulf/ - chmod +x /var/warewulf/overlays/system/default/init.ww + chmod +x /var/warewulf/overlays/system/default/init chmod 600 /var/warewulf/overlays/system/default/etc/ssh/ssh* chmod 644 /var/warewulf/overlays/system/default/etc/ssh/ssh*.pub.ww mkdir -p /var/warewulf/overlays/system/default/warewulf/bin/ diff --git a/overlays/system/default/init.ww b/overlays/system/default/init similarity index 77% rename from overlays/system/default/init.ww rename to overlays/system/default/init index 05f90175..58c60bfb 100755 --- a/overlays/system/default/init.ww +++ b/overlays/system/default/init @@ -5,24 +5,14 @@ # # Edit at your own risk! DANGER DANGER. -WWCONTAINER={{$.Container}} -export WWCONTAINER -WWHOSTNAME={{$.Id}} -export WWHOSTNAME -WWROOT={{$.Root}} -export WWROOT -WWINIT={{$.Init}} -export WWINIT -WWIPMI_IPADDR="{{$.IpmiIpaddr}}" -export WWIPMI_IPADDR -WWIPMI_NETMASK="{{$.IpmiNetmask}}" -export WWIPMI_NETMASK -WWIPMI_GATEWAY="{{$.IpmiGateway}}" -export WWIPMI_GATEWAY -WWIPMI_USER="{{$.IpmiUserName}}" -export WWIPMI_USER -WWIPMI_PASSWORD="{{$.IpmiPassword}}" -export WWIPMI_PASSWORD + +if test -f "/warewulf/config"; then + . /warewulf/config +else + echo "ERROR: Warewulf configuration file not found... rebooting in 1 minute" + sleep 60 + /sbin/reboot +fi echo "Warewulf v4 is now booting: $WWHOSTNAME" echo diff --git a/overlays/system/default/warewulf/config.ww b/overlays/system/default/warewulf/config.ww new file mode 100644 index 00000000..5a33472a --- /dev/null +++ b/overlays/system/default/warewulf/config.ww @@ -0,0 +1,9 @@ +WWCONTAINER={{$.Container}} +WWHOSTNAME={{$.Id}} +WWROOT={{$.Root}} +WWINIT={{$.Init}} +WWIPMI_IPADDR="{{$.IpmiIpaddr}}" +WWIPMI_NETMASK="{{$.IpmiNetmask}}" +WWIPMI_GATEWAY="{{$.IpmiGateway}}" +WWIPMI_USER="{{$.IpmiUserName}}" +WWIPMI_PASSWORD="{{$.IpmiPassword}}" diff --git a/overlays/system/default/warewulf/init.d/20-loopback b/overlays/system/default/warewulf/init.d/20-loopback index 5c000de3..01791174 100644 --- a/overlays/system/default/warewulf/init.d/20-loopback +++ b/overlays/system/default/warewulf/init.d/20-loopback @@ -1,4 +1,6 @@ #!/bin/sh +. /warewulf/config + echo "Bringing up lo:127.0.0.1" /sbin/ip link set dev lo up diff --git a/overlays/system/default/warewulf/init.d/50-ipmi b/overlays/system/default/warewulf/init.d/50-ipmi index d6e7682e..0a2b3c88 100755 --- a/overlays/system/default/warewulf/init.d/50-ipmi +++ b/overlays/system/default/warewulf/init.d/50-ipmi @@ -1,5 +1,7 @@ #!/bin/bash +. /warewulf/config + export PATH=/usr/bin:/bin:/usr/sbin:/sbin if [ -z "$WWIPMI_IPADDR" ]; then diff --git a/overlays/system/default/warewulf/init.d/75-vnfs_fixes b/overlays/system/default/warewulf/init.d/75-vnfs_fixes index 1674d8d8..5ce5b735 100644 --- a/overlays/system/default/warewulf/init.d/75-vnfs_fixes +++ b/overlays/system/default/warewulf/init.d/75-vnfs_fixes @@ -1,6 +1,6 @@ #!/bin/sh - +. /warewulf/config # This will eventually be optional if true; then diff --git a/overlays/system/default/warewulf/init.d/80-wwclient b/overlays/system/default/warewulf/init.d/80-wwclient index 0563a5b9..184dac4e 100644 --- a/overlays/system/default/warewulf/init.d/80-wwclient +++ b/overlays/system/default/warewulf/init.d/80-wwclient @@ -1,4 +1,6 @@ #!/bin/sh +. /warewulf/config + echo "Starting wwclient" nohup /warewulf/bin/wwclient >/var/log/wwclient.log 2>&1