Initialer Import der Synology Scripts
This commit is contained in:
+100
@@ -0,0 +1,100 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Logger Function
|
||||
log() {
|
||||
local message="$1"
|
||||
local type="$2"
|
||||
local timestamp=$(date '+%Y-%m-%d %H:%M:%S')
|
||||
local color
|
||||
local endcolor="\033[0m"
|
||||
|
||||
case "$type" in
|
||||
"info") color="\033[38;5;79m" ;;
|
||||
"success") color="\033[1;32m" ;;
|
||||
"error") color="\033[1;31m" ;;
|
||||
*) color="\033[1;34m" ;;
|
||||
esac
|
||||
|
||||
echo -e "${color}${timestamp} - ${message}${endcolor}"
|
||||
}
|
||||
|
||||
# Error handler function
|
||||
handle_error() {
|
||||
local exit_code=$1
|
||||
local error_message="$2"
|
||||
log "Error: $error_message (Exit Code: $exit_code)" "error"
|
||||
exit $exit_code
|
||||
}
|
||||
|
||||
# Function to check for command availability
|
||||
command_exists() {
|
||||
command -v "$1" &> /dev/null
|
||||
}
|
||||
|
||||
check_os() {
|
||||
if ! [ -f "/etc/redhat-release" ]; then
|
||||
echo "Error: This script is only supported on RHEL-based systems."
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
# Function to install the script prerequisites
|
||||
install_pre_reqs() {
|
||||
log "Installing pre-requisites" "info"
|
||||
|
||||
# Run 'yum update'
|
||||
if ! yum update -y; then
|
||||
handle_error "$?" "Failed to run 'yum update'"
|
||||
fi
|
||||
|
||||
# Install required packages
|
||||
if ! yum install -y curl ca-certificates gnupg2; then
|
||||
handle_error "$?" "Failed to install required packages"
|
||||
fi
|
||||
|
||||
# Create directory for keyrings
|
||||
if ! mkdir -p /etc/pki/rpm-gpg; then
|
||||
handle_error "$?" "Failed to create /etc/pki/rpm-gpg directory"
|
||||
fi
|
||||
|
||||
# Remove old keyring if exists
|
||||
rm -f /etc/pki/rpm-gpg/nodesource.gpg || true
|
||||
|
||||
# Download and import the NodeSource GPG key
|
||||
if ! curl -fsSL https://rpm.nodesource.com/pub/el/NODESOURCE-GPG-SIGNING-KEY-EL | gpg --dearmor -o /etc/pki/rpm-gpg/nodesource.gpg; then
|
||||
handle_error "$?" "Failed to download and import the NodeSource GPG key"
|
||||
fi
|
||||
}
|
||||
|
||||
# Function to configure the Node.js repository for RHEL
|
||||
configure_repo() {
|
||||
local node_version=$1
|
||||
|
||||
# Create the Nodesource repo file
|
||||
cat <<EOF > /etc/yum.repos.d/nodesource.repo
|
||||
[nodesource]
|
||||
name=Node.js Packages for Enterprise Linux
|
||||
baseurl=https://rpm.nodesource.com/pub_$(echo $node_version | tr -d 'x').x/el/\$releasever/\$basearch
|
||||
enabled=1
|
||||
gpgcheck=1
|
||||
gpgkey=file:///etc/pki/rpm-gpg/nodesource.gpg
|
||||
EOF
|
||||
|
||||
# Run 'yum clean all' and 'yum makecache' to refresh the repository
|
||||
if ! yum clean all && yum makecache; then
|
||||
handle_error "$?" "Failed to refresh repositories"
|
||||
else
|
||||
log "Repository configured successfully." "success"
|
||||
log "To install Node.js, run: yum install nodejs -y" "info"
|
||||
fi
|
||||
}
|
||||
|
||||
# Define Node.js version
|
||||
NODE_VERSION="20.x"
|
||||
|
||||
# Check OS
|
||||
check_os
|
||||
|
||||
# Main execution
|
||||
install_pre_reqs || handle_error $? "Failed installing pre-requisites"
|
||||
configure_repo "$NODE_VERSION" || handle_error $? "Failed configuring repository"
|
||||
Reference in New Issue
Block a user