设为首页 收藏本站
查看: 514|回复: 0

[经验分享] 利用Kickstart部署无人值守安装源服务器

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-4-28 08:15:50 | 显示全部楼层 |阅读模式
一、基本概念
1、什么是PXE
PXE(Pre-bootExecution Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicasttrivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端基本软件设置,从而引导预先安装在服务器中的终端操作系统。
    严格来说,PXE 并不是一种安装方式,而是一种引导方式。进行 PXE 安装的必要条件是在要安装的计算机中必须包含一个 PXE 支持的网卡(NIC),即网卡中必须要有 PXE Client。PXE 协议可以使计算机通过网络启动。此协议分为 Client端和 Server 端,而PXE Client则在网卡的 ROM 中。当计算机引导时,BIOS 把 PXE Client 调入内存中执行,然后由 PXE Client 将放置在远端的文件通过网络下载到本地运行。运行 PXE 协议需要设置 DHCP 服务器和 TFTP 服务器。DHCP 服务器会给 PXE Client(将要安装系统的主机)分配一个 IP 地址,由于是给 PXE Client 分配 IP 地址,所以在配置 DHCP 服务器时需要增加相应的 PXE 设置。此外,在 PXE Client 的 ROM 中,已经存在了 TFTP Client,那么它就可以通过 TFTP 协议到 TFTP Server 上下载所需的文件了.             
2、什么是Kickstart
   Kickstart是一种无人值守的安装方式。它的工作原理是在安装过程中记录典型的需要人工干预填写的各种参数,并生成一个名为ks.cfg的文件。如果在安装过程中(不只局限于生成Kickstart安装文件的机器)出现要填写参数的情况,安装程序首先会去查找Kickstart生成的文件,如果找到合适的参数,就采用所找到的参数;如果没有找到合适的参数,便需要安装者手工干预了。所以,如果Kickstart文件涵盖了安装过程中可能出现的所有需要填写的参数,那么安装者完全可以只告诉安装程序从何处取ks.cfg文件,然后就去忙自己的事情。等安装完毕,安装程序会根据ks.cfg中的设置重启系统,并结束安装.
3PXE+Kickstart无人值守安装操作系统完整过程如下
QQ截图20150428081440.png
第一步:PXEClient向DHCP服务器发送请求
首先,将支持PXE的网络接口卡(NIC)的客户端BIOS设置为网络启动,通过PXE BootROM(自启动芯片)会一UDP协议发送一个广播请求,向网络中的DHCP服务器申请一个IP地址信息.
第二步:DHCP服务器提供信息
DHCP服务器收到客户端请求,验证是否来自PXEClient的请求,验证通过后向客户端回响应信息,包括:客户端IP地址,TFTP Server、pxelinux.0文件名.
第三步:PXE客户端请求下载启动文件
客户端请求传送启动所需文件,包括pxelinux.0、pxelinux. cfg/default、vmlinuz、initrd.img等文件.
第四步:BootInstall Server响应客户端请求并传送文件
TFTP服务器收到客户端请求后,彼此间进行通信应答,确定启动参数,BootROM由TFTP通信协议从BootServer下载启动安装程序所必需文件(pxelinux.0pxelinux.cfg/default).default文件下载完成后,会根据
该文件中定义的引导顺序,启动Linux安装程序的引导内核.
第五步:请求下载Kickstart配置文件
客户端通过pxelinux.cfg/default文件成功的引导Linux运行是因为制订了Kickstart配置文件信息所以当一vmlinuz、initrd.img组成的系统运行成功后系统确定你通过什么安装介质来安装Linux如果是通过网络安装(NFS、FTP、HTTP)则会在这个时候初始化网络,并请求下载Kickstart配置文件.刚才PXE不是已经获取过IP地址了吗?为什么现在还需要一次因为现在已经进入了有vmlinuz、initrd.img等文件组成的系统中了,由于PXE的网络配置并不能传递给这个系统,所以才会进行两次获取IP地址过程.
第六步:客户端安装操作系统
将ks.cfg文件下载后,通过该文件找到OS Sserver,并按照该文件的配置请求下载安装过程需要的文件,OS Server和客户端建立连接后,将开始传输文件,客户端将开始安装操作系统,安装完成后,将会根据ks.cfg文件设置来重启或关机注意:安装完成后开机一定要将BIOS修改会从硬盘启动,不然的话又会重复的自动安装操作系统.

感谢军爽博主的总结,如有侵权,请联系我,我将于第一时间删除。
二、环境及所需软件
服务器端IP 192.168.1.2
Vmware下Centos6.5_x86_x64  
网络模式为 Vmnet 1
需安装的软件
dhcptftp-serverpykickstartsyslinuxsystem-config-kickstart
1
2
3
4
5
6
7
8
[iyunv@Nagios_Server ~]# yum -y install dhcptftp-server pykickstart syslinux system-config-kickstart
[iyunv@Nagios_Server~]# rpm -qa  dhcp tftp-server pykickstartsyslinux system-config-kickstart
tftp-server-0.49-7.el6.x86_64
syslinux-4.04-3.el6.x86_64
dhcp-4.1.1-43.P1.el6.centos.1.x86_64
system-config-kickstart-2.8.6.5-1.el6.noarch
pykickstart-1.74.16-1.el6.noarch
[iyunv@Nagios_Server~]#



挂载本地光盘到/mnt
1
2
3
4
5
6
7
8
9
[iyunv@Nagios_Server~]# mount /dev/cdrom /mnt
mount: blockdevice /dev/sr0 is write-protected, mounting read-only
[iyunv@Nagios_Server~]# df -h
Filesystem      Size Used Avail Use% Mounted on
/dev/sda2        30G 4.0G   25G  15% /
tmpfs           495M   80K 495M   1% /dev/shm
/dev/sda1       190M  28M  153M  16% /boot
/dev/sr0        4.4G 4.4G     0 100% /mnt
[iyunv@Nagios_Server~]#



二、相关配置
1、复制安装源到tftpboot
1
2
3
[iyunv@Nagios_Server~]# cp /mnt/isolinux/* /var/lib/tftpboot/ && cp/usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ && mkdir/var/lib/tftpboot/pxelinux.cfg && cp/var/lib/tftpboot/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default && echo $?
0
[iyunv@Nagios_Server~]#



2、编辑/var/lib/tftpboot/pxelinux.cfg/default(复制模板,并把模板上的“menu default”删除)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
[iyunv@Nagios_Server~]# vim /var/lib/tftpboot/pxelinux.cfg/default
修改如下:
defaultvesamenu.c32
#prompt 1
timeout 600
  
display boot.msg
  
menu backgroundsplash.jpg
menu title Welcometo CentOS 6.6!
menu color border0 #ffffffff #00000000
menu color sel 7#ffffffff #ff000000
menu color title 0#ffffffff #00000000
menu color tabmsg0 #ffffffff #00000000
menu color unsel 0#ffffffff #00000000
menu color hotsel0 #ff000000 #ffffffff
menu color hotkey7 #ffffffff #ff000000
menu colorscrollbar 0 #ffffffff #00000000
  
label linux
  menu label ^Install or upgrade an existingsystem
  kernel vmlinuz
  append initrd=initrd.img
label vesa
  menu label Install system with ^basic videodriver
  kernel vmlinuz
  append initrd=initrd.img xdriver=vesanomodeset
label rescue
  menu label ^Rescue installed system
  kernel vmlinuz
  append initrd=initrd.img rescue
label local
  menu label Boot from ^local drive
  localboot 0xffff
label memtest86
  menu label ^Memory test
  kernel memtest
  append -
  
  
label linux
  menu label ^Install
  menu default
  kernel vmlinuz
  append initrd=initrd.img



3、配置DHCP   
1
2
[iyunv@Nagios_Server~]# \cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
[iyunv@Nagios_Server~]# vim /etc/dhcp/dhcpd.conf



添加以下内容
1
2
3
4
5
6
7
8
9
10
11
subnet 192.168.1.0netmask 255.255.255.0 {
  range 192.168.1.100 192.168.1.200;
#  option domain-name-servers www.test.com;
#  option domain-name "www.test.com";
#  option routers 192.168.1.253;
#  option broadcast-address 10.5.5.31;
  default-lease-time 600;
  max-lease-time 7200;
  filename "pxelinux.0";
  next-server 192.168.1.2;
}



wKiom1U-YG2RGZvLAAMbHyz-sxs734.jpg

4、配置NFS,并启动相关服务
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[iyunv@Nagios_Server~]# vim /etc/exports
[iyunv@Nagios_Server~]# cat /etc/exports
/mnt  *(rw,sync)
[iyunv@Nagios_Server~]# /etc/init.d/nfs restart
Shutting down NFSdaemon:                                 [FAILED]
Shutting down NFSmountd:                                 [FAILED]
Shutting down NFSquotas:                                 [FAILED]
Shutting down RPCidmapd:                                 [失败]
Starting NFSservices:                                    [  OK  ]
Starting NFSquotas:                                      [  OK  ]
Starting NFSmountd:                                      [  OK  ]
Starting NFSdaemon:                                      [  OK  ]
正在启动 RPC idmapd:                                      [确定]
[iyunv@Nagios_Server~]#
重启dhcp服务
[iyunv@Nagios_Server~]# /etc/init.d/dhcpd restart
Startingdhcpd:                                           [  OK  ]
[iyunv@Nagios_Server~]# /etc/init.d/xinetd restart
Stoppingxinetd:                                          [  OK  ]
Startingxinetd:                                          [  OK  ]
[iyunv@Nagios_Server~]# chkconfig tftp on
[iyunv@Nagios_Server~]# chkconfig xinetd on
[iyunv@Nagios_Server~]#





wKiom1U-YKrDspB_AADQwWWOlyM676.jpg
wKioL1U-YhzwrNC2AAM6A_eUQkc211.jpg
wKioL1U-Yj_zKO52AAGqO_AGk5o207.jpg
wKiom1U-YN_BufhDAAHioZ0h3DY313.jpg
此时已经可以进行交互式安装,根据实际情况选择即可。
四、制作应答文件,实现自动化安装
需要借助X Windows生产应答文件
1
[iyunv@Nagios_Server~]# system-config-kickstart




wKiom1U-Yc3g_9acAAMQvDw2Dp4534.jpg
wKioL1U-YzPiZbwOAAHJZx2ecF0734.jpg
wKiom1U-YdCjMmyZAAH8_8uuzzA850.jpg
wKioL1U-YzzhZ0zsAAKvqpM5A6k409.jpg
wKiom1U-YdnDNrJoAAIbylNyQHA404.jpg
wKiom1U-YduCu_JMAAHPvcGPR6w397.jpg
wKioL1U-Y0HwXFWqAAICBfiDFaA393.jpg
wKioL1U-Y0KxkrH0AAGkfaCC-OY597.jpg
wKiom1U-Yd_w9mNzAALDTMB2Hl0521.jpg
wKioL1U-Y0vAkVGYAAHDixAPwSg967.jpg
wKiom1U-Yeqx436AAAHowlt6i1M132.jpg
wKioL1U-Y1OhYeK0AAHgiPVFZxY276.jpg
wKiom1U-YfDQjIPEAAKCGVfmtUM349.jpg
配置完后要点文件进行保存,我在这保存了/root下了
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
[iyunv@Nagios_Server~]# mkdir /pxefile
[iyunv@Nagios_Server~]# cp -a /root/ks.cfg /pxefile/
[iyunv@Nagios_Server~]# vim /etc/exports
[iyunv@Nagios_Server~]# cat /etc/exports
/mnt  *(rw,sync)
/pxefile*(rw,sync)
[iyunv@Nagios_Server~]# /etc/init.d/nfs restart
Shutting down NFSdaemon:                                 [  OK  ]
Shutting down NFSmountd:                                 [  OK  ]
Shutting down NFSquotas:                                 [  OK  ]
Shutting down NFSservices:                               [  OK  ]
Shutting down RPCidmapd:                                 [确定]
Starting NFS services:                                     [  OK  ]
Starting NFSquotas:                                      [  OK  ]
Starting NFSmountd:                                      [  OK  ]
Starting NFSdaemon:                                      [  OK  ]
正在启动 RPC idmapd:                                      [确定]
[iyunv@Nagios_Server~]#
修改 default文件
[iyunv@Nagios_Server~]# vim /var/lib/tftpboot/pxelinux.cfg/default
[iyunv@Nagios_Server~]# tail -5 /var/lib/tftpboot/pxelinux.cfg/default
label linux
  menu label ^Install
  menu default
  kernel vmlinuz
  append initrd=initrd.img ks=nfs:192.168.1.2:/pxefile/ks.cfg
[iyunv@Nagios_Server~]# /etc/init.d/dhcpd restart
Shutting downdhcpd:                                      [  OK  ]
Startingdhcpd:                                           [  OK  ]
[iyunv@Nagios_Server~]#



客户端启动,无需交互。
wKiom1U-YnKg3mmIAAERBuYyEzs697.jpg

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-61340-1-1.html 上篇帖子: CentOS NVIDIA显卡驱动安装 下篇帖子: 解决ssh链接服务器超时自动断开的问题 服务器
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表