gns3-registry/packer/alpine-linux/scripts/frr.sh
Bernhard Ehlers 69aec6bfe5 Alpine packer updates
- Ostinato .apk building script generalized to use it for any package
- Reset terminal mode using /etc/motd
2021-05-25 14:47:24 +02:00

89 lines
1.8 KiB
Bash

# add community repository
sed -i 's/^#\(.*\/v.*\/community\)$/\1/' /etc/apk/repositories
apk update
# install packages
apk add nano less busybox-extras
apk add frr frr-openrc
rc-update add frr
# enable IP forwarding
cat > /etc/sysctl.d/50-ip_forwarding.conf << EOF
net.ipv4.conf.all.forwarding=1
net.ipv6.conf.all.forwarding=1
EOF
# change hostname
cat > /root/set_hostname << 'EOF'
#!/bin/sh
if [ $# -ne 1 ]; then
echo "usage: set_hostname host" >&2
exit 1
fi
host=$1
hostname=${host%%.*}
if [ "$host" = "$hostname" ]; then
domain=$(hostname -d)
else
domain=${host#*.}
fi
hostname "$hostname"
echo "$hostname" > /etc/hostname
sed -i -e "s/^127\.0\.0\.1.*/127.0.0.1\t${hostname}.${domain} ${hostname} localhost.localdomain localhost/" /etc/hosts
EOF
chmod +x /root/set_hostname
/root/set_hostname frr
# modify FRR configuration
sed -i -E '/zebra|bgp|ospf|rip|isis|pim|ldp|eigrp|static|bfd/ s/= *no/=yes/' /etc/frr/daemons
echo "service integrated-vtysh-config" > /etc/frr/vtysh.conf
chown frr:frr /etc/frr/vtysh.conf
# reset terminal modes
sed -i "$(printf '1i\e[?5l\e[?7h\e[?8h')" /etc/motd
# run vtysh in .profile
cat > /root/.profile << 'EOF'
# ~/.profile: executed by Bourne-compatible login shells.
if [ "$BASH" ]; then
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
fi
mesg n || true
export VTYSH_PAGER="less -M -i -EFX"
vtysh
EOF
# network configuration
cat > /etc/network/interfaces << EOF
#
# This is a sample network config, uncomment lines to configure the network
#
# Loopback interface
auto lo
iface lo inet loopback
# Static config for eth0
#auto eth0
#iface eth0 inet static
# address 192.168.0.2
# netmask 255.255.255.0
# gateway 192.168.0.1
# up echo nameserver 192.168.0.1 > /etc/resolv.conf
# DHCP config for eth0
#auto eth0
#iface eth0 inet dhcp
# hostname $(hostname)
EOF
cat > /etc/resolv.conf << EOF
EOF