def setup_networking(self, rootdir):
self.message('Setting up networking')
- f = open(os.path.join(rootdir, 'etc', 'network', 'interfaces'), 'w')
- f.write('auto lo\n')
- f.write('iface lo inet loopback\n')
-
- if self.settings['enable-dhcp']:
- f.write('\n')
- f.write('auto eth0\n')
- f.write('iface eth0 inet dhcp\n')
-
- f.close()
+ if not os.path.exists(os.path.join(rootdir, 'etc', 'network', 'interfaces')):
+ with open(os.path.join(
+ rootdir, 'etc', 'network', 'interfaces'), 'w') as netfile:
+ netfile.write('source-directory /etc/network/interfaces.d\n')
+
+ with open(os.path.join(
+ rootdir, 'etc', 'network', 'interfaces.d', 'setup'), 'w') as eth:
+ eth.write('auto lo\n')
+ eth.write('iface lo inet loopback\n')
+
+ if self.settings['enable-dhcp']:
+ eth.write('\n')
+ eth.write('auto eth0\n')
+ eth.write('iface eth0 inet dhcp\n')
def append_serial_console(self, rootdir):
if self.settings['serial-console']:
The image has an empty root password and will not have networking
configured by default. Set the root password before you configure
networking.
+.SH NETWORKING
+The \-\-enable\-networking option uses the /etc/network/interfaces.d/
+source directory, with the default settings for
+.B lo
+and
+.B eth0
+being added to /etc/network/interfaces.d/setup. Other networking
+configuration can be specified using a customisation script.
+Localhost settings would be:
+ auto lo
+ iface lo inet loopback
+
+If \-\-enable\-dhcp is specified, these settings are also included
+into /etc/network/interfaces.d/setup:
+
+ auto eth0
+ iface eth0 inet dhcp
+
.SH BOOTLOADERS
Unless the \-\-no\-extlinux or \-\-grub options are specified, the
image will use