Rocky初始化
目录
1、网络初始化配置
# 查看设备信息
[root@localhost ~]# nmcli device
DEVICE TYPE STATE CONNECTION
ens18 ethernet connecting (getting IP configuration) ens18
lo loopback unmanaged --
# 配置 IPv4 地址
[root@localhost ~]# nmcli connection modify ens18 ipv4.addresses 192.168.11.144/24
# 配置 IPv4网关
[root@localhost ~]# nmcli connection modify ens18 ipv4.gateway 192.168.11.254
# 配置 IPv4 DNS,多个 DNS IP 之间使用双引号 + 空格
[root@localhost ~]# nmcli connection modify ens18 ipv4.dns "114.114.114.114 223.6.6.6"
# 设置 DNS 基础搜索,多个域名之间使用双引号 + 空格
[root@localhost ~]# nmcli connection modify ens18 ipv4.dns-search "rockylinux.cn rockylinux.org"
# 重新加载网络配置
[root@localhost ~]# nmcli connection down ens18; nmcli connection up ens18
# 查看接口配置信息
[root@localhost ~]# nmcli device show ens18
# 查看IP
[root@localhost ~]# ip addr
# 配置DHCP[auto]
[root@localhost ~]# nmcli connection modify enp1s0 ipv4.method manual
# 查看配置文件,如果需要配置多IP,可以修改此配置文件。
[root@localhost ~]# cat /etc/NetworkManager/system-connections/ens18.nmconnection
# 查看网络连接
[root@localhost ~]# nmcli connection
# 重启网络
[root@localhost ~]# systemctl restart NetworkManager
[root@localhost ~]# systemctl status NetworkManager
#禁用ipv6
# 因为我们用不到IPv6,所以禁用IPv6
[root@localhost ~]# grubby --update-kernel ALL --args ipv6.disable=1
# 回滚内核层禁用操作
[root@localhost ~]# grubby --update-kernel ALL --remove-args ipv6.disable
# 验证内核参数是否禁用IPv6
[root@localhost ~]# grubby --info DEFAULT
index=0
kernel="/boot/vmlinuz-5.14.0-70.13.1.el9_0.x86_64"
args="ro crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M resume=/dev/mapper/rl-swap rd.lvm.lv=rl/root rd.lvm.lv=rl/swap ipv6.disable=1"
root="/dev/mapper/rl-root"
initrd="/boot/initramfs-5.14.0-70.13.1.el9_0.x86_64.img"
title="Rocky Linux (5.14.0-70.13.1.el9_0.x86_64) 9.0 (Blue Onyx)"
id="0af0a3c0bc4946a6bb4cc8daa8c8a1f7-5.14.0-70.13.1.el9_0.x86_64"
# 重启,生效配置
[root@localhost ~]# reboot
2、关闭防火墙和selinux
systemctl disable --now firewalld
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
3、设置时区和语言环境,调整文件描述符限制
#设置时区
timedatectl set-timezone Asia/Shanghai
#设置语言环境
localectl set-locale LANG=zh_CN.UTF-8
#调整文件描述符限制
echo "* soft nofile 65535" | sudo tee -a /etc/security/limits.conf
echo "* hard nofile 65535" | sudo tee -a /etc/security/limits.conf
echo "* soft nproc 65535" | sudo tee -a /etc/security/limits.conf
echo "* hard nproc 65535" | sudo tee -a /etc/security/limits.conf
4、修改主机名+更新machine-id
修改主机名
hostnamectl set-hostname pony
如果是克隆的虚拟机,请注意更新machine-id
sudo cp /etc/machine-id /etc/machine-id.backup
sudo rm /etc/machine-id
sudo systemd-machine-id-setup
cat /etc/machine-id
5、时间同步
#设置时区
timedatectl set-timezone Asia/Shanghai
#配置时间同步
vi /etc/chrony.conf
server ntp.aliyun.com iburst
server ntp1.aliyun.com iburst
server ntp2.aliyun.com iburst
#allow 192.168.0.0/16
allow 0.0.0.0/0 #加此行,指定允许同步的网段
# Serve time even if not synchronized to a time source.
local stratum 10 #删除此行注释,当互联网无法连接,仍然可以为客户端提供时间同步服务
systemctl restart chronyd
#启用Chrony服务
#运行以下命令启动chronyd服务并设置开机自启动。
systemctl start chronyd.service
systemctl enable chronyd.service
#运行以下命令查看本机时间同步状态,用于验证服务是否已启动
chronyc tracking
#运行以下命令查看时间同步服务器列表。
chronyc -n sources -v
6、配置镜像源
基础源
#上海交通大学
sed -e 's|^mirrorlist=|#mirrorlist=|g' \
-e 's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.sjtug.sjtu.edu.cn/rocky|g' \
-i.bak \
/etc/yum.repos.d/[Rr]ocky*.repo
#阿里云
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/[Rr]ocky*.repo
安装epel源
#epel源
dnf config-manager --set-enabled crb
dnf install epel-release -y
# 安装 EPEL Repo
#dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
# 安装 EPEL Next Repo
#dnf install -y https://dl.fedoraproject.org/pub/epel/epel-next-release-latest-9.noarch.rpm
sed -e 's|^metalink=|#metalink=|g' \
-e 's|^#baseurl=https://download.example/pub|baseurl=https://mirrors.aliyun.com|g' \
-i.bak \
/etc/yum.repos.d/epel*.repo
# 注意:
# Rocky Linux 中 #baseurl=https://download.example/pub
# 与 CentOS 相同,而 Alma Linux #baseurl=https://download.fedoraproject.org/pub
安装remei源(可选)
dnf install https://rpms.Remirepo.net/enterprise/Remi-release-9.rpm
#查看仓库源
dnf repolist
#使用方法
# 列出 Remi 仓库下所有可供安装的包
dnf --disablerepo="*" --enablerepo="Remi" list available
dnf --disablerepo="*" --enablerepo="Remi-safe" list available
# 这里以安装 php 包为例,使用 Remi 仓库安装包,列出所有 php 包
dnf module list php
# 该命令安装 PHP 8.1 及其所有依赖项
dnf module install php:Remi-8.1
# 通过 Remi 仓库启用或禁用包
# 启用 php Remi-8.1
dnf module enable php:Remi-8.1 -y
# 禁用 php Remi-8.1
dnf module disable php:Remi-8.1 -y
添加 RPM Fusion 仓库
# 免费仓库
dnf install --nogpgcheck https://mirrors.rpmfusion.org/free/el/rpmfusion-free-release-$(rpm -E %rhel).noarch.rpm -y
# 非免费仓库:
dnf install --nogpgcheck https://mirrors.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-$(rpm -E %rhel).noarch.rpm -y
# 验证是否安装成功
[root@localhost ~]# dnf repolist | grep rpmfusion
rpmfusion-free-updates RPM Fusion for EL 9 - Free - Updates
rpmfusion-nonfree-updates RPM Fusion for EL 9 - Nonfree - Updates
# 免费包列出可用的包
dnf repository-packages rpmfusion-free-updates list
# 非免费包列出可用的包
dnf repository-packages rpmfusion-nonfree-updates list
#搜索包
# 搜索 VirtualBox 相关软件包
[root@localhost ~]# dnf repository-packages rpmfusion-free-updates list | grep -i virtualbox
VirtualBox.x86_64 6.1.40-1.el9 rpmfusion-free-updates
VirtualBox-devel.x86_64 6.1.40-1.el9 rpmfusion-free-updates
VirtualBox-kmodsrc.noarch 6.1.40-1.el9 rpmfusion-free-updates
VirtualBox-server.x86_64 6.1.40-1.el9 rpmfusion-free-updates
VirtualBox-webservice.x86_64 6.1.40-1.el9 rpmfusion-free-updates
akmod-VirtualBox.x86_64 6.1.40-1.el9 rpmfusion-free-updates
kmod-VirtualBox.x86_64 6.1.40-1.el9 rpmfusion-free-updates
kmod-VirtualBox-5.14.0-70.el9_0.x86_64 6.1.40-1.el9 rpmfusion-free-updates
python3-VirtualBox.x86_64 6.1.40-1.el9 rpmfusion-free-updates
# 安装 VirtualBox-server
dnf install VirtualBox-server
清理并重新生成软件包信息缓存:
yum clean all
yum autoremove
rm -rf /var/cache/yum
yum makecache
#更新系统
dnf update -y
dnf upgrade --refresh -y
7、安装常用依赖
[root@localhost ~]# dnf install -y vim curl tree wget net-tools lrzsz bash-completion iotop bc gcc gcc-c++ glibc glibc-devel pcre pcre-devel openssl openssl-devel zip unzip zlib-devel net-tools tree telnet lsof tcpdump libevent libevent-devel
8、安装Docker CE,调试镜像源
安装
dnf install -y yum-utils
dnf config-manager --add-repo=https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
yum makecache
#安装最新版本
dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
#安装指定版本
yum list docker-ce --showduplicates | sort -r
yum list docker-ce-cli --showduplicates | sort -r
格式: sudo dnf insall docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io docker-buildx-plugin docker-compose-plugin
sudo dnf install -y docker-ce-3:26.1.3-1.el9 docker-ce-cli-1:26.1.3-1.el9 containerd.io docker-buildx-plugin docker-compose-plugin
#配置docker
cat >> /etc/docker/daemon.json << EOF
{
"log-driver": "json-file",
"log-opts": {
"max-file": "3",
"max-size": "500m"
},
"data-root":"/data/docker",
"registry-mirrors": [
"https://docker.1panel.live",
"https://dockerhub.xianfish.site",
"https://docker.m.daocloud.io",
"https://dockerproxy.com",
"https://docker.nju.edu.cn"
]
}
EOF
#使配置生效
systemctl daemon-reload
#重启docker
systemctl restart docker
# 设置开机自启动
sudo systemctl enable docker
# 建议添加普通用户至Docker组,并以普通用户运行Docker。
sudo usermod -aG docker $USER
# 生效组用户变更配置
newgrp docker
查看docker信息
[root@localhost ~]# docker info
[root@localhost ~]#
相关参数配置,从修改 Docker 文件系统为 ovelay2 驱动,并配置 Docker 下载加速器地址,因为国内很多 Docker 加速器都需要进行认证,中国科学技术大学不需要进行认证,所以这里采用中国科学技术大学的 Docker 加速器。 自 2024-06-06 开始,国内的 Docker Hub 镜像加速器相继停止服务,可选择为 Docker daemon 配置代理或自建镜像加速服务。可参考:国内三方镜像加速器列表
[root@localhost ~]# mkdir /etc/docker
[root@localhost ~]# cat > /etc/docker/daemon.json << EOF
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"], # 一般用于配置国内 DockerHub 镜像加速仓库
"insecure-registries":["https://dockerhub.rockylinux.cn"], # 一般用于配置私有仓库
"hosts": ["tcp://0.0.0.0:2375", "unix:///var/run/docker.sock"], # Docker远程管理,可以结合portainer WEB管理工具一起使用
"exec-opts": ["native.cgroupdriver=systemd"], # 官方推荐使用systemd,非常不建议使用cgroupfs
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": "3"
}, #max-size=100m,意味着一个容器日志大小上限是100M,max-file=3,意味着一个容器有三个日志,分别是id+.json、id+1.json、id+2.json
"storage-driver": "overlay2",
"storage-opts":["overlay2.override_kernel_check=true"],
"live-restore": true, # docker daemon进程重启,而容器不重启,一直在线。
"default-shm-size": "128M", # 设置/dev/shm的大小,默认值是64M
"max-concurrent-downloads": 10, # pull镜像的最大并行数,默认为3个
"max-concurrent-uploads": 10, # push镜像的最大并行数,默认为5个
"oom-score-adjust": -1000,
"debug": false # 关闭debug日志
}
EOF
# 重启Docker,注意daemon.json文件按需填写,环境不一样都写上容易出错。
[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl restart docker
9、升级内核
# 查看当前内核版本
[root@localhost ~]# uname -r
5.14.0-162.6.1.el9_1.x86_64
# 载入公钥
[root@localhost ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# 安装ELRepo
[root@localhost ~]# dnf install https://www.elrepo.org/elrepo-release-9.el9.elrepo.noarch.rpm
Last metadata expiration check: 2:15:48 ago on Tue Nov 29 16:11:08 2022.
elrepo-release-9.el9.elrepo.noarch.rpm 13 kB/s | 12 kB 00:00
Dependencies resolved.
============================================================================================================================================================================
Package Architecture Version Repository Size
====================================================================================================================================