当前位置: 首页 > Linux

kickstart+PXE+dhcp+nfs批量无人值守自动安装操作系统

时间:2023-04-06 01:30:30 Linux

在实际生产环境中,肯定会有一次安装多个服务器操作系统的工作。因此,依靠传统的一个一个安装,既费时又费力。几百台就比较麻烦了。所以在实际生产环境中,都是采用批量无人值守的安装方式来安装操作系统,所以今天就来详细介绍一下。通过使用kickstart+PXE+dhcp+nfs的组合安装操作系统。一、原理及流程介绍原理:使用PXE协议使用服务器启动通过网络,然后向DHCP服务器申请IP,连接后将服务器上的文件下载到本地,执行一系列操作:第一步:PXE-client发送请求将支持PXE启动方式的服务器设置为PXE启动,PEX客户端通过PXE启动ROM发送一个udp形式的广播包,请求DHCP服务器分配一个IPaddressStep2:DHCPresponserequest响应接收请求的DHCP服务器最后验证请求是否来自合法的PXEclient。验证通过后,响应PXE客户端。响应信息包括分配的IP地址、pxelinux启动程序(TFTP)的位置以及配置文件的位置。第三步:PXE——客户端请求下载启动文件。PXE客户端收到响应后,请求TFTP服务器下载所需的启动系统安装文件(文件包括:pxelinux.0、pxelinux.cfg/default、vmlinuz、initrd.img等)第四步:TFTP服务器响应请求并传输文件。当TFTP服务器收到请求后,服务器响应请求并响应请求,然后将需要的文件传输给客户端。第五步:PXE-client请求下载自动响应文件PXEclient通过pxelinux创建.cfg/default文件引导安装linux后,安装程序首先要确定如何安装系统。如果是通过网络,此时会初始化网络,定位安装系统所需的二进制包和配置文件,然后读取文件中指定的自动应答文件ks.cfg,然后根据文件位置请求下载文件第六步:客户端安装系统下载ks.cfg到本地,找到安装的ISO文件位置system通过文件,并请求下载需要的软件包,正常连接后,开始传输软件包,最后开始安装操作系统,安装完成后重启2、配置NFS和共享目录创建一个NFS共享目录[root@kickserver~]#mkdir/data/sys-p创建系统ISO文件挂载目录[root@kickserver~]#mkdir/isodir将光盘挂载到挂载目录[root@kickserver~]#mount/dev/cdrom/isodirmount:块设备/dev/sr0是写保护的,只读挂载[root@kickserver~]#ls/isodir/CentOS_BuildTagGPL软件包RPM-GPG-KEY-CentOS-6RPM-GPG-KEY-CentOS-Testing-6EFI镜像RELEASE-NOTES-en-US.htmlRPM-GPG-KEY-CentOS-Debug-6TRANS。TBLEULAisolinuxrepodataRPM-GPG-KEY-CentOS-Security-6检查是否安装了NFS[root@kickserver~]#rpm-qa|grepnfsnfs-utils-lib-1.1.5-11.el6.x86_64nfs-utils-1.2.3-70.el6_8.2.x86_64nfs4-acl-tools-0.3.3-8.el6.x86_64nfs-utils-lib-devel-1.1.5-11.el6.x86_64[root@kickserver~]#rpm-qa|greprpcbindrpcbind-0.2.0-12.el6.x86_64配置nfs[root@kickserver~]#echo"/data/sys172.16.1.235/24(ro,sync)">>/etc/exports[root@kickserver~]#echo"/isodir172.16.1.235/24(ro,sync)">>/etc/exports[root@kickserver~]#tail-2/etc/exports/data/sys172.16.1.235/24(ro,sync)/isodir172.16.1.235/24(ro,sync)启动服务(注意顺序)[root@kickserver~]#/etc/init.d/rpcbind开始启动rpcbind:[确定][root@kickserver~]#/etc/init.d/nfs开始启动NFS服务:[确定]启动NFS配额:[确定]启动NFSmountd:[确定]启动NFS守护进程:[确定]启动RPCidmapd:[确定][root@kickserver~]#chkconfigrpcbindon[root@kickserver~]#chkconfignfson[root@kickserver~]#chkconfig--list|egrep"nfs|rcpbind"nfs0:off1:off2:on3:on4:on5:on6:offnfslock0:off1:off2:off3:on4:on5:on6:off检查配置[root@kickserver~]#showmount-eclnt_create:RPC:Portmapperfailure-Timedout出现这个错误信息,首先检查防火墙是否关闭[root@kickserver~]#/etc/init.d/iptablesstatusiptables:防火墙没有运行。也可能是本地hosts解决问题,修改hosts文件127.0.0.1kickserver------>添加这个配置[root@kickserver~]#showmount-eExportlistforkickserver:/isodir172.16.1.235/24/data/sys172.16.1.235/243,安装并配置TFTP-server[root@kickserver~]#yuminstalltftp-server*-y--------------------具体过程序省略配置TFTP服务器[root@kickserver~]#vi/etc/xinetd.d/tftp#default:off#描述:tftp服务器使用普通文件传输协议提供文件。tftp协议通常用于启动无盘#工作站,将配置文件下载到网络打印机,并启动某些操作系统的安装过程。servicetftp{socket_type=dgramprotocol=udpwait=yesuser=rootserver=/usr/sbin/in.tftpdserver_args=-s/var/lib/tftpbootdisable=yes------>修改成noper_source=11cps=1002flags=IPv4}启动服务[root@kickserver~]#/etc/init.d/xinetdstartStartingxinetd:[OK][??root@kickserver~]#chkconfigxinetdon[root@kickserver~]#chkconfig--list|grepxinetdxinetd0:off1:off2:on3:on4:on5:on6:off4,配置PXE启动(bootstarp)[root@kickserver~]#cp/usr/share/syslinux/pxelinux.0/var/lib/tftpboot/[root@kickserver~]#ll/var/lib/tftpboot/-rw-r--r--。1rootroot26759Dec1316:07/var/lib/tftpboot/pxelinux.0复制网络内核启动文件[root@kickserver~]#cp/isodir/images/pxeboot/initrd.img/var/lib/tftpboot/[root@kickserver~]#cp/isodir/images/pxeboot/vmlinuz/var/lib/tftpboot/[root@kickserver~]#ll/var/lib/tftpboot/-r-xr-xr-x。1根根412836812月13日16:12vmlinuz-r--r--r--。1rootroot33383679Dec1316:11initrd.img-rw-r--r--。1rootroot26759Dec1316:07pxelinux.0配置启动文件[root@kickserver~]#cd/var/lib/tftpboot/[root@kickservertftpboot]#mkdirpxelinux.cfg[root@kickservertftpboot]#cp/isodir/isolinux/isolinux.cfg./pxelinux.cfg/default[root@kickservertftpboot]#vi./pxelinux.cfg/defaultmenulabel^安装或升级现有系统默认测试#prompt1timeout600displayboot.msgmenubackgroundsplash.jpgmenutitle欢迎来到CentOS6.5!菜单颜色边框0#ffffffff#00000000menu颜色选择7#ffffffff#ff000000menu颜色标题0#ffffffff#00000000menu颜色tabmsg0#ffffffff#00000000menu颜色取消选择0#ffffffff#00000000menu颜色hotsel00ff00#ff0hotkey7#ffffffff#ff000000menucolorscrollbar0#ffffffff#00000000labeltestkernelvmlinuzappendks=nfs:172.16.1.235:/data/sys/kickstart/ks.cfginitrd=initrd.imgtest#增加此行配置文件5、安装配置DHCP[root@kickservertftpboot]#yuminstalldhcp*-y配置DHCP服务器[root@kickservertftpboot]#cd/etc/dhcp/[root@kickserverdhcp]#vidhcpd.conf##DHCP服务器配置文件.#参见/usr/share/doc/dhcp*/dhcpd.conf.sample#see'man5dhcpd.conf'#ddns-update-stylenone;ignoreclient-updates;allowbooting;allowbootp;default-lease-time21600;最大租用时间43200;选项路由器172.16.1.1;子网172.16.1.0网络掩码255.255.255.0{范围动态bootp172.16.1.100172.16.1.120;下一个服务器172.16.1.235;filename"/data/sys/kickstart/ks.cfg";next-server172.16.1.235;filename"/var/lib/tftpboot/pxelinux.0";}添加上面标记部分的配置内容启动服务[root@centos6dhcp]#/etc/init.d/dhcpdstartStartingdhcpd:[OK][??root@centos6dhcp]#chkconfigdhcpdon[root@centos6dhcp]#chkconfig--list|grepdhcpddhcpd0:off1:off2:on3:on4:on5:on6:off6,安装配置kickstart[root@centos6dhcp]#mkdir/data/sys/kickstart-p#createfiledirectory[root@centos6dhcp]#cp/root/anaconda-ks.cfg/data/sys/kickstart/ks.cfg#复制配置文件[root@centos6dhcp]#ll/data/sys/kickstart/ks.cfg-rw-------1rootroot1229Dec1318:16/data/sys/kickstart/ks.cfg#修改默认权限,如其他用户可阅读[root@centos6dhcp]#chmod644/data/sys/kickstart/ks.cfg[root@centos6dhcp]#ll/data/sys/kickstart/ks.cfg-rw-r--r--1rootroot1229Dec1318:16/data/sys/kickstart/ks.cfg配置ks.cfg文件(重要步骤)[root@centos6dhcp]#cd/data/sys/kickstart/[root@centos6kickstart]#viks.cfg#anaconda自动生成的kickstart文件.#version=DEVELinstall#cdrom#注解默认的安装方式,新增下面的配置nfs--server=172.16.1.235--dir=/isodirlangen_US.UTF-8keyboardusnetwork--onbootno--deviceeth0--bootprotodhcp--noipv6#rootpw--iscrypted$6$zKfIpmK0g7MKWBVy$I8sk1Q8CAmkEA/zUwhNYC.A1DJOw6un2qbww2empzQx04DGjSvmLbZ2ESVMyOzU0DyT9qsz/IfNsD0Teim//N1rootpw123456firewall--service=sshauthconfig--enableshadow--passalgo=sha512selinux--disabledtimezone--utcAsia/Shanghaibootloader--location=mbr--driveorder=sda--append="crashkernel=autorhgbquiet"#以下是你要求的分区信息#注意你删除的任何分区都没有在这里表示#所以除非你先清除所有分区,否则#不能保证work#clearpart--all--drives=sda#part/boot--fstype=ext4--size=500#partpv.008002--grow--size=1#volgroupvg_centos6--pesize=4096pv.008002#logvol/--fstype=ext4--name=lv_root--vgname=vg_centos6--grow--size=1024--maxsize=51200#logvolswap--name=lv_swap--vgname=vg_centos6--grow--size=1984--maxsize=1984zerombr#clearmbrbootrepo--name="CentOS"--baseurl=cdrom:sr0--cost=100%packages#这个包可以定义增加本身@base@compat-libraries@core@debugging@development@server-policy@workstation-policysgpiodevice-mapper-persistent-datasystemtap-client%end7。配置PXE客户端以引导和启动服务器。重启服务器可以清楚的看到加载前的配置文件的整个过程不需要人工干预,完全自动化