1
0
mirror of https://github.com/byReqz/netset.git synced 2024-11-22 12:51:15 +00:00
netset/netset.sh
2021-02-19 14:12:50 +01:00

207 lines
9.3 KiB
Bash
Executable File

#!/bin/bash
# license: gpl-3
echo "which networkmanager do you want to use?"
echo "please enter the name or number of your choice"
if [[ -n $(systemctl --version | grep -e "systemd") ]];then
echo "1. systemd-resolved [installed]"
else
echo "1. systemd-resolved [not installed]"
fi
if [[ -n $(NetworkManager -h | grep -e "Usage:") ]];then
echo "2. NetworkManager [installed]"
else
echo "2. NetworkManager [not installed]"
fi
if [[ -n $(ls /etc | grep -e "netplan") ]];then
echo "3. netplan [installed]"
else
echo "3. netplan [not installed]"
fi
read c1
if [[ "$c1" == "1" ]] || [[ "$c1" == "1." ]] || [[ "$c1" == "systemd-resolved" ]];then
if [[ -z $(sudo systemctl status systemd-networkd | grep -e "dead") ]];then
if [[ $(ls -l /etc/systemd/network | wc -l) != 0 ]];then
echo "warning, there already are configs present"
echo "do you want to continue? (Y/n)"
read continue
if [[ "$continue" == y ]] || [[ "$continue" == yes ]] || [[ -z "$continue" ]];then
touch "/etc/systemd/network/10-ethernet.network"
echo "[Match]" >> "/etc/systemd/network/10-ethernet.network"
echo "Do you want to configure by Interfacename or MAC? (ifn/MAC)"
read choice1
if [[ "$choice1" =~ "ifn" ]];then
echo "======================"
echo "Please type out the Interfacename"
echo "======================"
ip link show
read interface
echo "Name=$interface" >> "/etc/systemd/network/10-ethernet.network"
echo "" >> "/etc/systemd/network/10-ethernet.network"
elif [[ "$choice1" =~ "mac" ]];then
echo "======================"
echo "Please type out the MAC-Adress"
echo "======================"
read mac
echo "MACAdress=$mac" >> "/etc/systemd/network/10-ethernet.network"
echo "" >> "/etc/systemd/network/10-ethernet.network"
else
echo "no proper input provided"
exit
fi
echo "[Network]" >> "/etc/systemd/network/10-ethernet.network"
echo "======================"
echo "Please type out the IP-Adress you want to set (with CIDR)"
echo "======================"
read ipstatic
echo "Address=$ipstatic" >> "/etc/systemd/network/10-ethernet.network"
echo "======================"
echo "Please type out the Gateway adress"
echo "======================"
read gateway
echo "Gateway=$gateway" >> "/etc/systemd/network/10-ethernet.network"
echo "======================"
echo "Please type out the main DNS address (blank for none)"
echo "======================"
read dns
if [[ -z "$dns" ]];then
echo "======================"
echo "Interface has been configured"
echo "restart systemd-networkd to apply the profile"
echo "======================"
exit
fi
echo "DNS=$dns" >> "/etc/systemd/network/10-ethernet.network"
echo "======================"
echo "Interface has been configured"
echo "restart systemd-networkd to apply the profile"
echo "======================"
exit
else
exit
fi
else
touch "/etc/systemd/network/10-ethernet.network"
echo "[Match]" >> "/etc/systemd/network/10-ethernet.network"
echo "Do you want to configure by Interfacename or MAC? (ifn/MAC)"
read choice1
if [[ "$choice1" =~ "ifn" ]];then
echo "======================"
echo "Please type out the Interfacename"
echo "======================"
ip link show
read interface
echo "Name=$interface" >> "/etc/systemd/network/10-ethernet.network"
echo "" >> "/etc/systemd/network/10-ethernet.network"
elif [[ "$choice1" =~ "mac" ]];then
echo "======================"
echo "Please type out the MAC-Adress"
echo "======================"
read mac
echo "MACAdress=$mac" >> "/etc/systemd/network/10-ethernet.network"
echo "" >> "/etc/systemd/network/10-ethernet.network"
else
echo "no proper input provided"
exit
fi
echo "[Network]" >> "/etc/systemd/network/10-ethernet.network"
echo "======================"
echo "Please type out the IP-Adress you want to set (with CIDR)"
echo "======================"
read ipstatic
echo "Address=$ipstatic" >> "/etc/systemd/network/10-ethernet.network"
echo "======================"
echo "Please type out the Gateway adress"
echo "======================"
read gateway
echo "Gateway=$gateway" >> "/etc/systemd/network/10-ethernet.network"
echo "======================"
echo "Please type out the main DNS address (blank for none)"
echo "======================"
read dns
if [[ -z "$dns" ]];then
echo "======================"
echo "Interface has been configured"
echo "restart systemd-networkd to apply the profile"
echo "======================"
exit
fi
echo "DNS=$dns" >> "/etc/systemd/network/10-ethernet.network"
echo "======================"
echo "Interface has been configured"
echo "restart systemd-networkd to apply the profile"
echo "======================"
exit
fi
else
echo "systemd-networkd is not running"
exit
fi
elif [[ "$c1" == "2" ]] || [[ "$c1" == "2." ]] || [[ "$c1" == "networkmanager" ]];then
echo "select a new connectionname"
read nmc
nmcli networking on
nmcli connection add type ethernet con-name "$nmc"
nmcli connection modify "$nmc" connection.autoconnect yes
nmcli connection modify "$nmc" connection.autoconnect-priority -999
nmcli connection modify "$nmc" connection.autoconnect-retries -1
nmcli connection modify "$nmc" connection.read-only no
nmcli connection modify "$nmc" connection.autoconnect-slaves -1
nmcli connection modify "$nmc" connection.wait-device-timeout -1
echo "----------------------------"
echo "input the ip to set (cidr notion also accepted)"
echo "----------------------------"
read nmcip
nmcli con mod "$nmc" ipv4.method manual ipv4.addr "$nmcip"
# sets hetzner dns
nmcli con modify "$nmc" +ipv4.dns 213.133.98.98
echo "connection has been set (restart network manager if necessary)"
exit
elif [[ "$c1" == "3" ]] || [[ "$c1" == "3." ]] || [[ "$c1" == "netplan" ]];then
echo "please enter the interface name"
echo "----------------------------"
ip l
echo "----------------------------"
read npif
echo "network:" > $PWD/.netplan.yaml
echo -e " version: 2" >> $PWD/.netplan.yaml
echo -e " renderer: networkd" >> $PWD/.netplan.yaml
echo -e " ethernets:" >> $PWD/.netplan.yaml
echo -e " $npif:" >> $PWD/.netplan.yaml
echo -e " addresses:" >> $PWD/.netplan.yaml
if [[ -n $(ip a | grep -e "$npif") ]];then
echo "please enter the ip adress to set (with cidr notation)"
read npip
echo -e " - "$npip"" >> $PWD/.netplan.yaml
echo "please enter the gateway adress to set"
read npgw
echo -e " gateway4: "$npgw"" >> $PWD/.netplan.yaml
echo -e " nameservers:" >> $PWD/.netplan.yaml
echo -e " search: [mydomain, otherdomain]" >> $PWD/.netplan.yaml
echo "please enter the dns servers adress, leave empty for default"
read npdns
if [[ -z "$npdns" ]];then
echo -e " addresses: [213.133.98.98]" >> $PWD/.netplan.yaml
else
echo -e " addresses: ["$npdns"]" >> $PWD/.netplan.yaml
fi
echo "----------------------------"
echo "config has been generated in the current directory"
echo "should the config be installed now? (y/N)"
echo "----------------------------"
read $npyn2
if [[ "$npyn2" == "y" ]] || [[ "$npyn2" == "Y" ]] || [[ "$npyn2" == "yes" ]];then
mv .netplan.yaml /etc/netplan/netplan.yaml
exit
else
mv .netplan.yaml netplan.yaml
exit
fi
else
echo "interface not found, exiting"
exit
fi
else
echo "selected manager not supported"
exit
fi