AI服务器环境搭建指南,从裸机到“战斗”机(上集)

科技   2025-01-09 20:08   中国香港  
大家好,我是章北海
计划用3篇文章(上中下)介绍如何将一台裸机服务器打造成AI服务器
内容包括:yum配置、显卡驱动安装、防火墙申请、开发工具安装(Python、R、Docker、npm、node、git、java。。。等等)、AI环境及依赖安装、jupyterhub多用户、大模型部署、RAG应用、chatbot、Agent工具等。
本文是第一篇
有点仓促,有序可能会重置
备注:我的系统是Redhat8


系统预览

先了解一下自己的系统

1. 系统版本和内核信息

cat /etc/redhat-release  # 查看RedHat版本
uname -a                 # 查看内核信息
cat /proc/version       # 查看Linux版本信息

2. 硬件资源信息

free -h                # 查看内存使用情况
df -h                  # 查看磁盘使用情况
lscpu                  # 查看CPU信息
dmidecode              # 查看硬件信息(需要root权限)

3. 系统负载和进程

top                    # 实时查看系统负载和进程
uptime                 # 查看系统运行时间和负载
ps aux                 # 查看所有进程

4. 网络相关

ip addr                # 查看网络接口信息
netstat -tunlp         # 查看网络连接和监听端口
ifconfig               # 查看网络接口配置

5. 系统服务状态

systemctl status       # 查看所有服务状态
systemctl list-units --type=service  # 列出所有服务

6. 系统日志查看

journalctl            # 查看系统日志
tail -f /var/log/messages  # 实时查看系统消息

7. 用户和权限

who                   # 查看当前登录用户
last                  # 查看系统登录历史
id                    # 查看当前用户的信息

8. SELinux 状态

getenforce           # 查看SELinux状态
sestatus             # 查看SELinux详细状态

使用建议

  1. 部分命令可能需要 root 权限,可以使用sudo来执行
  2. 建议先了解系统基本信息,再深入查看具体服务
  3. 对于实时监控命令(如 top),可以使用q退出
  4. 使用man [命令]可以查看命令的详细说明

修改密码、添加用户

1. 修改密码

# 修改当前用户密码
passwd

# 修改其他用户密码(需要root权限)
sudo passwd 用户名

# 修改root密码(需要root权限)
sudo passwd root

2. 用户管理

# 添加新用户
sudo useradd 用户名
sudo useradd -m 用户名    # -m 选项会同时创建用户主目录

# 删除用户
sudo userdel 用户名
sudo userdel -r 用户名    # -r 选项会同时删除用户主目录

# 修改用户信息
sudo usermod -选项 用户名

3. 常用的 usermod 选项

  • -g:修改用户所属的主组
  • -G:修改用户所属的附加组
  • -s:修改用户的登录 shell
  • -d:修改用户的主目录
  • -L:锁定用户账号
  • -U:解锁用户账号

4. 查看用户信息

# 查看用户信息
id 用户名

# 查看当前登录用户
who
whoami

# 查看用户列表
cat /etc/passwd

# 查看用户组
groups 用户名

5. 权限管理

# 将用户添加到sudo组(赋予管理员权限)
sudo usermod -aG sudo 用户名

# 将用户添加到wheel组(在RHEL/CentOS中使用)
sudo usermod -aG wheel 用户名

6. 安全建议

  1. 定期更改密码,使用强密码(包含大小写字母、数字和特殊字符)
  2. 不要与其他人共享账户
  3. 及时删除不再使用的用户账号
  4. 定期检查系统中的用户列表
  5. 对于需要 sudo 权限的用户,建议通过 wheel 或 sudo 组进行管理
  6. 重要系统建议开启密码复杂度检查

配置 yum 源

yum源简介

yum源是Linux系统中的软件管理仓库,主要用于安装、卸载、自动升级rpm软件包等任务‌。yum(全称为Yellow Dog Updater, Modified)是一个在Fedora、RedHat、CentOS等Linux发行版中广泛使用的shell前端软件包管理器。它基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,自动处理包之间的依赖关系,一次安装所有依赖的软件包,无需管理员手动去安装每个rpm包。

注1:Redhat 8 以上dnf取代了yum,但是两者通用

  • dnf 是 yum 的下一代包管理工具,提供了更强大的功能和更好的性能。
  • dnf 在 RHEL 8 中成为默认的包管理工具,而 yum 仍然存在,但它是 dnf 的一个符号链接或兼容层。

