From 318f103a7f0d20acd0ad33f60d224c21b08010c2 Mon Sep 17 00:00:00 2001
From: Paolo Asperti <paolo@asperti.com>
Date: Sat, 27 Apr 2019 12:26:54 +0200
Subject: [PATCH] rename network interfaces

---
 README.md           |  8 ++++++++
 root/ks/interactive | 22 ++++++++++++++++++++++
 root/ks/manual      | 22 ++++++++++++++++++++++
 root/ks/unattended  | 22 ++++++++++++++++++++++
 4 files changed, 74 insertions(+)

diff --git a/README.md b/README.md
index d369892..71e4f6b 100644
--- a/README.md
+++ b/README.md
@@ -27,3 +27,11 @@ docker run --rm \
   -w "/drone/src" \
   registry.libreschool.org/libreschool-automation/libreschool-iso-builder:latest
 ```
+
+## TODO:
+
+- [ ] FIX images
+- [ ] package group
+- [x] Rename network interface
+- [ ] Enforce the minimum required network interfaces (anaconda)
+- [ ] PXE + Preseed (external package)
diff --git a/root/ks/interactive b/root/ks/interactive
index b36fc62..bd163cb 100755
--- a/root/ks/interactive
+++ b/root/ks/interactive
@@ -145,4 +145,26 @@ if [ -f /etc/nethserver-release ]; then
   echo >> /etc/issue
 fi
 
+echo "Renaming network interfaces"
+TMPFILE=/tmp/9C358C31-BC02-4B63-BAAB-4D82DA0E297C
+OUTFILE=/etc/udev/rules.d/70-persistent-net.rules
+ip link show | grep 'link/ether' | sed 's/.*ether\ \([0-9a-fA-F:]*\)\ brd.*/\1/' > $TMPFILE
+LINES=$(wc -l $TMPFILE)
+# TODO: should be at least 2 lines
+N=0
+while read MAC ; do
+  if (( N > 1 )) ; then
+    NUM=$(( N-1 ))
+    echo "SUBSYSTEM==\"net\", ACTION==\"add\", DRIVERS==\"?*\", ATTR{address}==\"${MAC}\", NAME=\"lan${NUM}\"" >> $OUTFILE
+  fi
+  if (( N == 1 )) ; then
+    echo "SUBSYSTEM==\"net\", ACTION==\"add\", DRIVERS==\"?*\", ATTR{address}==\"${MAC}\", NAME=\"wan0\"" >> $OUTFILE
+  fi
+  if (( N == 0 )) ; then
+    echo "SUBSYSTEM==\"net\", ACTION==\"add\", DRIVERS==\"?*\", ATTR{address}==\"${MAC}\", NAME=\"lan0\"" >> $OUTFILE
+  fi
+  N=$(( N + 1 ))
+done < $TMPFILE
+rm $TMPFILE 
+
 %end
diff --git a/root/ks/manual b/root/ks/manual
index e6c886a..35f49c1 100755
--- a/root/ks/manual
+++ b/root/ks/manual
@@ -55,4 +55,26 @@ if [ -f /etc/nethserver-release ]; then
   echo >> /etc/issue
 fi
 
+echo "Renaming network interfaces"
+TMPFILE=/tmp/9C358C31-BC02-4B63-BAAB-4D82DA0E297C
+OUTFILE=/etc/udev/rules.d/70-persistent-net.rules
+ip link show | grep 'link/ether' | sed 's/.*ether\ \([0-9a-fA-F:]*\)\ brd.*/\1/' > $TMPFILE
+LINES=$(wc -l $TMPFILE)
+# TODO: should be at least 2 lines
+N=0
+while read MAC ; do
+  if (( N > 1 )) ; then
+    NUM=$(( N-1 ))
+    echo "SUBSYSTEM==\"net\", ACTION==\"add\", DRIVERS==\"?*\", ATTR{address}==\"${MAC}\", NAME=\"lan${NUM}\"" >> $OUTFILE
+  fi
+  if (( N == 1 )) ; then
+    echo "SUBSYSTEM==\"net\", ACTION==\"add\", DRIVERS==\"?*\", ATTR{address}==\"${MAC}\", NAME=\"wan0\"" >> $OUTFILE
+  fi
+  if (( N == 0 )) ; then
+    echo "SUBSYSTEM==\"net\", ACTION==\"add\", DRIVERS==\"?*\", ATTR{address}==\"${MAC}\", NAME=\"lan0\"" >> $OUTFILE
+  fi
+  N=$(( N + 1 ))
+done < $TMPFILE
+rm $TMPFILE 
+
 %end
diff --git a/root/ks/unattended b/root/ks/unattended
index 50188b8..0fe992b 100755
--- a/root/ks/unattended
+++ b/root/ks/unattended
@@ -161,4 +161,26 @@ if [ -f /etc/nethserver-release ]; then
   echo >> /etc/issue
 fi
 
+echo "Renaming network interfaces"
+TMPFILE=/tmp/9C358C31-BC02-4B63-BAAB-4D82DA0E297C
+OUTFILE=/etc/udev/rules.d/70-persistent-net.rules
+ip link show | grep 'link/ether' | sed 's/.*ether\ \([0-9a-fA-F:]*\)\ brd.*/\1/' > $TMPFILE
+LINES=$(wc -l $TMPFILE)
+# TODO: should be at least 2 lines
+N=0
+while read MAC ; do
+  if (( N > 1 )) ; then
+    NUM=$(( N-1 ))
+    echo "SUBSYSTEM==\"net\", ACTION==\"add\", DRIVERS==\"?*\", ATTR{address}==\"${MAC}\", NAME=\"lan${NUM}\"" >> $OUTFILE
+  fi
+  if (( N == 1 )) ; then
+    echo "SUBSYSTEM==\"net\", ACTION==\"add\", DRIVERS==\"?*\", ATTR{address}==\"${MAC}\", NAME=\"wan0\"" >> $OUTFILE
+  fi
+  if (( N == 0 )) ; then
+    echo "SUBSYSTEM==\"net\", ACTION==\"add\", DRIVERS==\"?*\", ATTR{address}==\"${MAC}\", NAME=\"lan0\"" >> $OUTFILE
+  fi
+  N=$(( N + 1 ))
+done < $TMPFILE
+rm $TMPFILE 
+
 %end