前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >基于Linux的项目综合实验:网络与服务器系统的搭建与配置

基于Linux的项目综合实验:网络与服务器系统的搭建与配置

原创
作者头像
神秘泣男子
发布2025-01-09 16:09:40
发布2025-01-09 16:09:40
13700
代码可运行
举报
文章被收录于专栏:LinuxLinux
运行总次数:0
代码可运行

这篇文章记录了一个从零开始搭建PXE网络安装环境的全过程,目标是实现无人值守的自动化安装CentOS 7系统。通过PXE引导、DHCP分配地址、TFTP传输引导文件、FTP提供安装源,再结合Kickstart配置文件,完成了批量化、自动化的操作系统部署。整个过程虽然看起来繁琐,但只要按照步骤一步步完成,最终效果还是非常有成就感的!适合那些想要在服务器管理领域进一步提升效率的朋友。

项目需求

本次实验的目标是搭建一个高效、安全、可扩展的网络与服务器系统,满足以下具体需求:

  1. 网络部分
    • 实现项目组A、项目组B和Server三者之间的互联互通,确保可以互相ping通。
  2. 系统部分

服务器配置: 使用VMware虚拟机搭建Server服务器,安装CentOS 7.3操作系统,并完成系统初始化配置。

硬件配置: 添加四块磁盘并配置软RAID5以实现数据冗余和性能优化。

Web服务配置: 安装并配置Nginx作为反向代理,搭建Apache Web服务器。

DNS服务: 安装并配置DNS服务,将其作为项目组A和项目组B的本地DNS。

文件服务: 搭建NFS服务用于同步网站页面,配置Samba服务以实现用户数据共享和权限管理。

账号与权限管理: 配置系统账号及权限,确保不同用户组的权限分离。项目经理可进行高级操作,开发人员仅限于查看和基本操作。

性能检查: 使用Linux命令对服务器性能进行检测和优化。

本实验旨在通过实际操作,掌握Linux服务器的基础配置、网络环境搭建、权限管理以及服务部署的综合能力,为后续的项目开发与运维提供技术支持。

1.安装所有服务和组件

代码语言:javascript
代码运行次数:0
复制
yum install -y dhcp tftp-server vsftpd syslinux

代码语言:javascript
代码运行次数:0
复制
完毕!
[root@localhost yum.repos.d]# ls /var/ftp
pub
[root@localhost yum.repos.d]# mkidr /var/ftp/centos7.9
-bash: mkidr: 未找到命令
[root@localhost yum.repos.d]# mkdir /var/ftp/centos7.9
[root@localhost yum.repos.d]# ls /mnt/cdrom/
CentOS_BuildTag  EULA  images    LiveOS    repodata              RPM-GPG-KEY-CentOS-Testing-7
EFI              GPL   isolinux  Packages  RPM-GPG-KEY-CentOS-7  TRANS.TBL
[root@localhost yum.repos.d]# cp -Rvf /mnt/cdrom/* /var/ftp/centos7.9/

开启服务

代码语言:javascript
代码运行次数:0
复制
[root@localhost ~]#  vim /etc/xinetd.d/tftp 
[root@localhost ~]# systemctl start tftp
[root@localhost ~]# systemctl enable tftp
Created symlink from /etc/systemd/system/sockets.target.wants/tftp.socket to /usr/lib/systemd/system/tftp.socket.

3.准备 Linux 内核、初始化镜像文件

用于 PXE 网络安装的 Linux 内核、初始化镜像文件可以从 CentOS 7 系统光盘获得,分别为 vmlinuz 和 initrd.img,位于文件夹 images/pxeboot 下。找到这两个文件并将其复制到 tftp 服务的根目录下。

代码语言:javascript
代码运行次数:0
复制
[root@localhost ~]# cd /mnt/cdrom/images/
    [root@localhost images]# ls
efiboot.img  pxeboot  TRANS.TBL
[root@localhost images]# cd pxeboot/
    [root@localhost pxeboot]# ls
initrd.img  TRANS.TBL  vmlinuz
[root@localhost pxeboot]# cp vmlinuz initrd.img /var/lib/tftpboot/
    [root@localhost pxeboot]# ls /var/lib/tftpboot/
    initrd.img  vmlinuz
[root@localhost pxeboot]# 

4.准备 PXE 引导程序

用于 PXE 网络安装的引导程序为 pxelinux.0,由软件包 syslinux 提供。安装好软件包syslinux,然后将文件 pxelinux.0 也复制到 tftp 服务的根目录下。

代码语言:javascript
代码运行次数:0
复制
[root@localhost pxeboot]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@localhost pxeboot]# ls /var/lib/tftpboot/
initrd.img  pxelinux.0  vmlinuz
[root@localhost pxeboot]# 

5.安装并启用 DHCP 服务

由于 PXE 客户机通常是尚未装系统的裸机,因此为了与服务器取得联系并正确下载相关引导文件,需要预先配置好 DHCP 服务来自动分配地址并告知引导文件位置。

