]> git.siccegge.de Git - forks/vmdebootstrap.git/blobdiff - vmdebootstrap
Update for systemd persistent interface mask
[forks/vmdebootstrap.git] / vmdebootstrap
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']: