105 lines
2.4 KiB
Bash
105 lines
2.4 KiB
Bash
#!/bin/sh
|
|
|
|
root_password="Jednokolka"
|
|
ssh_key_rsa="ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILQqqspfQuf2aNIbu6riGMTU3g5ZRcKgnRUqDSHe3/VU pixx@desktop"
|
|
|
|
|
|
. /lib/functions.sh
|
|
. /usr/share/libubox/jshn.sh
|
|
|
|
delete_wireless() {
|
|
local name="$1"
|
|
uci -q del wireless."$name"
|
|
}
|
|
|
|
delete_network() {
|
|
local name="$1"
|
|
if [[ $name != "loopback" ]]; then
|
|
uci -q del network."$name"
|
|
fi
|
|
}
|
|
|
|
# log potential errors
|
|
exec >/tmp/setup.log 2>&1
|
|
|
|
#odstraneni vychozi konfigurace
|
|
config_load wireless
|
|
config_foreach delete_wireless wifi-iface
|
|
config_load network
|
|
config_foreach delete_network interface
|
|
config_foreach delete_network device
|
|
|
|
#ziskani puvodniho wan rozhrani
|
|
json_load_file /etc/board.json
|
|
json_select "network"
|
|
if json_is_a "wan" object; then
|
|
json_select "wan"
|
|
else
|
|
json_select "lan"
|
|
fi
|
|
json_get_var wan_device "device"
|
|
|
|
#ziskani nastaveni switche
|
|
json_select ..
|
|
json_select ..
|
|
if json_is_a "switch" object; then
|
|
echo "not DSA"
|
|
json_get_keys keys switch
|
|
json_select "switch"
|
|
for key in $keys; do
|
|
json_select $key
|
|
json_select "roles"
|
|
idx=1
|
|
while json_is_a $idx object
|
|
do
|
|
json_select $idx
|
|
json_get_var device "device"
|
|
if [[ $device == $wan_device ]]; then
|
|
json_get_var ports "ports"
|
|
ports=$(echo $ports | sed -r 's/\b([0-9]+)\b/\1t/g')
|
|
switchid=$key
|
|
fi
|
|
idx=$(( idx + 1 ))
|
|
json_select ..
|
|
done
|
|
done
|
|
else
|
|
echo "is DSA"
|
|
fi
|
|
|
|
wan_device=$(echo $wan_device | sed -r 's/\..*$|$/\.99/g')
|
|
|
|
#nastavení switche
|
|
if [ ! -z ${ports+x} ]; then
|
|
config_foreach delete_network switch_vlan
|
|
|
|
uci add network switch_vlan
|
|
uci set network.@switch_vlan[-1].device="${switchid}"
|
|
uci set network.@switch_vlan[-1].vlan='99'
|
|
uci set network.@switch_vlan[-1].ports="${ports}"
|
|
uci set network.@switch_vlan[-1].vid='99'
|
|
uci set network.@switch_vlan[-1].description='mgmnt'
|
|
fi
|
|
|
|
#vytvoreni sitoveho rozhrani pro management
|
|
uci set network.mgmnt=interface
|
|
uci set network.mgmnt.proto='dhcp'
|
|
uci set network.mgmnt.device=${wan_device}
|
|
|
|
#nastaveni root hesla
|
|
if [ -n "$root_password" ]; then
|
|
(echo "$root_password"; sleep 1; echo "$root_password") | passwd > /dev/null
|
|
fi
|
|
|
|
#nastaveni ssh
|
|
uci -q set dropbear.@dropbear[0].PasswordAuth='off'
|
|
uci -q set dropbear.@dropbear[0].RootPasswordAuth='off'
|
|
if [ -n "$ssh_key_rsa" ]; then
|
|
echo $ssh_key_rsa >> /etc/dropbear/authorized_keys
|
|
fi
|
|
|
|
uci commit network
|
|
uci commit wireless
|
|
uci commit dropbear
|
|
|
|
echo "All done!" |