summaryrefslogtreecommitdiff
path: root/sbin
diff options
context:
space:
mode:
authorMike Gabriel <mike.gabriel@das-netzwerkteam.de>2017-01-20 08:33:12 +0100
committerMike Gabriel <mike.gabriel@das-netzwerkteam.de>2017-01-20 08:33:12 +0100
commit9fc5ccad7be53903f0ee582c43132e4062bf99ca (patch)
tree951f4b117422af2a6c550d356f09a3fcaf0e671e /sbin
parent8058427f19195932c661460434c7fc8a28dfb7b7 (diff)
downloaditzks-systems-9fc5ccad7be53903f0ee582c43132e4062bf99ca.tar.gz
itzks-systems-9fc5ccad7be53903f0ee582c43132e4062bf99ca.tar.bz2
itzks-systems-9fc5ccad7be53903f0ee582c43132e4062bf99ca.zip
New script (for workstations): itzks-switch-to-systemd-networkd. Migrate ifupdown based systems to systemd-networkd.
Diffstat (limited to 'sbin')
-rwxr-xr-xsbin/itzks-switch-to-systemd-networkd71
1 files changed, 71 insertions, 0 deletions
diff --git a/sbin/itzks-switch-to-systemd-networkd b/sbin/itzks-switch-to-systemd-networkd
new file mode 100755
index 0000000..99edc15
--- /dev/null
+++ b/sbin/itzks-switch-to-systemd-networkd
@@ -0,0 +1,71 @@
+#!/bin/bash
+
+# Copyright (C) 2015 by Mike Gabriel <mike.gabriel@it-zukunft-schule.de>
+
+# This script is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This script is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the
+# Free Software Foundation, Inc.,
+# 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+
+WIFIDEV=${WIFIDEV:-wlan0}
+
+export DEBIAN_FRONTEND=noninteractive
+apt-get remove -q -y --purge resolvconf
+
+systemctl disable NetworkManager
+systemctl enable systemd-networkd.service
+systemctl enable systemd-resolved.service
+systemctl start systemd-resolved.service
+rm /etc/resolv.conf
+ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
+
+cat > /etc/systemd/network/20-dhcp.network << EOF
+[Match]
+Name=eth*
+
+[Network]
+DHCP=yes
+EOF
+
+cat > /etc/systemd/network/21-dhcp-wireless.network << EOF
+[Match]
+Name=$WIFIDEV
+
+[Network]
+DHCP=yes
+EOF
+
+cat > /etc/systemd/system/wpa_supplicant@.service << EOF
+[Unit]
+Description=WPA supplicant daemon (interface-specific version)
+Requires=sys-subsystem-net-devices-%i.device
+After=sys-subsystem-net-devices-%i.device
+Before=network.target
+Wants=network.target
+
+# NetworkManager users will probably want the dbus version instead.
+
+[Service]
+Type=simple
+ExecStart=/sbin/wpa_supplicant -c/etc/wpa_supplicant/wpa_supplicant-%I.conf -i%I
+
+[Install]
+Alias=multi-user.target.wants/wpa_supplicant@%i.service
+EOF
+
+touch /etc/wpa_supplicant/wpa_supplicant-$WIFIDEV.conf
+chmod go-rwx /etc/wpa_supplicant/wpa_supplicant-$WIFIDEV.conf
+
+systemctl enable wpa_supplicant@$WIFIDEV.service
+systemctl disable networking
+systemctl disable wpa_supplicant.service