《liNUX教学:PXE+Kickstart无人值守安装CentOS 6》要点:
本文介绍了liNUX教学:PXE+Kickstart无人值守安装CentOS 6,希望对您有用。如果有疑问,可以联系我们。
本文目次:
1.1 PXE阐明
1.2 PXE流程
1.3 部署环境阐明
1.4 部署DHCP
1.5 部署TFTP
1.6 提供pxe的bootloader和相关设置装备摆设文件
1.7 应用原版安装镜像获取linux内核文件
1.8 选项设置
1.9 从网卡安装体系-开机测试
1.10 通过http/ftp/nfs来提供体系安装文件
1.11 kickstart+PXE无人值守年夜量部署linux
1.1 PXE阐明
所谓的PXE是Preboot Execution Environment的缩写,字面上的意思是开机前的执行环境.
要达成PXE必需要有两个环节:
(1)一个是客户端的网卡必需要支持PXE用户端功能,并且开机时选择从网卡启动,这样系统才会以网卡进入PXE客户端的程序;
(2)一个是PXE服务器必需要提供至少含有DHCP以及TFTP的服务!
且此中:
· DHCP服务必需要能够提供客户端的网络参数,还要告知客户端TFTP所在的位置;
· TFTP则提供客户端的boot loader及kernel file下载路径.
还要加上NFS/FTP/http(选择一样即可)等提供安装文件(安装镜像的解压文件),才算是比拟完整的PXE服务器.一般TFTP和DHCP服务都由同一台服务器提供,且大多数时候还提供NFS/FTP/http服务,所以PXE服务器一般是提供3合一的服务.
1.2 PXE流程
(1).ClIEnt向PXE Server上的DHCP发送IP地址哀求消息,DHCP检测ClIEnt是否合法(主要是检测ClIEnt的网卡MAC地址),如果合法则返回ClIEnt的IP地址,同时将pxe环境下的Boot loader文件pxelinux.0的位置信息传送给ClIEnt.
(2).ClIEnt向PXE Server上的TFTP哀求pxelinux.0,TFTP接收到消息之后再向ClIEnt发送pxelinux.0大小信息,试探ClIEnt是否满意,当TFTP收到ClIEnt发回的同意大小信息之后,正式向ClIEnt发送pxelinux.0.
(3).ClIEnt执行接管到的pxelinux.0文件.
(4).ClIEnt向TFTP哀求pxelinux.cfg文件(其实它是目录,里面放置的是是启动菜单,即grub的配置文件),TFTP将配置文件发回ClIEnt,继而ClIEnt根据配置文件执行后续 *** 作.
(5).ClIEnt向TFTP发送linux内核哀求信息,TFTP接收到消息之后将内核文件发送给ClIEnt.
(6).ClIEnt向TFTP发送根文件哀求信息,TFTP接收到消息之后返回linux根文件系统.
(7).ClIEnt加载linux内核(启动参数已经在4中的设置装备摆设文件中设置好了).
(8).ClIEnt通过nfs/ftp/http下载系统安装文件进行安装.如果在4中的配置文件指定了kickstart路径,则会依据此文件自动应答安装系统.
1.3 部署环境阐明
1.4 部署DHCP
首先安装dhcp服务端法式.
yum -y install dhcp
DHCP主要是提供客户端网络参数与TFTP的位置,以及boot loader的文件名.同时,我们仅针对内网来告知TFTP的相关位置,所以可以编纂/etc/dhcp/dhcpd.conf在subnet的区块内加入两个参数即可.其中PXE上专门为PXE客户端下载的boot loader文件名称为pxelinux.0.
vim /etc/dhcp/dhcpd.confddns-update-style none;default-lease-time 259200;max-lease-time 518400; option routers 172.16.10.10;option domain-name-servers 172.16.10.10;subnet 172.16.10.0 netmask 255.255.255.0 { range 172.16.10.11 172.16.10.100; option subnet-mask 255.255.255.0; next-server 172.16.10.10; # 便是TFTP的位置 filename "pxelinux.0"; # 告知得从TFTP根目录下载的boot loader文件名}
重启dhcp.
service dhcpd restart1.5 部署TFTP
从流程图中可以看出,boot loader文件pxelinux.0以及内核相关的配置文件(目次pxelinux.cfg下)主要都是由TFTP来提供的!
TFTP的安装很简单,直接使用yum即可.不外要告诉客户端TFTP的根目录在哪里,这样客户端才能找到相关文件.另外要注意,TFTP是由xinetd这个super daemon所管理的,因此设定好TFTP之后,要启动的是xinetd.
yum install tftp-server默认TFTP服务的根目录是/var/lib/tftpboot/,为了少写些字母,将tftp的根目录改动为/tftpboot/.改动tftp的配置文件,主要是TFTP的根目录.
vim /etc/xinetd.d/tftpservice tftp{socket_type = dgramprotocol = udpwait = yesuser = rootserver = /usr/sbin/in.tftpdserver_args = -s /tftpboot #重点在这里!修改tftp的根目录disable = noper_source = 11cps = 100 2flags = IPv4}
创立tftp的根目录.
mkdir /tftpboot启动TFTP并察看之:
/etc/init.d/xinetd restart chkconfig xinetd on chkconfig tftp on netstat -tulnp | grep xinetdProto Recv-Q Send-Q Local Address Foreign Address State PID/Program nameudp 0 0 0.0.0.0: 69 0.0.0.0:* 2238/ xinetd
接下来的文件必需要放置于/tftpboot/目录下.
1.6 提供pxe的bootloader和相关配置文件如果要使用PXE的开机引导的话,必要使用CentOS提供的syslinux包,从中copy两个文件到tftp的根目录/tftpboot下即可.整个过程如下:
yum -y install syslinux cp -a /usr/share/syslinux/{menu.c32,vesamenu.c32,pxelinux.0} /tftpboot/mkdir /tftpboot/pxelinux.cfg
ls -l /tftpboot/ -rw-r--r-- 1 root root 61796 Oct 16 2014 menu.c32 # 提供图形化菜单功能-rw-r--r-- 1 root root 26759 Oct 16 2014 pxelinux.0 # boot loader文件drwxr-xr-x 2 root root 4096 Feb 24 20:02 pxelinux.cfg # 开机的菜单设定在这里-rw-r--r-- 1 root root 163728 Oct 16 2014 vesamenu.c32 # 也是提供图形化菜单功能,但界面和menu.c32分歧
pxelinux.cfg是个目录,可以放置默认的开机选项,也可以针对分歧的客户端主机提供分歧的开机选项.一般来说,可以在pxelinux.cfg目录内建立一个名为default的文件来提供默认选项.
如果没有menu.c32或vesamenu.c32时,菜单会以纯笔墨模式一行一行显示.如果使用menu.c32或vesamenu.c32,就会有类似反白效果出现,此时可以使用上下键来选择选项,而不需要看着屏幕去输入数字键来选择开机选项.经过测试,使用vesamenu.c32比menu.c32更加好看些.
这部分设定完毕后,便是内核相关的设定了.
1.7 从安装镜像获取linux内核文件要安装linux系统,必需提供内核文件,这里以64位版本的CentOS 6.6为例.
这里方案将内核相关文件放在/tftpboot/centos6.6/目录下.
既然要从安装镜像中获取内核相关文件,起首得要挂载镜像.
mount /dev/cdrom /testmkdir /tftpboot/CentOS6.6cp /test/isolinux/{vmlinuz,initrd.img} /tftpboot/CentOS6.6 cp /test/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default
其实仅需要vmlinuz和initrd.img两个文件即可,不过这里还将isolinux.cfg这个文件拷贝出来了,这个文件里提供了开机选项,可以以它作为修改开机选项和菜单的模板,这样修改起来比拟容易,也更便捷!
1.8 选项设置修改开机配置文件isolinux.cfg.由于拷贝它的时候重命名为default,所以修改default即可.修改的地方标赤色了.
vim /tftpboot/default default vesamenu.c32 #这是必需项,或者改为menu.c32#prompt 1
timeout 10display ./centos6.6/boot.msg
#这是为选项提供一些说明的文件menu background splash.jpgmenu Title Welcome to CentOS 6.6!menu color border 0 #ffffffff #00000000menu color sel 7 #ffffffff #ff000000menu color Title 0 #ffffffff #00000000menu color tabmsg 0 #ffffffff #00000000menu color unsel 0 #ffffffff #00000000menu color hotsel 0 #ff000000 #ffffffffmenu color hotkey 7 #ffffffff #ff000000menu color scrollbar 0 #ffffffff #00000000label linuxmenu label ^Install your linux
menu default #设置默认的光标停留在此label上 kernel ./centos6.6/vmlinuz
#设置内核文件,注意相对路径是从tftp的根路径/tftpboot开始的append initrd=./centos6.6/initrd.img quIEt #设置init ramdom disk文件,并设置启动时文本方式启动
label vesamenu label Install system with ^basic vIDeo driverkernel vmlinuzappend initrd=initrd.img xdriver=vesa nomodesetlabel rescuemenu label ^Rescue installed systemkernel vmlinuzappend initrd=initrd.img rescuelabel localmenu label Boot from ^local drivelocalboot 0xfffflabel memtest86menu label ^Memory testkernel memtestappend -
1.9 从网卡安装体系——开机测试
设置Bios从网卡启动.
由于到这里我还没有提供linux的安装文件,所以选择URL从互联网来获取体系安装.
由于要从互联网上获取系统安装文件,所以必要设置IP等网络参数,但要注意,这里的网络参数和前面设置的PXE网络参数是无关的,这里设置的IP仅是为了联上互联网.由于已经配置了DHCP,所以这里选择DHCP.
设置一个获取linux体系的站点.上图设置的是163的站点.
如果没什么问题,到这里就开端进行安装直到完成了.以下是进度图片.
PXE+Kickstart实现无人值守批量安装linux
RHEL7/CentOS7 PXE+Kickstart自动化体系安装
PXE+Kickstart安装CentOS 7.3
linux运维自动化对象 Kickstart
PXE+Kickstart无人值守安装CentOS 7
RHCE认证之无人值守安装linux体系(FTP+TFTP+DHCP+Kickstart+PXE)
CentOS Kickstart及领导镜像文件制作
Kickstart 全自动安装部署RHEL 7.0
1.10 通过http/ftp/nfs来提供系统安装文件现在在当地服务器上安装http或ftp或nfs来作为系统文件的来源.
首先挂载linux的镜像光盘(前文已经挂载过了),假设挂载到/mnt目次上.
mount /dev/cdrom /mnt注意,要提供的是镜像中的所有文件,而不是简单的提供一个镜像.所以将/mnt中的所有文件复制出来,假设复制到目次/install目次下.
mkdir /install cp -a /mnt/* /install其实也可以不用复制出来的,只必要将镜像挂载到某个目录下,只要nfs/http/ftp能够找到它就行了.
(1). 使用NFS提供安装文件
yum -y install rpcbind nfs-utils启动rpcbind和nfs.
service rpcbind start service nfs start然后导出/install目录给必要安装系统的客户端,这里导出给整个网段.
exportfs -o ro,async,no_root_squash 192.168.100.0/24:/install showmount -eExport List for node1.longshuai.com:/install 192.168.0.0/24
(2). 使用http提供安装文件
安装httpd.
yum -y install httpd service httpd start由于http的documentRoot "/var/www/HTML",所以系统的安装文件必要在此目录下或其子目录才能找到,假设在/var/www/HTML/centos6.6目录下,只必要简单的将镜像挂载到此目录即可.
mkdir /var/www/HTML/centos6.6 mount /dev/cdrom /var/www/HTML/centos6.6(3). 使用vsftpd来提供安装文件
yum -y install vsftpd由于这里仅用来提供下系统的安装文件,所以就没需要对vsftpd多多配置了,使用它最简单的匿名用户模式即可,但是匿名用户的根目录为/var/ftp,所以要将镜像挂载到此目录或此目录下的子目录下,假设放在/var/ftp/centos6.6.
mkdir /var/ftp/centos6.6 mount /dev/cdrom /var/ftp/centos6.6(4). 测试并填写安装文件的路径地址
到此,就可以启动虚拟机来测试了.和前面的一样,直到下面这里.
对付ftp和http,直接填写即可.
ftp://192.168.100.100/centos6.6
http://192.168.100.100/centos6.6
对付NFS写这样的路径,因为在上面NFS的设定上是导出了/install目录,安装文件也是复制到此文件中的.
然后就会进入安装画面,但是这样还是有些地方必要手动指定的.无法实现非交互时无人值守的方式安装.
所以下文就先容kickstart实现无人值守的方式.
1.11 kickstart+PXE无人值守大量部署linux所谓的无人值守,就是自动应答,当安装过程中需要人机交互提供某些选项的答案时(如如何分区),自动应答文件可以根据对应项自动提供答案.但是,无人值守并不完全是无人值守,在设置bios从网卡启动是必需人为设置的,且安装完系统后设置不从网卡启动也是需要人为设置的.此处之外,其他的都可以无人值守.
要配置无人值守的系统安装,必要提供安装过程中必要的各种选择,这些选择在kickstart的配置文件中,一般正常安装完linux系统在root用户的家目录下有一个anaconda-ks.cfg,该文件的配置说明见kickstart文件详解.以下是该文件中的部分内容.
不难发现,装系统时许多选项在这里面都记录了.
那么,要使用kickstart来批量部署 *** 作系统,就需要提供该文件.以下是我提供的配置文件/install/ks.cfg(因为我是使用NFS作为文件提供源的,所以我将其放在nfs的导出目录中,让客户端能够找到).其中rootpw的加密暗码要使用grub-crypt生成.
vim /install/ks.cfginstalltext
nfs --server=192.168.100.100 --dir=/install#url --url=http://192.168.100.100/centos6.6bootloader --location=mbr --driveorder=sda --append="crashkernel=auto quIEt"lang en_US.UTF-8keyboard usnetwork --onboot no --device eth0 --bootproto dhcp --noipv6rootpw --iscrypted $6$x4u9sIfSQsO7ddk5$/.0Xe6tFBY0uUmFFtyvAeY9YVPtcn8zl21fFNgmAoYtepQHRYDthQ4T1ZE12kDfAT6O3oXfRb7uv214t3Bb3K1firewall --service=sshauthconfig --enableshadow --passalgo=sha512selinux --Disabledtimezone Asia/Shanghaireboot #安装结束后重启#make partitionszerombrclearpart --all --initlabelpart /boot --fstype=ext4 --asprimary --size=250part / --fstype=ext4 --asprimary --grow --size=2000part swap --fstype=swap --size=2000%packages@base@core@deBUGging@development@@R_170_5022@@harDWare-monitoring@performance@server-policy@workstation-policysgpiodevice-mapper-persistent-datasystemtap-clIEnt%post #结束后做的事cat >>etc/yum.repos.d/base.repo<<eof[base]name=163repobaseurl=http://mirrors.163.com/centos/6/os/x86_64/gpgcheck=0enable=1eofsed "s/ONBOOT.*$/ONBOOT=yes/" /etc/sysconfig/network-scripts/ifcfg-eth0 #设置网卡为启动sed "s/rhgb //" /boot/grub/grub.conf #设置启动系统时不使用图形进度条方式sed "s/HOSTname=.*$/HOSTname=xuexi.longshuai.com/" /etc/sysconfig/network #设置主机名%end
然后改动defalut文件,让客户端能够找到ks.cfg文件.
vim /tftpboot/pxelinux.cfg/defaultlabel linuxmenu label ^Install your linuxmenu defaultkernel ./centos6.6/vmlinuz
append initrd=./centos6.6/initrd.img ks=nfs:192.168.100.100:/install/ks.cfg quIEt假如要使用LVM的分区方式,参考如下:
part /boot --fstype ext4 --size=100part swap --fstype=swap --size=2048part pv26 --size=100 --growvolgroup VG00 --pesize=32768 pv26logvol / --fstype ext4 --name=LVroot --vgname=VG00 --size=29984logvol /data --fstype ext4 --name=LVdata --vgname=VG00 --size=100 --grow
如果觉得使用样本的方式手工写配置文件比拟麻烦,也可以使用图形化工具来制作ks.cfg文件.在linux中用yum安装system-config-kickstart就行了(图形化依赖于x-window),选项也有些限制(比如分区不能使用lvm).
然后找台机械从网卡启动就进入安装模式了.
因为在ks.cfg中设置了安装完成后reboot,所以要手动去修改bios不要再从网卡启动,不然重启后又再次从网卡启动然后又去自动应答装系统了.当然,可以将reboot换成shutdown或者poweroff,这样装完就只是关机了,等开机前人为设置不从网卡启动.
本文永远更新链接地址:
欢迎参与《liNUX教学:PXE+Kickstart无人值守安装CentOS 6》讨论,分享您的想法,内存溢出PHP学院为您提供专业教程。
总结以上是内存溢出为你收集整理的LINUX教学:PXE+Kickstart无人值守安装CentOS 6全部内容,希望文章能够帮你解决LINUX教学:PXE+Kickstart无人值守安装CentOS 6所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)