gns3-registry/packer/alpine-linux/scripts/ostinato.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

115 lines
2.9 KiB
Bash

# install packages
alpine_version=$(cat /etc/alpine-release)
alpine_version=${alpine_version%.*}
apk add nano mousepad
apk add --allow-untrusted \
/tmp/uploads/ostinato/$alpine_version/ostinato-drone*.apk \
/tmp/uploads/ostinato/$alpine_version/ostinato-gui*.apk
apk add tshark wireshark
# desktop integration
cat > /usr/share/applications/ostinato.desktop << 'EOF'
[Desktop Entry]
Name=Ostinato
GenericName=Packet Traffic Generator
Exec=ostinato
Icon=ostinato
Terminal=false
Type=Application
Categories=Network;Monitor;Qt;
EOF
cp -p /tmp/uploads/ostinato/logo_256x256.png /usr/share/icons/hicolor/256x256/apps/ostinato.png
gtk-update-icon-cache -f /usr/share/icons/hicolor
# change hostname
sed -i -e "s/^127\.0\.0\.1.*/127.0.0.1\tostinato.$(hostname -d) ostinato localhost.localdomain localhost/" /etc/hosts
echo ostinato > /etc/hostname
hostname ostinato
# configure ostinato
mkdir -p /etc/xdg/Ostinato
printf '[General]\nRateAccuracy=Low\n[PortList]\nExclude=any,lo*\n' > /etc/xdg/Ostinato/drone.ini
# allow ostinato group to run drone
addgroup -S ostinato
chgrp ostinato /usr/bin/drone
chmod 750 /usr/bin/drone
setcap cap_net_admin,cap_net_raw=eip /usr/bin/drone
# add user to ostinato and wireshark group
addgroup user ostinato
addgroup user wireshark
# reset terminal modes
sed -i "$(printf '1i\e[?5l\e[?7h\e[?8h')" /etc/motd
# create .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
EOF
find /home -type d -mindepth 1 -maxdepth 1 | while read -r home; do
cp -p /root/.profile "$home/"
chown $(stat -c '%u:%g' "$home") "$home/.profile"
done
# 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)
# Minimal configuration for ethernet interfaces
# If static IP or DHCP is enabled for eth0, comment the config for eth0
auto eth0
iface eth0 inet manual
pre-up sysctl -q -w net.ipv6.conf.\$IFACE.disable_ipv6=1
up ip link set dev \$IFACE mtu 9000 up
down ip link set dev \$IFACE down
auto eth1
iface eth1 inet manual
pre-up sysctl -q -w net.ipv6.conf.\$IFACE.disable_ipv6=1
up ip link set dev \$IFACE mtu 9000 up
down ip link set dev \$IFACE down
auto eth2
iface eth2 inet manual
pre-up sysctl -q -w net.ipv6.conf.\$IFACE.disable_ipv6=1
up ip link set dev \$IFACE mtu 9000 up
down ip link set dev \$IFACE down
auto eth3
iface eth3 inet manual
pre-up sysctl -q -w net.ipv6.conf.\$IFACE.disable_ipv6=1
up ip link set dev \$IFACE mtu 9000 up
down ip link set dev \$IFACE down
EOF
cat > /etc/resolv.conf << EOF
EOF