summaryrefslogtreecommitdiff
path: root/skel/multistrap-hooks/completion_80_rootscript_net.sh
blob: be78fbaaaf5fdf10242a9a9d2250b08b95226f33 (plain)
  1. #!/bin/sh
  2. #
  3. # completion_80_rootscript_net.sh
  4. # Copyright 2016 Jonas Smedegaard <dr@jones.dk>
  5. # License: GNU Public License version 3 or newer
  6. #
  7. # multistrap completion hook adding root script to setup network
  8. #
  9. # Enhances: multistrap
  10. set -eu
  11. fs="$1"
  12. # FIXME: do this far more flexible!
  13. cat <<'EOF' > "$fs/root/init-network-settings"
  14. #!/bin/sh
  15. set -eu
  16. set -x
  17. # Add static-IP internal first-port ethernet connection
  18. nmcli connection add type ethernet con-name eth0-static ifname eth0 ip4 192.168.1.1 ipv4.method manual autoconnect on connection.zone internal
  19. # Add dynamic-IP external wildcard ethernet connection
  20. nmcli connection add type ethernet con-name dhcp ifname '*' autoconnect on connection.zone external
  21. # Add dynamic-IP external WWAN connection (hardcoded provider for now)
  22. nmcli connection add ifname '' autoconnect yes type gsm apn data.tre.dk connection.id gsm-tre.dk-noauth connection.zone external gsm.password-flags 1
  23. #nmcli connection add ifname '' autoconnect yes type gsm apn internet connection.id gsm-internet-noauth connection.zone external gsm.password-flags 1
  24. # Permit mosh from anywhere:
  25. firewall-cmd --permanent --zone external --add-service mosh
  26. firewall-cmd --permanent --zone internal --add-service mosh
  27. firewall-cmd --reload
  28. # setup dynamic-IP subnet
  29. incfile "/etc/dhcp/dhcpd.d/80-shared-network-10-10-0.conf"
  30. cfgfile="/etc/dhcp/dhcpd.conf"
  31. line="#include \"$incfile\";"
  32. mkdir -p "$fs//etc/dhcp/dhcpd.d"
  33. cat <<'EOf' > "$fs$incfile"
  34. # Dynamic-IP subnet in private class A net
  35. shared-network 10-10-0 {
  36.     option domain-search "internal.localnet";
  37.     option domain-name-servers 10.10.0.1;
  38.     subnet 10.10.0.0 netmask 255.255.255.0 {
  39.         option routers 10.10.0.1;
  40.         range 10.10.0.100 10.10.0.254;
  41.     }
  42. }
  43. EOf
  44. grep -q "$line" "$fs$incfile" || echo "$line" >> "$fs$incfile"
  45. echo 'Network settings applied succesfully!'
  46. EOF
  47. chmod a+"$fs/root/init-network-settings"