注2: CentOS 和 Red Hat Enterprise Linux (RHEL) 的源在很大程度上是兼容的,因为 CentOS 是 RHEL 的一个免费开源克隆版本。然而,尽管它们共享相同的源代码和包管理系统,但在某些情况下,它们的源可能会有所不同。

  1. CentOS 是 RHEL 的克隆 CentOS 是基于 RHEL 的源代码构建的,因此它们的包和软件库在很大程度上是相同的。CentOS 的目标是提供一个与 RHEL 完全兼容的免费替代品,因此大多数情况下,CentOS 的源与 RHEL 的源是通用的。
  2. 源的兼容性 包的兼容性: 大多数情况下,CentOS 的包与 RHEL 的包是兼容的。你可以在 CentOS 上使用 RHEL 的源,或者在 RHEL 上使用 CentOS 的源。更新频率: CentOS 的更新通常会稍微滞后于 RHEL,因为 CentOS 需要等待 RHEL 发布更新后才能进行相应的更新。
  3. 源的差异 官方支持: RHEL 的源由 Red Hat 官方支持,而 CentOS 的源由社区维护。因此,RHEL 的源可能会包含一些 CentOS 没有的专有软件或补丁。

安全更新: RHEL 的安全更新通常会比 CentOS 更快发布,因为 Red Hat 有专门的团队负责安全响应。第三方源: 如果你使用了第三方源(如 EPEL、Remi 等),这些源在 CentOS 和 RHEL 上可能会有所不同,尤其是在 RHEL 上,某些第三方源可能需要额外的配置或订阅。

内部源

公司内部一般都会自建yum源,作用如下。

可以向IT部门所要地址,配制方法与其他源方法一样。

  1. 加快软件包下载速度

  2. 节省外网带宽

  3. 确保软件包的安全性和一致性

  4. 适用于无法访问外网的环境

  5. 便于统一管理和控制软件包版本

阿里云源的作用

国内很多互联网公司也有提供yum源,阿里云比较主流。

  1. 提供比 RHEL 官方源更快的下载速度

  2. 无需订阅即可使用

  3. 提供更多的软件包选择

  4. 作为内部源的补充,提供内部源中没有的软件包

RHEL 8 仓库类型说明

BaseOS 仓库

  • 包含核心操作系统组件

  • 提供基本的系统功能

  • 包括:

  • 内核

  • 系统工具

  • 文件系统

  • 基本网络组件

  • 基础安全工具

AppStream 仓库

  • 包含应用程序、运行时语言和数据库

  • 支持模块化内容

  • 包括:

  • 编程语言(Python, PHP, Node.js 等)

  • 数据库(MySQL, PostgreSQL 等)

  • Web 服务器(Apache, Nginx)

  • 其他应用软件

其他常用仓库

PowerTools/CRB (CodeReady Builder)
  • 提供开发工具和库

  • 用于软件开发和编译

  • 包含额外的开发依赖

EPEL (Extra Packages for Enterprise Linux)
  • 社区维护的额外软件包

  • 提供官方源中没有的软件

  • 与基础系统兼容

RHSCL (Red Hat Software Collections)
  • 提供最新版本的开发工具

  • 包含多个版本的编程语言

  • 需要 RHEL 订阅

配置yum源

1. 查看现有的内部源配置


cd /etc/yum.repos.d/

cat redhat8.repo

现有的内部源配置示例,也可能是空的:


[ali8]

name=ali8

baseurl=http://内部源ip/rhel-8-for-x86_64-baseos-rpms

enable=1

gpgcheck=0

2. 备份现有配置


mkdir -p /etc/yum.repos.d/bak

mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak/

3. 创建新的内部源配置


cat > /etc/yum.repos.d/local.repo << EOF

[ali8]

name=ali8

baseurl=http://内部源ip/rhel-8-for-x86_64-baseos-rpms

enabled=1

gpgcheck=0

EOF

4. 配置 CentOS 8 Stream 源


cat > /etc/yum.repos.d/centos.repo << EOF

[baseos]

name=CentOS Stream 8 - BaseOS

baseurl=https://mirrors.aliyun.com/centos/8-stream/BaseOS/x86_64/os/

enabled=1

gpgcheck=0

  

[appstream]

name=CentOS Stream 8 - AppStream

baseurl=https://mirrors.aliyun.com/centos/8-stream/AppStream/x86_64/os/

enabled=1

gpgcheck=0

EOF

5.  配置 EPEL 源

机器学习算法与Python实战
长期跟踪关注统计学、数据挖掘、机器学习算法、深度学习、人工智能技术与行业发展动态,分享Python、机器学习等技术文章。回复机器学习有惊喜资料。
 最新文章