PXE+kickstart无人值守装机
16lz
2021-01-22
PXE(Pre-boot Execution Environment)是由Intel设计的协议,它可以使计算机通过网络启动。协议分为client和server两端,PXE client在网卡的ROM中,当计算机引导时,BIOS把PXE client调入内存执行,并显示出命令菜单,经用户选择后,PXE client将放置在远端的操作系统通过网络下载到本地运行。 系统环境初始化:sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config setenforce 0iptables -Fsystemctl stop firewalldsystemctl disable firewalld1、配置DHCP服务程序DHCP服务程序用于为客户端主机分配可用的IP地址,而且这是服务器与客户端主机进行文件传输的基础,因此我们先行配置DHCP服务程序。yum -y install dhcpcat /usr/share/doc/dhcp*/dhcpd.conf.examplevim /etc/dhcp/dhcpd.confallow booting;allow bootp;ddns-update-style interim;ignore client-updates;subnet 172.16.70.0 netmask 255.255.255.0 { option subnet-mask 255.255.255.0; option domain-name-servers 172.16.70.250; range dynamic-bootp 172.16.70.100 172.16.70.200; default-lease-time 21600; max-lease-time 43200; next-server 172.16.70.250; filename "pxelinux.0";}systemctl start dhcpdsystemctl enable dhcpd2、配置TFTP服务程序vsftpd服务与TFTP服务。vsftpd是一款功能丰富的文件传输服务程序,允许用户以匿名开放模式、本地用户模式、虚拟用户模式来进行访问认证。但是,当前的客户端主机还没有安装操作系统,该如何进行登录认证呢?而TFTP作为一种基于UDP协议的简单文件传输协议,不需要进行用户认证即可获取到所需的文件资源。因此接下来配置TFTP服务程序,为客户端主机提供引导及驱动文件。当客户端主机有了基本的驱动程序之后,再通过vsftpd服务程序将完整的光盘镜像文件传输过去。 yum -y install tftp-server xinetd vim /etc/xinetd.d/tftpservice tftp{ socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /var/lib/tftpboot disable = no per_source = 11 cps = 100 2 flags = IPv4}systemctl restart xinetdsystemctl enable xinetd3、配置SYSLinux服务程序SYSLinux是一个用于提供引导加载的服务程序。与其说SYSLinux是一个服务程序,不如说更需要里面的引导文件,在安装好SYSLinux服务程序软件包后,/usr/share/syslinux目录中会出现很多引导文件。yum -y install syslinuxmount /dev/cdrom /mntcd /var/lib/tftpbootcp /usr/share/syslinux/pxelinux.0 .cp /mnt/images/pxeboot/initrd.img .cp /mnt/images/pxeboot/vmlinuz .cp /mnt/isolinux/vesamenu.c32 .cp /mnt/isolinux/boot.msg .mkdir pxelinux.cfgcd pxelinux.cfg/cp /mnt/isolinux/isolinux.cfg defaultvim /var/lib/tftpboot/pxelinux.cfg/default 1 #default vesamenu.c32 2 default linux 65 # append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 quiet 66 append initrd=initrd.img inst.stage2=ftp://172.16.70.250 ks=ftp://172.16.70.250/pub/ks.cfg quiet4、配置VSFtpd服务程序在我们这套无人值守安装系统的服务中,光盘镜像是通过FTP协议传输的,因此势必要用到vsftpd服务程序。当然,也可以使用httpd服务程序来提供Web网站访问的方式,只要能确保将光盘镜像顺利传输给客户端主机即可。如果打算使用Web网站服务来提供光盘镜像,一定记得将上面配置文件中的光盘镜像获取网址和Kickstart应答文件获取网址修改一下。#使用某台默认的ks文件yum -y install vsftpdcp ~/anaconda-ks.cfg /var/ftp/pub/ks.cfgcd /var/ftp/pub/vim /var/ftp/pub/ks.cfg 4 # Use CDROM installation media 5 cdrom 6 url --url=ftp://172.16.70.250 7 # Use graphical install 8 #graphical 9 text 18 network --bootproto=dhcp --device=ens33 --onboot=on --ipv6=auto --no-activate 31 #clearpart --none --initlabel 32 clearpart --all --initlabel 50 51 reboot 52 [root@kickstart]# ll /var/ftp/pub/ks.cfg总用量 4-rw-------. 1 root root 997 1月 20 14:10 ks.cfgchmod +r /var/ftp/pub/ks.cfgsystemctl restart vsftpdsystemctl enable vsftpd#自定义ks 文件配置kickstart安装文件可以使用某台CentOS 7(注意不是6)的/root/anaconda-ks.cfg作为模板手动修改,也可以使用system-config-kickstart命令配置ks.cfg文件:在某台CentOS 7(注意不是6)系统上安装所需包:# yum -y install system-config-kickstart在某台CentOS 7(注意不是6)系统上运行图形界面进行设置:#system-config-kickstart验证ks文件的正确性(可选):在CentOS 7系统安装pykickstart包:# yum -y install pykickstart在CentOS 7系统验证上传到此系统的ks文件:ksvalidator ks.cfg如果没任何输出,表示没问题。在CentOS 7系统查看CentOS 6与7的ks版本区别:ksverdiff -f RHEL6 -to RHEL7#########新装机器操作############################################################直接设定在同网段开机即可参考:http://hmli.ustc.edu.cn/doc/linux/centos-autoinstall.htmhttps://www.linuxprobe.com/chapter-19.htmlPS: ks文件详解#platform=x86, AMD64, 或 Intel EM64T#version=CentOS7# Install OS instead of upgrade #全新安装而不是升级install# Keyboard layoutskeyboard 'us'# Root passwordrootpw --iscrypted $改成这样不会再给我发泄密警告了吧?10 #采用加密记录#rootpw --plaintext 12你要认为我泄漏密码,我对你智商也没辙456 #采用明文记录# System languagelang en_US# Firewall configuration #屏蔽防火墙firewall --disabled# System authorization information #设定NIS信息auth --useshadow --passalgo=sha512 --enablenis --nisdomain=mydomain.org --nisserver=192.168.100.254# Use text mode install #安装方式,文本界面,图形的话graphytext# SELinux configuration #关闭SELinuxselinux --disabled# Do not configure the X Window System #不配置X图形界面skipx# Use NFS installation media #设定安装方式nfs --server=192.168.100.254 --dir=/centos# Use http installation source#url --url=http://192.168.100.254/centos/7/# Network information #采用DHCP获取IPnetwork --bootproto=dhcp# Reboot after installation #安装后自动重启,如果BIOS中设置从PXE首先启动,那么会重复安装,请注意,安装后应设置为从先硬盘启动reboot# System timezonetimezone Asia/Shanghai# System bootloader configurationbootloader --location=mbr# Partition clearing information #清除原有分区clearpart --all# Disk partitioning informationpart / --fstype="xfs" --size=10000part /boot --fstype="xfs" --size=200#part /boot/efi --fstype=efi --size=200 #UEFI引导安装时需要,传统LEGACY引导时可屏蔽此选项part swap --fstype="swap" --size=8000part /tmp --fstype="xfs" --grow --size=1%packages #设定所需要的软件包,按需要调整@base #@表示一组软件包@network-server@performance@system-admin-toolssdparmtreetunedtuned-utilsypbindnfs-utilsvim-enhanced#-表示从默认软件包的需要去除的软件包-lvm2-nano-pcmciautils-plymouth-rfkill-rsync-system-config-firewall-tui-system-config-network-tui-unzip-vconfig-wireless-tools%end #%packages结尾%pre #预案装脚本,非必须date%end #%pre结尾%post #安装后脚本,非必须cat >>/root/.bashrc <>/etc/fstab%end #%post结尾
更多相关文章
- 遇见一只黑猫,她说程序员都是骗子
- oss上传文件阿里云(js版本)
- 再谈文件读写:判断文件的几种方法及其优劣对比
- 给Python学习者的文件读写指南(含基础与进阶,建议收藏)
- 使用pm2后台运行nodejs程序
- 2021 年,程序员技术公众号生死劫
- 前端程序员有必要学一点C语言吗?
- 为什么程序员应该写博客?用什么博客系统?在哪写?
- 程序员的快乐往往就是这么朴素无华且枯燥!