From: Christian Heller Date: Tue, 29 Aug 2023 21:26:38 +0000 (+0200) Subject: Improve server setup. X-Git-Url: https://plomlompom.com/repos/%7B%7Bprefix%7D%7D/foo.html?a=commitdiff_plain;h=532fa439a92bac271690e1cc90314c8c53a07bb5;p=config Improve server setup. --- diff --git a/bookworm/setup_scripts/_setup.sh b/bookworm/setup_scripts/_setup.sh new file mode 100755 index 0000000..0c28d60 --- /dev/null +++ b/bookworm/setup_scripts/_setup.sh @@ -0,0 +1,34 @@ +#!/bin/sh +set -e +. ./misc.sh + +expect_n_args 2 "(hostname, FQDN)" "$@" +hostname="$1" +fqdn="$2" +shift 2 + +cd "${setup_scripts_dir}" + +# Adapt /etc/ to our needs by copying from ./etc_files. This will set +# basic configurations affecting following steps, such as setup of APT +# and the locale selection, so needs to be right at the beginning. +./copy_dirtree.sh "${config_tree_prefix}/etc_files" "" all "$@" + +# Set hostname and FQDN. +./set_hostname_and_fqdn.sh "${hostname}" "${fqdn}" + +# Ensure package installation state as defined by what packages are +# defined as required by Debian policy and by settings in ./apt-mark/. +apt update +./install_for_target.sh all "$@" +./purge_nonrequireds.sh all "$@" + +# Ensure our desired locale is available. +locale-gen + +# Only upgrade after reducing the system to the desired minimum, so that +# we don't need to get more data than necessary. +apt -y dist-upgrade + +# Set Berlin localtime. +ln -sf /usr/share/zoneinfo/Europe/Berlin /etc/localtime diff --git a/bookworm/setup_scripts/setup.sh b/bookworm/setup_scripts/setup.sh deleted file mode 100755 index 0c28d60..0000000 --- a/bookworm/setup_scripts/setup.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/sh -set -e -. ./misc.sh - -expect_n_args 2 "(hostname, FQDN)" "$@" -hostname="$1" -fqdn="$2" -shift 2 - -cd "${setup_scripts_dir}" - -# Adapt /etc/ to our needs by copying from ./etc_files. This will set -# basic configurations affecting following steps, such as setup of APT -# and the locale selection, so needs to be right at the beginning. -./copy_dirtree.sh "${config_tree_prefix}/etc_files" "" all "$@" - -# Set hostname and FQDN. -./set_hostname_and_fqdn.sh "${hostname}" "${fqdn}" - -# Ensure package installation state as defined by what packages are -# defined as required by Debian policy and by settings in ./apt-mark/. -apt update -./install_for_target.sh all "$@" -./purge_nonrequireds.sh all "$@" - -# Ensure our desired locale is available. -locale-gen - -# Only upgrade after reducing the system to the desired minimum, so that -# we don't need to get more data than necessary. -apt -y dist-upgrade - -# Set Berlin localtime. -ln -sf /usr/share/zoneinfo/Europe/Berlin /etc/localtime diff --git a/bookworm/setup_scripts/setup_desktop.sh b/bookworm/setup_scripts/setup_desktop.sh index 9df5512..637dfc2 100755 --- a/bookworm/setup_scripts/setup_desktop.sh +++ b/bookworm/setup_scripts/setup_desktop.sh @@ -7,7 +7,7 @@ get_system_name_arg "$1" # Set up system without user environment. cd "${setup_scripts_dir}" -./setup.sh "${system_name}" "" user desktop thinkpad "${system_name}" +./_setup.sh "${system_name}" "" user desktop thinkpad "${system_name}" # Set up printer. ppd_deb="hll2350dwpdrv-4.0.0-1.i386.deb" diff --git a/bookworm/setup_scripts/setup_server.sh b/bookworm/setup_scripts/setup_server.sh index 3324962..e77d17f 100755 --- a/bookworm/setup_scripts/setup_server.sh +++ b/bookworm/setup_scripts/setup_server.sh @@ -9,9 +9,15 @@ hostname="$1" fqdn="$2" additional_arg="$3" +# Set up basic server system. +cd "${setup_scripts_dir}" +./_setup.sh "${hostname}" "${fqdn}" server "$@" + # If we have not yet set the shell for user plom, ensure it here. This # is mostly for convenience. usermod -s /bin/bash plom # Enable firewall. systemctl enable nftables.service + +touch "$HOME/setup_server_has_been_run" diff --git a/bookworm/setup_scripts/setup_web.sh b/bookworm/setup_scripts/setup_web.sh index d4d3a61..4b1e93f 100755 --- a/bookworm/setup_scripts/setup_web.sh +++ b/bookworm/setup_scripts/setup_web.sh @@ -5,6 +5,11 @@ set -e expect_n_args 1 "(domain name)" "$@" domain="$1" +if [ ! -f "$HOME/setup_server_has_been_run" ]; then + echo "First need to run setup_server.sh." + false +fi + # Install configs, set up firewall. ./install_for_target.sh web static_websites ./copy_dirtree.sh "${config_tree_prefix}/etc_files" "" web static_websites