mirror of
https://git.valherun.com/valherun/pxe_boot_alma.git
synced 2026-10-15 21:22:03 -04:00
Initialize AlmaLinux PXE boot repo
This commit is contained in:
commit
75c7000b36
9 files changed
+580
No files matched your search
Executable
+76
@@ -0,0 +1,76 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
ISO_PATH=""
|
||||
HTTP_ROOT=""
|
||||
MOUNT_DIR=""
|
||||
|
||||
usage() {
|
||||
cat <<'EOF'
|
||||
Usage: sync_alma_tree.sh --iso FILE --http-root DIR [--mount-dir DIR]
|
||||
|
||||
Mount an AlmaLinux ISO read-only and copy its contents into an HTTP-served
|
||||
install tree for PXE/Kickstart use.
|
||||
EOF
|
||||
}
|
||||
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case "$1" in
|
||||
--iso)
|
||||
ISO_PATH="$2"
|
||||
shift 2
|
||||
;;
|
||||
--http-root)
|
||||
HTTP_ROOT="$2"
|
||||
shift 2
|
||||
;;
|
||||
--mount-dir)
|
||||
MOUNT_DIR="$2"
|
||||
shift 2
|
||||
;;
|
||||
-h|--help)
|
||||
usage
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
echo "Unknown option: $1" >&2
|
||||
usage >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [[ -z "$ISO_PATH" || -z "$HTTP_ROOT" ]]; then
|
||||
usage >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ ! -f "$ISO_PATH" ]]; then
|
||||
echo "ISO not found: $ISO_PATH" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ $EUID -ne 0 ]]; then
|
||||
echo "Re-running with sudo..."
|
||||
exec sudo "$0" "$@"
|
||||
fi
|
||||
|
||||
if [[ -z "$MOUNT_DIR" ]]; then
|
||||
MOUNT_DIR="$(mktemp -d /tmp/alma-iso.XXXXXX)"
|
||||
fi
|
||||
|
||||
cleanup() {
|
||||
if mountpoint -q "$MOUNT_DIR"; then
|
||||
umount "$MOUNT_DIR"
|
||||
fi
|
||||
rmdir "$MOUNT_DIR" 2>/dev/null || true
|
||||
}
|
||||
|
||||
trap cleanup EXIT
|
||||
|
||||
mkdir -p "$HTTP_ROOT"
|
||||
mount -o loop,ro "$ISO_PATH" "$MOUNT_DIR"
|
||||
rsync -aH --delete "$MOUNT_DIR"/ "$HTTP_ROOT"/
|
||||
|
||||
echo "Synced AlmaLinux tree to $HTTP_ROOT"
|
||||
Reference in new issue
Block a user