天天看点

PXE+DHCP+Apache+KickStart无人值守安装RHEL5.8

相关概念

1. 什么是PXE

   严格来说,PXE 并不是一种安装方式,而是一种引导方式。进行 PXE 安装的必要条件是在要安装的计算机中必须包含一个 PXE 支持的网卡(NIC),即网卡中必须要有 PXE Client。PXE (Pre-boot Execution Environment)协议可以使计算机通过网络启动。此协议分为 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中的设置重启系统,并结束安装。

3. PXE + Kickstart的安装先决条件

DHCP 服务器。

TFTP 服务器。

Kickstart所生成的ks.cfg配置文件。

一台存放系统安装文件的服务器,如 NFS、HTTP 或 FTP 服务器。

一个带有 PXE 支持网卡的主机。

实现步骤

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

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

<code>#############################挂载光盘################################</code>

<code>yum </code><code>install</code> <code>-y httpd    安装apache</code>

<code>mount</code> <code>/dev/cdro</code> <code>/mnt/cdrom</code>    <code>挂载安装光盘</code>

<code>cp</code> <code>-rf </code><code>/mnt/cdrom/</code><code>* </code><code>/mnt/cdrom</code>    <code>复制光盘内容到web目录</code>

<code>#############################安装tftp################################</code>

<code>yum </code><code>install</code> <code>-y tftp-server    安装tftp-server</code>

<code>cat</code> <code>/etc/xinetd</code><code>.d</code><code>/tftp</code>    <code>修改配置文件内容为</code>

<code>service tftp</code>

<code>{</code>

<code>  </code><code>socket_type    = dgram</code>

<code>  </code><code>protocol    = udp</code>

<code>  </code><code>wait      = </code><code>yes</code>

<code>  </code><code>user      = root</code>

<code>  </code><code>server      = </code><code>/usr/sbin/in</code><code>.tftpd</code>

<code>  </code><code>server_args    = -s </code><code>/tftpboot</code>

<code>  </code><code>disable      = no</code>

<code>  </code><code>per_source    = 11</code>

<code>  </code><code>cps      = 100 2</code>

<code>  </code><code>flags      = IPv4</code>

<code>}</code>

<code>service xinetd restart    重启xinetd进程</code>

<code>########################配置支持PXE的启动程序#######################</code>

<code>mkdir</code> <code>-p </code><code>/tftpboot</code>

<code>cp</code> <code>/usr/lib/syslinux/pxelinux</code><code>.0 </code><code>/tftpboot</code>

<code>cp</code> <code>/var/www/html/images/pxeboot/vmlinuz</code> <code>/tftpboot</code>

<code>cp</code> <code>/var/www/html/images/pxeboot/initrd</code><code>.img </code><code>/tftpboot/</code>

<code>cp</code> <code>/var/www/html/isolinux/</code><code>*.msg </code><code>/tftpboot/</code>

<code>mkdir</code> <code>/tftpboot/pxelinux</code><code>.cfg -pv</code>

<code>cp</code> <code>/var/www/html/isolinux/isolinux</code><code>.cfg  </code><code>/tftpboot/pxelinux</code><code>.cfg</code><code>/default</code>

<code>########################安装配置dhcp服务#############################</code>

<code>yum –y </code><code>install</code> <code>dhcp</code>

<code>cat</code> <code>/etc/dhcpd</code><code>.conf    主配置文件</code>

<code>ddns-update-style interim;</code>

<code>ignore client-updates;</code>

<code>next-server 192.168.1.110;</code>

<code>filename </code><code>"/pxelinux.0"</code><code>;</code>

