RockyLinux服务器一键初始化配置脚本

RockyLinux服务器一键初始化配置脚本

在部署全新的 RockyLinux 服务器时,系统管理员往往需要进行一系列繁琐的基础配置工作,包括设置主机名、关闭安全策略、调整系统资源限制、安装常用工具及配置 Docker 环境等。这些手动操作不仅耗时,而且容易因疏忽导致配置错误。为此,本文提供了一份一键初始化脚本,帮助您快速完成基础环境搭建,保障服务器具备稳定、高效的运行基础。

脚本设计理念

  • 自动化执行:只需复制并运行脚本,减少重复劳动力
  • 安全考虑:需以 root 身份运行,脚本中包含权限检测
  • 灵活变量配置:关键参数如主机名和用户名可自定义修改
  • 实用工具集成:安装常用命令行工具,加快后续操作效率
  • Docker 环境完整部署:引入阿里云镜像源,提高安装速度与稳定性
  • 系统性能优化:通过调整虚拟内存、文件描述符等系统参数提升性能

一键初始化脚本详解

将以下脚本复制到 RockyLinux 服务器终端,并以 root 账户执行即可。请根据您的实际需求,调整脚本开头的变量以适配不同环境。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
cat > init-rockyLinux.sh << "EOF" && chmod +x init-rockyLinux.sh && ./init-rockyLinux.sh
#!/bin/bash

# 确保脚本以 root 身份执行
if [ "$(id -u)" -ne 0 ]; then
echo "错误:该脚本需要以 root 身份运行。"
exit 1
fi

#####################################
# 变量定义 #
#####################################
# 设置新的主机名,请根据需求修改
NEW_HOSTNAME="docker"
# 指定需要配置免密 sudo 及 docker 命令权限的用户名
USERNAME=lbs

echo "开始替换镜像源..."
sudo cp -r /etc/yum.repos.d /etc/yum.repos.d.bak
sudo sed -e 's|^mirrorlist=|#mirrorlist=|g' \
-e 's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.aliyun.com/rockylinux|g' \
-i.bak \
/etc/yum.repos.d/Rocky-*.repo
sudo yum install -y epel-release
sudo sed -e 's!^metalink=!#metalink=!g' \
-e 's!^#baseurl=!baseurl=!g' \
-e 's!https\?://download\.fedoraproject\.org/pub/epel!https://mirrors.aliyun.com/epel!g' \
-e 's!https\?://download\.example/pub/epel!https://mirrors.aliyun.com/epel!g' \
-i.bak /etc/yum.repos.d/epel{,-testing}.repo
sudo yum clean all
sudo yum makecache

echo "开始设置主机名为 '$NEW_HOSTNAME'..."
hostnamectl set-hostname "$NEW_HOSTNAME"

echo "关闭 SELinux(切换为disabled)..."
setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config || \
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config

echo "禁用 Swap 以提升性能..."
swapoff -a
sed -ri 's/.*swap.*/#&/' /etc/fstab

echo "停止并禁用 firewalld 防火墙..."
systemctl disable firewalld.service
systemctl stop firewalld.service

echo "配置系统资源限制(文件描述符、进程数)..."
cat >> /etc/security/limits.conf <<EOL
* soft nofile 65536
* hard nofile 65536
* soft nproc 65536
* hard nproc 65536
EOL

cat > /etc/security/limits.d/20-nproc.conf <<EOL
* soft nproc 65536
* hard nproc 65536
EOL

echo "调整虚拟内存映射上限 (vm.max_map_count=2000000)..."
if ! grep -q "vm.max_map_count" /etc/sysctl.conf; then
echo "vm.max_map_count=2000000" >> /etc/sysctl.conf
fi
sysctl -p

echo "安装常用基础工具包..."
yum install -y vim git curl wget unzip zip lrzsz net-tools epel-release tree gcc automake autoconf libtool make openssl yum-utils device-mapper-persistent-data lvm2 chrony

echo "同步时间..."
sudo systemctl enable --now chronyd
sudo chronyc makestep

echo "配置并安装 Docker CE..."
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install -y docker-ce-25.0.5 docker-ce-cli-25.0.5 containerd.io

echo "启动并开机自启 Docker 服务..."
systemctl enable docker
systemctl start docker

echo "创建 Docker 配置目录并生成 daemon.json 配置文件..."
mkdir -p /etc/docker
cat > /etc/docker/daemon.json <<-'EOT'
{
"exec-opts": ["native.cgroupdriver=systemd"],
"max-concurrent-downloads": 10,
"log-driver": "json-file",
"log-level": "info",
"log-opts": {
"max-size": "10m",
"max-file": "3"
},
"data-root": "/var/lib/docker"
}
EOT

echo "设置用户 '$USERNAME' 免密 sudo 权限..."
if [ ! -f /etc/sudoers.d/${USERNAME} ]; then
echo "${USERNAME} ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/${USERNAME}
chmod 440 /etc/sudoers.d/${USERNAME}
fi

echo "将用户 '${USERNAME}' 添加到 docker 用户组,允许不使用 sudo 执行 docker 命令..."
usermod -aG docker ${USERNAME}

echo "安装并启动 V2rayA..."
curl -o install_v2ray.sh https://lbs-install.oss-cn-shanghai.aliyuncs.com/v2raya/install_v2ray.sh
bash ./install_v2ray.sh
curl -o installer_redhat_x64_2.2.5.8.rpm https://gh-proxy.com/github.com/v2rayA/v2rayA/releases/download/v2.2.5.8/installer_redhat_x64_2.2.5.8.rpm
sudo rpm -i installer_redhat_x64_2.2.5.8.rpm
sudo systemctl enable v2raya && sudo systemctl start v2raya

echo "初始化完成!为了确保所有设置生效,请重启系统。"
EOF

脚本使用指南

  1. 变量调整

    • NEW_HOSTNAME:修改为您服务器的目标主机名
    • USERNAME:输入需要配置权限的系统用户名(须已经存在)
  2. 运行脚本
    以 root 用户登录服务器,将上面完整脚本复制粘贴回车执行。脚本将自动完成所有配置。

  3. 系统重启
    脚本执行完成后,请务必重启服务器以应用所有内核和系统级参数变更。

脚本亮点说明

  • SELinux关闭:大多数生产环境会因兼容性需求关闭 SELinux,避免权限问题。
  • Swap关闭:容器化环境推荐禁用 Swap,优化内存分配。
  • 资源限制提升:大幅增加文件句柄和进程数,避免高负载时系统瓶颈。
  • Docker 官方仓库替换为阿里云镜像:提升软件包下载速度和稳定性。
  • Docker配置优化:采用 systemd cgroup 驱动,多线程下载限制,日志文件大小控制,保障 Docker 持续稳定运行。
  • 权限管理:为指定用户提供免密 sudo 及 docker 组权限,便于日常运维操作。

总结

通过执行这份自动化初始化脚本,您可以快速搭建一套既合规又高效的 RockyLinux 基础服务器环境,省去重复配置时间,并减少人为操作失误风险。欢迎根据自身环境对脚本进行个性化定制,打造符合团队标准的服务器模板。

祝您服务器管理顺利,开发、部署更高效!

RockyLinux服务器一键初始化配置脚本

https://lbs.wiki/pages/c8df43e1/

作者

李博帅

发布于

2024-03-23

更新于

2025-06-13

许可协议