autoinstall_system—ftp
服务介绍
Syslinux:
一个功能强大的引导加载程序, 可以装在U盘上来引导系统
PXE简介:
预安装环境 . 是Intel公司推出的一款通过网络来引导操作系统的协议 . 广泛应用于网吧无盘系统 .
anaconda-ks.cfg文件介绍:
anaconda-ks.cfg 这个文件可以修改成自动安装的脚本,用于自动安装同样配置的系统。
inux系统在安装时会自动生成一个anaconda-ks.cfg 配置文件 ,文件位于/root 目录中 . anaconda-ks.cfg 里面记录的就是用户在安装系统时所作的操作 , 像选择语言环境 , 硬盘分区 , 安装的软件包 , 网卡IP设置 , 设置主机名 , root密码 ,新建普通等一系列操作
工作过程
第一步:PXE Client向DHCP服务器发送请求
首先,将支持PXE的网络接口卡(NIC)的客户端BIOS设置为网络启动,通过PXE BootROM(自启动芯片)会以UDP协议发送一个广播请求,向网络中的DHCP服务器申请一个IP地址等信息。
第二步:DHCP服务器提供信息
DHCP服务器收到客户端的请求,验证是否来自合法的PXE Client请求,验证通过后向客户端返回响应信息,包括:客户端IP地址,pxelinux启动程序(TFTP)位置,以及配置文件所在位置等。
第三步:PXE客户端请求下载启动文件
客户端请求传送启动所需文件,包括:pxelinux.0、pxelinux.cfg/default、vmlinuz、initrd.img等文件。
第四步:Boot Server响应客户端请求并传送文件
TFTP服务器收到客户端的请求后,彼此间进行通信应答,确定启动参数。BootROM由TFTP通信协议从Boot Server下载启动安装程序所必须文件(pxelinux.0、pxelinux.cfg/default)。default文件下载完成后,会根据该文件中定义的引导顺序,启动Linux安装程序的引导内核。
第五步:请求下载自动应答文件
客户端通过pxelinux.cfg/default文件成功的引导Linux安装内核后,安装程序首先必须确定你通过什么安装介质来安装linux,如果是通过网络安装(NFS, FTP, HTTP),则会在这个时候初始化网络,并定位安装源位置。或许你会说,刚才PXE不是已经获取过IP地址了吗?为什么现在还需要一次?这是由于PXE获取的是安装用的内核以及安装程序等,而安装程序要获取的是安装系统所需的二进制包以及配置文件。由于它们需要的内容不同造成PXE模块和安装程序是相对独立的,PXE的网络配置并不能传递给安装程序。从而进行两次获取IP地址过程。
接着会读取该文件中指定的自动应答文件ks.cfg所在位置,根据该位置请求下载该文件。
第六步:客户端安装操作系统
将ks.cfg文件下载回来后,通过该文件找到OS Server,并按照该文件的配置请求下载安装过程需要的软件包。
OS Server和客户端建立连接后,将开始传输软件包,客户端将开始安装操作系统。安装完成后,将提示重新引导计算机。这个时候注意,在重新引导的过程中一定要将BIOS修改回从硬盘启动,不然的话又会重复的自动安装操作系统。
在上面介绍中PXE client是需要安装Linux的计算机,TFTP Server、DHCP Server和FTP Server(或NFS Server)运行在另外一台Linux Server上。Bootstrap文件、配置文件、Linux内核都放置在Linux Server上TFTP服务器的根目录下。而Linux根文件系统存放于FTP Server(或NFS Server)的共享目录中。
PXE client在工作过程中,需要三个二进制文件:bootstrap、Linux 内核和Linux根文件系统。Bootstrap文件是可执行程序,它向用户提供简单的控制界面,并根据用户的选择,下载合适的Linux内核以及Linux根文件系统。
实验环境
VMware Workstation 下的一台Redhat8.2版本的Linux系统
Redhat主机的IP地址为:192.168.9.157
需要安装的服务
dnf install dhcp-server -y
dnf install tftp-server -y
dnf install vsftp -y
操作过程
一、 关闭selinux 和 防火墙
setenforce 0
systemctl stop firewalld
二、部署 DHCP 服务器
1、修改配置
vim /etc/dhcp/dhcpd.conf
ddns-update-style interim;
ignore client-updates;
filename "pxelinux.0";
next-server 192.168.9.157;
subnet 192.168.9.0 netmask 255.255.255.0 {
option routers 192.168.9.1;
option subnet-mask 255.255.255.0;
option domain-name-servers 114.114.114.114;
range dynamic-bootp 192.168.9.200 192.168.9.254;
default-lease-time 60;
max-lease-time 60;
}
2、重启服务
systemctl restart dhcpd
3、查看dhcp服务
查看服务是否启动
systemctl status dhcpd
查看服务进程
netstat -lntup | grep dhcp
三、部署tftp-server服务流程
systemctl start tftp.socket
查看服务是否启动
systemctl status tftp
四、安装提供pxelinux.0的syslinux软件,共享pxe引导程序文件
1、创建路径并前往
mkdir /var/lib/tftpboot/pxelinux.cfg
cd /var/lib/tftpboot/pxelinux.cfg
2、安装syslinux软件
dnf install syslinux -y
3、拷贝操作系统必要文件与启动菜单文件
cp /mnt/images/pxeboot/initrd.img /var/lib/tftpboot/
cp /mnt/images/pxeboot/vmlinuz /var/lib/tftpboot/
cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
4、修改default文件权限
chmod 777 /var/lib/tftpboot/pxelinux.cfg/default
5、修改配置
vim /var/lib/tftpboot/pxelinux.cfg/default
将default文件中的部分内容修改为以下内容
1 default linux
61 label linux
62 menu label ^Install Red Hat Enterprise Linux 8.2
63 kernel vmlinuz
64 append initrd=initrd.img ks=ftp://192.168.9.157/ks.cfg
五、修改自动应答文件
1、拷贝文件
cp /root/anaconda-ks.cfg /var/ftp/ks.cfg
2、修改自动应答文件的配置
vim /var/ftp/ks.cfg
url --url="ftp://192.168.9.157/pub"
timezone Asia/Shanghai --isUtc --nontp
reboot
3、修改ks.cfg 文件权限
chmod 777 /var/ftp/ks.cfg
4、创建挂载目录并挂载
mkdir /var/ftp/pub
mount /dev/sr0 /var/ftp/pub/
5、拷贝ldlinux.c32文件到指定路径
cp /mnt/isolinux/ldlinux.c32 /var/lib/tftpboot/
6、拷贝引导文件
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
以上三条命令任选其一!
六、配置vsftp服务
1、安装vsftp服务
dnf install vsftpd -y
2、修改ftp服务配置
修改配置文件中匿名上传的相关选项
vim /etc/vsftpd/vsftpd.conf
在末尾添加
anon_umask=022
#anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
找到第12行,将NO改为yes
anonymous_enable=YES
3、修改匿名用户目录的权限
chmod 777 /var/ftp/pub/
4、修改匿名上传布尔值
[root@ldap var]
ftpd_anon_write --> on
[root@ldap ftp]
5、修改匿名上传的上下文权限
[root@ldap var]
drwxr-xrwx. root root system_u:object_r:public_content_rw_t:s0 pub
[root@ldap ftp]
六、检查服务是否启动
如果服务没有启动,就启动服务
1、重启vsftp服务
systemctl restart vsftp
2、查看DHCP服务是否启动
systemctl status dhcpd
3、查看TFTP服务是启动
systemctl status tftp
七、创建新的虚拟机
关键部分如同所示:
创建好一个空白虚拟机后,启动该虚拟机,然后等待。
reading…
然后新的Redhat8.2版本的Linux系统就安装好了
|