From a345cf3c3d7c15cfca5735c531f825062235c135 Mon Sep 17 00:00:00 2001 From: Hannes Reinecke Date: Wed, 2 Jul 2014 11:20:22 +0200 Subject: Implement shortcut 'ip=:static' for static configuration To simplify static configurate we should be pulling in the existing 'ifcfg' files when running in hostonly mode. With that we can implement the shortcut 'ip=:static' to use the existing configuration from the ifcfg file. Signed-off-by: Hannes Reinecke --- modules.d/40network/ifup.sh | 14 +++++++++++++- modules.d/40network/module-setup.sh | 4 ++++ modules.d/40network/parse-ip-opts.sh | 8 +++++++- 3 files changed, 24 insertions(+), 2 deletions(-) Index: dracut-042/modules.d/40network/ifup.sh =================================================================== --- dracut-042.orig/modules.d/40network/ifup.sh 2015-06-24 18:02:12.961576972 +0200 +++ dracut-042/modules.d/40network/ifup.sh 2015-06-24 18:02:13.849627528 +0200 @@ -399,6 +399,18 @@ for p in $(getargs ip=); do [ "$use_bridge" != 'true' ] && \ [ "$use_vlan" != 'true' ] && continue + if [ "$autoconf" = "static" ] && + [ -e /etc/sysconfig/network/ifcfg-${netif} ] ; then + # Pull in existing static configuration + . /etc/sysconfig/network/ifcfg-${netif} + ip=${IPADDR} + mask=${PREFIXLEN} + mtu=${MTU} + server=${REMOTE_IPADDR} + gw=${GATEWAY} + autoconf=${BOOTPROTO} + fi + # setup nameserver namesrv="$dns1 $dns2 $(getargs nameserver)" for s in $namesrv; do @@ -412,7 +424,7 @@ for p in $(getargs ip=); do for autoopt in $(str_replace "$autoconf" "," " "); do case $autoopt in - dhcp|on|any) + dhcp4|dhcp|on|any) do_dhcp -4 ;; dhcp6) load_ipv6 Index: dracut-042/modules.d/40network/module-setup.sh =================================================================== --- dracut-042.orig/modules.d/40network/module-setup.sh 2015-06-24 18:02:05.949177762 +0200 +++ dracut-042/modules.d/40network/module-setup.sh 2015-06-24 18:02:13.849627528 +0200 @@ -51,6 +51,10 @@ install() { _arch=$(uname -m) + [[ $hostonly ]] && { + inst_multiple /etc/sysconfig/network/ifcfg-* + } + inst_libdir_file {"tls/$_arch/",tls/,"$_arch/",}"libnss_dns.so.*" \ {"tls/$_arch/",tls/,"$_arch/",}"libnss_mdns4_minimal.so.*" Index: dracut-042/modules.d/40network/parse-ip-opts.sh =================================================================== --- dracut-042.orig/modules.d/40network/parse-ip-opts.sh 2015-06-11 17:39:47.000000000 +0200 +++ dracut-042/modules.d/40network/parse-ip-opts.sh 2015-06-24 18:02:13.849627528 +0200 @@ -67,7 +67,13 @@ for p in $(getargs ip=); do for autoopt in $(str_replace "$autoconf" "," " "); do case $autoopt in error) die "Error parsing option 'ip=$p'";; - bootp|rarp|both) die "Sorry, ip=$autoopt is currenty unsupported";; + bootp|rarp|both) die "Sorry, ip=$autoopt is currently unsupported";; + static) + if [ ! -e /etc/sysconfig/network/ifcfg-${dev} ] ; then + warn "No ifcfg configuration present for interface $dev, skipping" + continue + fi + ;; none|off) [ -z "$ip" ] && \ die "For argument 'ip=$p'\nValue '$autoopt' without static configuration does not make sense"