]> git.siccegge.de Git - forks/vmdebootstrap.git/commitdiff
Update for systemd persistent interface mask
authorNeil Williams <codehelp@debian.org>
Sun, 13 Sep 2015 19:57:25 +0000 (20:57 +0100)
committerNeil Williams <codehelp@debian.org>
Sun, 13 Sep 2015 19:57:25 +0000 (20:57 +0100)
Disable systemd persistent interface names as the actual PCI
output is unknowable at the time of creating the network
interface details.

vmdebootstrap
vmdebootstrap.8.in

index 3cd526d81a261865a255ee01ff7b3544b713b463..51c2674f5d37c914a749a3a923e0cb2c53e6e83d 100755 (executable)
@@ -784,6 +784,17 @@ class VmDebootstrap(cliapp.Application):  # pylint: disable=too-many-public-meth
             else:
                 logging.debug('not removing non-existent %s', pathname)
 
+    def mask_udev_predictable_rules(self, rootdir):
+        """
+        This can be reset later but to get networking using immediately
+        on boot, the interface we're going to use must be kno
+        http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/
+        """
+        self.message('Disabling systemd predictable interface names')
+        udev_path = os.path.join(
+            'etc', 'udev', 'rules.d', '80-net-setup-link.rules')
+        self.runcmd(['chroot', rootdir, 'ln', '-s', '/dev/null', udev_path])
+
     def setup_networking(self, rootdir):
         self.message('Setting up networking')
         ifc_file = os.path.join(rootdir, 'etc', 'network', 'interfaces')
@@ -808,6 +819,8 @@ class VmDebootstrap(cliapp.Application):  # pylint: disable=too-many-public-meth
                 eth.write('\n')
                 eth.write('auto eth0\n')
                 eth.write('iface eth0 inet dhcp\n')
+                # force predictable interface names
+                self.mask_udev_predictable_rules(rootdir)
 
     def append_serial_console(self, rootdir):
         if self.settings['serial-console']:
index 19f5adc6ea48b6286688546bd81639794499ed1c..61286ace12f844ce3615b79d2724f5738c442910 100644 (file)
@@ -85,6 +85,12 @@ into /etc/network/interfaces.d/setup:
  auto eth0
  iface eth0 inet dhcp
 
+For systems running newer versions of systemd, the interface name needs
+to be set in advance of the first boot instead of being dependent on the
+boot itself. See the http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/
+.b vmdebootstrap
+disables this behaviour by symlinking /dev/null to /etc/udev/rules.d/80-net-setup-link.rules
+
 .SH BOOTLOADERS
 Unless the \-\-no\-extlinux or \-\-grub options are specified, the
 image will use