mirror of
https://git.rwth-aachen.de/acs/public/villas/node/
synced 2025-03-09 00:00:00 +01:00
196 lines
3.8 KiB
Text
196 lines
3.8 KiB
Text
# Kickstart file for VILLAS installation
|
|
#
|
|
# SPDX-FileCopyrightText: 2014-2023 Institute for Automation of Complex Power Systems, RWTH Aachen University
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
# Configuration
|
|
lang en_US.UTF-8
|
|
keyboard us
|
|
timezone Europe/Berlin
|
|
selinux --disabled
|
|
firewall --disabled
|
|
services --enabled=sshd,NetworkManager,chronyd,sshd,tuned,initial-setup
|
|
network --bootproto=dhcp --device=link --activate --hostname=villas
|
|
rootpw --plaintext villas-admin
|
|
shutdown
|
|
|
|
bootloader --timeout=1 --append "preempt=full"
|
|
|
|
zerombr
|
|
clearpart --all --initlabel --disklabel=msdos
|
|
part / --size=8192 --fstype ext4
|
|
|
|
# make sure that initial-setup runs and lets us do all the configuration bits
|
|
firstboot --reconfig
|
|
|
|
# Add repositories
|
|
repo --name=fedora --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch
|
|
repo --name=updates --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f$releasever&arch=$basearch
|
|
url --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch
|
|
|
|
# Install packages
|
|
%packages
|
|
@core
|
|
@hardware-support
|
|
|
|
-@dial-up
|
|
-@input-methods
|
|
-@standard
|
|
|
|
rng-tools
|
|
initial-setup
|
|
glibc-langpack-en
|
|
|
|
# remove this in %post
|
|
dracut-config-generic
|
|
-dracut-config-rescue
|
|
dracut-live
|
|
# install tools needed to manage and boot arm systems
|
|
-uboot-images-armv7
|
|
-initial-setup-gui
|
|
-glibc-all-langpacks
|
|
-trousers
|
|
-gfs2-utils
|
|
-reiserfs-utils
|
|
|
|
# Intel wireless firmware assumed never of use for disk images
|
|
-iwl*
|
|
-ipw*
|
|
-usb_modeswitch
|
|
-generic-release*
|
|
|
|
kernel
|
|
kernel-modules
|
|
kernel-modules-extra
|
|
|
|
# Some custom packages
|
|
tuned
|
|
tuned-profiles-realtime
|
|
|
|
# Tools
|
|
autoconf
|
|
automake
|
|
bash-completion
|
|
bind-utils
|
|
bison
|
|
chrony
|
|
cmake
|
|
curl
|
|
dia
|
|
doxygen
|
|
flex
|
|
gcc
|
|
gcc-c++
|
|
git
|
|
graphviz
|
|
iproute
|
|
jq
|
|
libtool
|
|
lshw
|
|
make
|
|
mercurial
|
|
nano
|
|
ninja-build
|
|
openssh-clients
|
|
pkgconfig
|
|
procps-ng
|
|
protobuf-c-compiler
|
|
protobuf-compiler
|
|
psmisc
|
|
python-pip
|
|
tar
|
|
texinfo
|
|
tmux
|
|
traceroute
|
|
wget
|
|
|
|
# Libraries and build-time dependencies of VILLASnode
|
|
openssl-devel
|
|
protobuf-devel
|
|
protobuf-c-devel
|
|
libuuid-devel
|
|
libconfig-devel
|
|
libnl3-devel
|
|
libcurl-devel
|
|
jansson-devel
|
|
spdlog-devel
|
|
fmt-devel
|
|
libwebsockets-devel
|
|
zeromq-devel
|
|
nanomsg-devel
|
|
librabbitmq-devel
|
|
mosquitto-devel
|
|
libibverbs-devel
|
|
librdmacm-devel
|
|
re-devel
|
|
libusb-devel
|
|
lua-devel
|
|
librdkafka-devel
|
|
|
|
%end
|
|
|
|
# Custom post installer
|
|
%post
|
|
|
|
# Install VILLASnode
|
|
mkdir /villas
|
|
git clone https://git.rwth-aachen.de/acs/public/villas/node.git /villas/node
|
|
|
|
cd /villas/node
|
|
git submodule update --init common
|
|
|
|
bash ./packaging/deps.sh
|
|
|
|
mkdir build
|
|
cd build
|
|
|
|
cmake ..
|
|
make -j$(nproc) install
|
|
|
|
echo /usr/local/lib64 > /etc/ld.so.conf.d/local.conf
|
|
ldconfig
|
|
|
|
# Select real-time tuned profile
|
|
PROC=$(nproc)
|
|
ISOLATED_CORES=
|
|
if ((PROC > 4)); then
|
|
ISOLATED_CORES+=$(seq -s, $((PROC/2)) $((PROC-1)))
|
|
fi
|
|
|
|
echo isolated_cores=${ISOLATED_CORES} >> /etc/tuned/realtime-variables.conf
|
|
tuned-adm profile realtime
|
|
|
|
# Install patched files
|
|
cd /villas/node/packaging/live-iso
|
|
make patched
|
|
rsync --ignore-errors --archive --verbose /villas/node/packaging/live-iso/build/patched_files/ /
|
|
%end
|
|
|
|
# From fedora-disk-base
|
|
%post
|
|
|
|
# Find the architecture we are on
|
|
arch=$(uname -m)
|
|
|
|
releasever=$(rpm --eval '%{fedora}')
|
|
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-primary
|
|
|
|
echo "Packages within this disk image"
|
|
rpm -qa --qf '%{size}\t%{name}-%{version}-%{release}.%{arch}\n' |sort -rn
|
|
|
|
# remove random seed, the newly installed instance should make it's own
|
|
rm -f /var/lib/systemd/random-seed
|
|
|
|
# The enp1s0 interface is a left over from the imagefactory install, clean this up
|
|
rm -f /etc/NetworkManager/system-connections/*.nmconnection
|
|
|
|
dnf -y remove dracut-config-generic
|
|
|
|
# Remove machine-id on pre generated images
|
|
rm -f /etc/machine-id
|
|
touch /etc/machine-id
|
|
|
|
# Note that running rpm recreates the rpm db files which aren't needed or wanted
|
|
rm -f /var/lib/rpm/__db*
|
|
|
|
%end
|