<code>subnet 192.168.1.0 netmask 255.255.255.0 {</code>

<code>        </code><code>option routers                  192.168.1.10;</code>

<code>        </code><code>option subnet-mask              255.255.255.0;</code>

<code>        </code><code>option nis-domain               </code><code>"domain.org"</code><code>;</code>

<code>        </code><code>option domain-name              </code><code>"domain.org"</code><code>;</code>

<code>        </code><code>option domain-name-servers      192.168.1.10;</code>

<code>        </code><code>option </code><code>time</code><code>-offset              -18000; </code><code># Eastern Standard Time</code>

<code>        </code><code>range dynamic-bootp 192.168.1.100 192.168.1.200;</code>

<code>        </code><code>default-lease-</code><code>time</code> <code>21600;</code>

<code>        </code><code>max-lease-</code><code>time</code> <code>43200;</code>

<code>service dhcpd start</code>

<code>########################安装Kickstart并配置##########################</code>

<code>yum –y </code><code>install</code> <code>system-config-kickstart</code>

<code>system-config-Kickstart    配置</code>

<code>最后将生成的文件ks.cfg保存到</code><code>/var/www/html</code><code>下</code>

<code>###############修改/tftpboot/pxelinux.cfg/default文件################</code>

<code>修改前两行内容为</code>

<code>default text ks=http:</code><code>//192</code><code>.168.11.29</code><code>/ks</code><code>.cfg</code>

<code>timeout 2</code>

<code>#################修改/var/www/html/ks.cfg文件内容####################</code>

<code>#platform=x86, AMD64, or Intel EM64T</code>

<code>#System authorization information</code>

<code>auth    --useshadow    --enablemd5</code>

<code># System bootloader configuration</code>

<code>key --skip</code>

<code>bootloader --location=mbr</code>

<code># Partition clearing information</code>

<code>clearpart --none</code>

<code># Use graphical install</code>

<code>graphical</code>

<code># Firewall configuration</code>

<code>firewall --disabled</code>

<code># Run the Setup Agent on first boot</code>

<code>firstboot --disable</code>

<code>#System keyboard</code>

<code>keyboard us</code>

<code>#System language</code>

<code>lang en_US</code>

<code># Installation logging level</code>

<code>logging --level=info</code>

<code># Use network installation</code>

<code>url --url=http:</code><code>//192</code><code>.168.1.110/</code>

<code># Network information</code>

<code>network --bootproto=dhcp --device=eth0 --onboot=on</code>

<code>reboot</code>

<code>#Root password</code>

<code>rootpw --iscrypted $1$aseasd$W0TpOJ8tqCoFgcbKk4wie0</code>

<code># SELinux configuration</code>

<code>selinux --disabled</code>

<code># System timezone</code>

<code>timezone --isUtc Asia</code><code>/Shanghai</code>

<code># Install OS instead of upgrade</code>

<code>install</code>

<code># X Window System configuration information</code>

<code>xconfig    --defaultdesktop=GNOME --depth=8 --resolution=640x480</code>

<code># Disk partitioning information</code>

<code>bootloader --location=mbr --driveorder=sda</code>

<code>clearpart --all --initlabel</code>

<code>part / --bytes-per-inode=4096 --fstype=</code><code>"ext3"</code> <code>--size=5120</code>

<code>part </code><code>/boot</code> <code>--bytes-per-inode=4096 --fstype=</code><code>"ext3"</code> <code>--size=128</code>

<code>part swap --bytes-per-inode=4096 --fstype=</code><code>"swap"</code> <code>--size=500</code>

<code>part </code><code>/data</code> <code>--bytes-per-inode=4096 --fstype=</code><code>"ext3"</code> <code>--grow --size=1</code>

<code>%packages</code>

<code>@base</code>

<code>@development-libs</code>

<code>@development-tools</code>

<code>#######################添加开机启动并且启动各服务####################</code>

<code>service httpd start</code>

<code>chkconfig httpd on</code>

<code>chkconfig dhcpd on</code>

<code>service xinetd restart</code>

启动客户端测试

   至此表明各服务正常工作

<a target="_blank" href="http://blog.51cto.com/attachment/201308/160656307.png"></a>

   至此表明ks.cfg文件生效

<a target="_blank" href="http://blog.51cto.com/attachment/201308/160707615.png"></a>

本文转自 ftmoonfans  51CTO博客,原文链接:http://blog.51cto.com/soulboy/1282094