Linux
简介
启动过程
系统安装
ILO安装
USB安装
PXE安装
目录结构
基础命令
单用户/安全模式
内核更换
用户管理
网络管理
软件包管理
防火墙管理
定时计划任务
本文档使用 MrDoc 发布
-
+
首页
PXE安装
# 简介 Linux系统有多种安装方式包括:HD、USB、CDROM、PXE及远程管理卡安装等。 在系统运维工作中,经常要安装操作系统,一般企业服务器数量都在几十、几百、几千、甚至上万台。 这么多的机器不可能人工一台一台去安装,浪费人力物力,因此PXE技术应运而生,通过网络来批量部署系统。 PXE(preboot execute environment)是由Intel公司开发的技术; 使用Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持来自网络的操作系统的启动过程 PXE Client 集成在网卡的启动芯片中,当计算机引导时从网卡芯片中把pxe client调入内存。 # 工作流程 1. 部署pxe服务端(集成DHCP服务、TFTP小文件传输服务、HTTP大文件传输服务) 2. 客户端开机设置启动项为网络启动,可自行设置bios启动项 3. 客户端开机进入网络启动,此时客户端发送广播报文(pxe网卡内置dhcp客户端程序)dhcp服务器相应客户端请求,分配给客户端IP 4. 客户端得到IP地址后与TFTP通信请求下载pxelinux.0、default文件,根据default指定的vmlinuz,initrd.img启动系统内核 5. 根据default中指定的ks文件地址请求下载ks.cfg文件得到系统安装的分区、安装包、用户等信息 6. 根据ks.cfg文件去文件共享服务器(HTTP/FTP/NFS等)上面下载RPM包开始安装系统,注意此时的文件服务器是提供yum服务器的功能的。 ![](/media/202406/2024-06-05_144432_6320110.8761226960141754.png) ==将PXE服务器部署在VMware将网卡模式换成桥接可以直接将笔记本当做PXE服务器接入交换机给服务器安装系统== 在VMware虚拟机种部署pxe服务器 # 部署 ## 1、部署DHCP DHCP是一种网络协议,用于自动分配IP地址和其他网络配置信息给计算机和设备,使其能够在网络中进行通信,DHCP端口号:67 安装dhcp服务 ```asp yum -y install dhcp ``` 设置DHCP主配置 ```asp vim /etc/dhcp/dhcpd.conf ``` ```asp subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.51 192.168.1.60; option domain-name-servers 192.168.1.100; option routers 192.168.1.1; default-lease-time 600; max-lease-time 7200; next-server 192.168.1.100; filename "pxelinux.0"; } ``` 配置注解 ```asp subnet #定义网段和子网掩码 range #指定IP地址范围 option domain-name-servers #指定DNS服务器地址(本机) option routers #指定网关 default-lease-time #设置租约时间 max-lease-time #设置最大租约时间 next-server #设置下一台服务器地址,即安装系统需要的其他文件的服务器地址 filename #指定网卡引导文件名称 ``` 开机自启 ```asp systemctl enable --now dhcpd ``` 查看服务及端口67 ```asp netstat -anptu | grep 67 ``` ## 2、部署HTTP HTTP是一种用于在网络上传输超文本的协议,常用于客户端和服务器之间进行通信,用作大文件传输,HTTP端口号80 安装软件包 ```asp yum -y install httpd ``` 创建共享安装源目录 ```asp mkdir /var/www/html/centos7.4 ``` cp光盘软件安装源至临时目录 ```asp mount /dev/cdrom /mnt/ ``` 将安装源cp至http ```asp cp -r /mnt/* /var/www/html/centos7.4/ ``` 开机自启动 ```asp systemctl enable --now httpd ``` 查看端口80 ```asp netstat -anptu | grep 80 ``` ## 3、部署TFTP TFTP是一种简单的文件传输协议,用于在计算机网络中传输文件,用作小文件传输,TFTP端口号69 在centos6版本之前TFTP服务由xinetd集中管理,centos7版本之后是将所有进程托管给systemd进程 安装tftp ```asp yum -y install tftp-server tftp ``` 开机自启动 ```asp systemctl enable --now tftp ``` 查看端口69 ```asp netstat -anptu | grep :69 ``` ## 4、部署自动化 **收集启动菜单、临时内核、引导文件等放入TFTP** - `Pxelinux.0` #解释default文件中的每个配置项做出不同反应,如等待的时间、启动器背景、启动菜单、内核引导等等。 - `menu.c32` #是syslinux负责制定启动器的背景(Vesamenu.c32图形模式,menu.c32文本模式)这里选择的是文本模式。 - `initrd.img` #驱动程序可以在内存当中模拟文件系统 - `vmlinuz` #缩减版的内核拥有基础网络功能,临时控制从文件共享系统中下载真正的内核和驱动,开始软件安装时由真正内核接管 - `pxelinux.cfg` #客户断扫描该目录下的default引用被制定的配置。 安装syslinux ```asp yum -y install syslinux ``` 提取安装界面需要的文件(通用) ```asp cd /usr/share/syslinux/ ``` ```asp cp pxelinux.0 chain.c32 memdisk menu.c32 mboot.c32 vesamenu.c32 /var/lib/tftpboot/ ``` 提取7.4的驱动程序和内核(特定) ```asp cd /var/www/html/centos7.4/images/pxeboot/ ``` ```asp mkdir /var/lib/tftpboot/7.4 ``` ```asp cp initrd.img vmlinuz /var/lib/tftpboot/7.4 ``` 提取7.6的驱动程序和内核(特定) ```asp cd /var/www/html/centos7.6/images/pxeboot/ ``` ```asp mkdir /var/lib/tftpboot/7.6 ``` ```asp cp initrd.img vmlinuz /var/lib/tftpboot/7.6 ``` ## 5、配置default 多网卡的主机要在default文件的append写清传递启动网卡是哪一个,如:ksdevice=ens33 创建default目录 ```asp mkdir /var/lib/tftpboot/pxelinux.cfg ``` ```asp vim /var/lib/tftpboot/pxelinux.cfg/default ``` 配置default文件 ```asp default vesamenu.c32 prompt 10 timeout 100 MENU TITLE Centos7 PXE -Done LABEL linux_auto MENU LABEL Install CentOS7.4 x86_64 AUTO install KERNEL 7.4/vmlinuz APPEND initrd=7.4/initrd.img ks=http://192.168.1.100/7.4-ks.cfg LABEL linux_auto MENU LABEL Install CentOS7.6 x86_64 AUTO install KERNEL 7.6/vmlinuz APPEND initrd=7.6/initrd.img ks=http://192.168.1.100/7.6-ks.cfg ``` ## 6、配置KS 标准最小化安装,特定的安装要求修改ks文件里的配置 创建ks文件 ```asp vim /var/www/html/7.4-ks.cfg ``` ```asp #platform=x86, AMD64, or Intel EM64T #version=DEVEL # Install OS instead of upgrade install # Keyboard layouts keyboard 'us' # Root password rootpw --plaintext root # Use network installation url --url="http://192.168.1.100/centos7.4" # System language lang en_US # System authorization information auth --useshadow --passalgo=sha512 # Use graphical install text firstboot --disable # SELinux configuration selinux --disabled # Do not configure the X Window System skipx # Firewall configuration firewall --disabled # Network information network --bootproto=dhcp --device=ens33 --onboot=on # Reboot after installation reboot # System timezone timezone Asia/Shanghai # System bootloader configuration bootloader --location=mbr # Clear the Master Boot Record zerombr # Partition clearing information clearpart --all --initlabel # Disk partitioning information part /boot --fstype="ext4" --ondisk=sda --size=200 part swap --fstype="swap" --ondisk=sda --size=2048 part / --fstype="ext4" --grow --ondisk=sda --size=20480 #part /data1 --fstype="ext4" --grow --ondisk=sdb --size=1 %post --interpreter=/bin/bash mkdir -p /root/.ssh chmod 700 /root/.ssh echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+q9IvIx0Fy0YEzfAsVv6sQytHHyODR8Qft62zJhirpF9YAeYyX7a1IXFrDIDzkPDF7vkFscBDnHOBaa/9M8RXl2oNl8q2Qrdm5q4ODVzLAJ7Sq8nH1VpFmV+4NmzkOvcsRihJEvmLO4JDDn7N5aN5VhbkR1yct1NLnyWc6RK35KVVuPl39imL7jLsAaJ/IXq1/Tt2E14nau1B9q2pGXd4eUZzGvoBnog/tgrsO6Klt7URM1LX9ozddT0HWvphid9xxQmimmiz2TyiJPNeoAORAHt862+/ChJNo590I3Uu38bgXKkTrnTDAgCQXhz34iDhWmSgtpO+3kXDFtEVhL2j root@pxe50" > /root/.ssh/authorized_keys chmod 600 /root/.ssh/authorized_keys ip=$(ifconfig ens33 | awk '/inet / {print $2}') echo "local$(echo $ip | cut -d '.' -f 4)" > /etc/hostname cat << EOF > /etc/sysconfig/network-scripts/ifcfg-ens33 DEVICE=ens33 TYPE=Ethernet ONBOOT=yes BOOTPROTO=static IPADDR=$ip NETMASK=255.255.255.0 GATEWAY=192.168.1.1 EOF %end %packages --nobase @core %end ``` ## 7、装机测试 ==虚拟机测试,内存需要给到2GB以上,否则会报错!!!== 获取到DHCP分发的IP地址,并请求接收到default ![](/media/202406/2024-06-05_144505_2867470.7193657928679167.png) 加载内核成功,进入安装菜单(pxe中定制了2个版本的系统可以手动选择,默认安装default中的第一个) ![](/media/202406/2024-06-05_144510_7940700.6066550355195213.png) ## 8、KS特别篇 **KS文件图形化生成** Anaconda是RedHat、CentOS、Fedora等Linux的安装管理程序。 它可以提供文本、图形等安装管理方式,并支持 Kickstart等脚本提供自动安装的功能。 该程序的功能是把位于光盘或其他源上的数据包,根据设置安装到主机上。 为实现该定制安装,它提供一个定制界面,可以实现交互式界面供用户选择配置如:语言,键盘,时区等信息; **Anaconda支持的管理模式:** 1、Kickstart提供的自动化安装; 2、对一个RedHat实施upgrade; 3、Rescuse模式对不能启动的系统进行故障排除。 安装 ```asp yum -y install system-config-kickstart ``` 启动 ```asp system-config-kickstart ``` 配置 Basic Configuration:基本配置模式 ![](/media/202406/2024-06-05_144520_3808410.15567989017543837.png) Installation Method:安装模式可以指定光盘,网络服务器等,并指明文件共享路径 ![](/media/202406/2024-06-05_144525_7818650.08049858055977033.png) Boot Loader options:Boot Loader选项,设置是否安装bootlloader,以及是否对grub设置密码,对于一个全新的安装当然要安装bootloader了。 ![](/media/202406/2024-06-05_144531_6716030.8749115224756493.png) Partition information:分区信息,手动添加分区信息,可以选择RAID,根据自己使用的硬盘大小自己定义分区方案。 ![](/media/202406/2024-06-05_144537_7073360.9591721672168296.png) NetworkConfiguration,网络配置,选择Add Network Device 选项卡添加网卡设备,已经获取地址的方式。 ![](/media/202406/2024-06-05_144542_4123950.347726259693085.png) Authentication:认证方式:包括登录samba等认证方式,默认即可 ![](/media/202406/2024-06-05_144547_2553000.9079877735982869.png) Firewall Configuration:防火墙和selinux是否启用: ![](/media/202406/2024-06-05_144552_0722130.33039764331180355.png) Display Configuration 是否显示图形化的安装方式(关闭全程是字符安装) ![](/media/202406/2024-06-05_144558_6205950.9404828186111105.png) Package Selection 安装包选择,此处必须将本地yum的名称修改为:[development],否则不识别 ![](/media/202406/2024-06-05_144603_8116360.2970226988225956.png) pre-installtion Script系统安装前要执行的脚本 ![](/media/202406/2024-06-05_144608_0225210.8736280923556892.png) post-installation Script 系统安装后要执行的脚本(写完脚本记得有一个回车,否者不会执行,会停留到eof的地方等待确定) ![](/media/202406/2024-06-05_144612_8801050.6275256071919776.png) 最后记得保存文件!指定保存路径即可
done
2024年6月5日 14:46
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码