复制dhcp的实例文件到配置文件下 使用

代码语言:javascript
代码运行次数:0
复制
cp -p  /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf 

vim /etc/dhcp/dhcpd.conf
 32 subnet 192.168.14.0 netmask 255.255.255.0 {
 33 range 192.168.14.200 192.168.14.220;
 34 netxt-server 192.168.14.111;
 35 filename "pxelinux.0";
 36 }
 37 

 保存退出之后开启服务
 [root@localhost dhcp-4.2.5]# systemctl start dhcpd
[root@localhost dhcp-4.2.5]# systemctl enable dhcpd
Created symlink from /etc/systemd/system/multi-user.target.wants/dhcpd.service to /usr/lib/systemd/system/dhcpd.service.

启动ftp测试ftp
代码语言:javascript
代码运行次数:0
复制
systemctl start vsftpd
下载访问工具
yum install -y ftp

[root@localhost dhcp-4.2.5]# ftp 192.168.14.111
Connected to 192.168.14.111 (192.168.14.111).
220 (vsFTPd 3.0.2)
Name (192.168.14.111:root): ftp
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (192,168,14,111,153,154).
150 Here comes the directory listing.
drwxr-xr-x    8 0        0             220 Nov 20 08:20 centos7.9
drwxr-xr-x    2 0        0               6 Oct 13  2020 pub
226 Directory send OK.
ftp> 
配置启动菜单文件

启动菜单用来指导客户机的引导过程,包括如何调用内核,如何加载初始化镜像。默认的启动菜单文件为 default,应放置在 tftp 根目录的 pxelinux.cfg 子目录下,典型的启动菜单配置可参考以下操作手动建立。

代码语言:javascript
代码运行次数:0
复制
 mkdir /var/lib/tftpboot/pxelinux.cfg
 vim /var/lib/tftpboot/pxelinux.cfg/default


default auto
prompt 1
label auto
        kernel vmlinuz
        append initrd=initrd.img method=ftp://192.168.14.111/cetos.7.9

验证 PXE

网络安装 搭建好 PXE 远程安装服务器以后,就可以使用客户机进行安装测试了。对于新购买的服务器或 PC 裸机,一般不需要额外设置;若要为已有系统的主机重装系统,则可能需要修改 BIOS 设置,将“Boot First”设为“NETWORK”或“LAN”,然后重启主机;若使用VMware创建的虚拟机进行测试,虚拟机内存至少需要 2GB,否则在启动安装时会报错。

实现 Kickstart 无人值守安装

上一节介绍了通过 PXE 技术远程安装 CentOS 7 系统的方法,安装介质不再受限于光盘、移动硬盘等设备,大大提高了系统安装的灵活性。然而,安装期间仍需要手动选择语言、键盘类型、指定安装源等一系列交互操作,当需要批量安装时非常不方便。本节将进一步学习如何实现无人值守自动安装,通过使用 Kickstart 工具配置安装应答文件,自动完成安装过程中的各种设置,从而无须手动干预,提高网络装机效率。

6.2.1 准备安装应答文件

代码语言:javascript
代码运行次数:0
复制
默认当前目录下是有这个文件的
[root@localhost ~]# ls
anaconda-ks.cfg
[root@localhost ~]# cp -p anaconda-ks.cfg ks.cfg
[root@localhost ~]# vim ks.cfg 
[root@localhost ~]# mv ks.cfg /var/ftp/

修改的主要配置文件 指向刚刚设置的应答文件

代码语言:javascript
代码运行次数:0
复制
vim /var/lib/tftpboot/pxelinux.cfg/default 
default auto
prompt 0
label auto
        kernel vmlinuz
        append initrd=initrd.img method=ftp://192.168.14.111/cetos.7.9 ks=ftp://192.168.14.111/ks.cfg

最后一步

设置相应的权限 不然无法实现自动化安装

代码语言:javascript
代码运行次数:0
复制
chmod 644 /var/ftp/ks.cfg

然后配置完毕 重新安装测试

总结

搞定PXE和Kickstart后,批量安装系统的效率真的提升了一个档次,再也不用一台一台机器插U盘、盯着屏幕点选项了。虽然过程中可能会遇到一些小问题,比如权限不足、服务配置不当、网络连接异常等,但这些问题都可以通过检查日志和配置文件逐步排查解决。总之,这次实验不仅让我熟悉了PXE和Kickstart的原理,还让我更加深刻地体会到“自动化”的魅力,真的是省时又省力!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 项目需求
  • 1.安装所有服务和组件
  • 3.准备 Linux 内核、初始化镜像文件
  • 4.准备 PXE 引导程序
  • 5.安装并启用 DHCP 服务
    • 启动ftp测试ftp
    • 配置启动菜单文件
    • 验证 PXE
    • 实现 Kickstart 无人值守安装
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档