Linux下搭建无人执守安装服务器

什么是PXE

PXE(预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTPMTFTP协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端基本软件设置,从而引导预先安装在服务器中的终端操作系统。

严格来说,PXE 并不是一种安装方式,而是一种引导方式。进行 PXE 安装的必要条件是在要安装的计算机中必须包含一个 PXE 支持的网卡(NIC),即网卡中必须要有 PXE ClientPXE 协议可以使计算机通过网络启动。此协议分为 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 上下载所需的文件了。

什么是Kickstart

Kickstart是一种无人值守的安装方式。它的工作原理是在安装过程中记录典型的需要人工干预填写的各种参数,并生成一个名为ks.cfg的文件。如果在安装过程中(不只局限于生成Kickstart安装文件的机器)出现要填写参数的情况,安装程序首先会去查找Kickstart生成的文件,如果找到合适的参数,就采用所找到的参数;如果没有找到合适的参数,便需要安装者手工干预了。所以,如果Kickstart文件涵盖了安装过程中可能出现的所有需要填写的参数,那么安装者完全可以只告诉安装程序从何处取ks.cfg文件,然后就去忙自己的事情。等安装完毕,安装程序会根据ks.cfg中的设置重启系统,并结束安装

设置BIOS引导顺序为:  硬盘,网络   

前提:硬盘中没有系统。否则直接从硬盘启动了

 

PXE+Kickstart 无人值守安装操作系统完整过程如下:

 

Linux下搭建无人执守安装服务器_无人值守

Linux下搭建无人执守安装服务器_服务器_02

 

 

一:实验环境: 

服务端:xuegod-63   IP192.168.1.63   网卡模式: vmnet4

客户端:xuegod-64   IP192.168.1.64   网卡模式: vmnet4

二:实验代码

第一块:安装ftp,tftp服务部分

1.安装ftp服务以及开启服务,设置为开机自动启动。

[root@xuegod-63 ~]# yum install vsftpd -y

[root@xuegod-63 ~]# service vsftpd restart

[root@xuegod-63 ~]# chkconfig vsftpd on

 

2.安装TFTP,修改tftp配置文件及开启服务

[root@xuegod-63 ~]# yum install tftp tftp-server xinetd -y

[root@xuegod-63 ~]# vim /etc/xinetd.d/tftp #修改下面红色部分

Linux下搭建无人执守安装服务器_无人值守_03 

 

#server_args = -s /tftpboot是tftp服务器运行时的参数。-s /tftpboot表示服务器默认的目录是 /tftpboot

 

1)接着重新启动xinetd服务,然后查看服务端口是否打开。

[root@xuegod-63 ~]# /etc/init.d/xinetd  restart

[root@xuegod-63 ~]# netstat -anutp | grep xinetd

udp        0      0 0.0.0.0:69                  0.0.0.

#OKTFTP服务正常启动。Xinetd服务本来就是开机启动的,所以这里我们不再需要设置。

 

第二块:安装dhcp,修改配置文件及开启服务:

1:配置DHCP服务器:

[root@xuegod-63 ~]# yum install dhcp –y

[root@xuegod-63 ~]# cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample  /etc/dhcp/dhcpd.conf

cp:是否覆盖"/etc/dhcp/dhcpd.conf"Y #复制配置模板文件到DHCP的配置目录中

 

2:修改配置文件

[root@xuegod-63 ~]# vim /etc/dhcp/dhcpd.conf

# A slightly different configuration for an internal subnet.

subnet 192.168.1.0 netmask 255.255.255.0 {

  range 192.168.1.100 192.168.1.200;

  option domain-name-servers 192.168.1.1;

  option domain-name "internal.example.org";

  option routers 192.168.1.1;

  option broadcast-address 192.168.1.255;

  default-lease-time 600;

  max-lease-time 7200;

  next-server 192.168.1.63;

  filename "pxelinux.0";

}

注: 只保留一个subnet {。。。}

 

3:启动DHCP,设置为开机启动

[root@xuegod-63 ~]# service dhcpd restart

[root@xuegod-63 ~]# chkconfig dhcpd on

 

第三块:配置使用PXE,kickstart  启动所需的相关文件

1:安装软件:安装包

[root@xuegod-63]# yum -y install system-config-kickstart  #安装此包时,会把syslinux软件包也安装上。

2:准备tftp需要共享出去的文件

[root@xuegod-63 ~]# grep tftpboot /etc/xinetd.d/tftp

server_args= -s /var/lib/tftpboot

[root@xuegod-63 ~]# vim /etc/xinetd.d/tftp

Linux下搭建无人执守安装服务器_无人值守_04 

[root@xuegod-63 ~]# mkdir /tftpboot

[root@xuegod-63 ~]# cp /usr/share/syslinux/pxelinux.0 /tftpboot/#注,只有安装了system-config-kickstart软件包,才会有/usr/share/syslinux/目录及目录中的文件。 复制pxelinux.0 文件至/tftpboot/ 文件夹中

[root@xuegod-63 ~]# cp /mnt/p_w_picpaths/pxeboot/initrd.img /tftpboot/#虚拟到内存中的镜像文件

[root@xuegod-63 ~]# cp /mnt/p_w_picpaths/pxeboot/vmlinuz /tftpboot/#内核

[root@xuegod-63 ~]#  mkdir /tftpboot/pxelinux.cfg

#iso 镜像中的/isolinux 目录中的isolinux.cfg复制到pxelinux.cfg目录中,同时更改文件名称为default

[root@xuegod-63 ~]# cp /mnt/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default #系统启动

[root@xuegod-63 ~]# chmod 644 /tftpboot/pxelinux.cfg/default#或者给755权限

3:修改/tftpboot/pxelinux.cfg/default的配置文件

[root@xuegod-63 ~]# vim /tftpboot/pxelinux.cfg/default

#文件里面需要修改两行,修改第1linux意思是寻找下面18行的label linux,然后修改下22行(即在后面添加ks=ftp://192.168.1.63/ks.cfg)。第22行的意思是使安装程序通过FTP服务器访问主机是192.168.1.63kickstart文件。

 

Linux下搭建无人执守安装服务器_服务器_05

Linux下搭建无人执守安装服务器_服务器_06

 

#以上有关default配置文件的修改就是通过ftp服务器方式来访问kickstart文件。

4:打开终端输入system-config-kickstart弹出来界面。

[root@xuegod63 ~]# echo $LANG

en_US.UTF-8

[root@xuegod63 ~]#.UTF-8

 [root@xuegod-63 ~]# system-config-kickstart#执行system-config-kickstart弹出来界面。

设置自己后期无人执守安装需要配置的参数:

Linux下搭建无人执守安装服务器_无人值守_07 

我们设置下默认安装的语言,时区,根口令,然后勾选下面的安装后重新引导。然后选择安装方法。

Linux下搭建无人执守安装服务器_服务器_08 

我们配置ftp服务器的安装方法。选择执行新安装。然后点击引导装载程序选项

Linux下搭建无人执守安装服务器_服务器_09 

配置grub相关选项。

 

Linux下搭建无人执守安装服务器_无人值守_10 

设置分区大小

配置网络,默认没有网络设置,点击添加网络,设备名称为eth0,网络类型为dhcp

Linux下搭建无人执守安装服务器_无人值守_11

Linux下搭建无人执守安装服务器_PXE_12

Linux下搭建无人执守安装服务器_服务器_13

 

验证,默认就可以了。

Linux下搭建无人执守安装服务器_无人值守_14 

防火墙和selinux根据自己需求选择开启或者禁用。选择关闭selinux和防火墙。

 

Linux下搭建无人执守安装服务器_PXE_15 

 

打上对勾以图形界面安装系统:

Linux下搭建无人执守安装服务器_服务器_16 

 #自定义软件包默认可能没有勾选桌面。根据自己需求勾选。 我们为了快速度演示安装,不选择安装桌面。

Linux下搭建无人执守安装服务器_无人值守_17 

 

 #安装脚本:在"预安装脚本","安装后脚本"对话框中,可以分别添加在安装前、安装后自动动行的可执行语句。此项设置可以使服务器自动化配置变得更加容易

例如:配置客户机在完成安装后自动设置YUM仓库

Linux下搭建无人执守安装服务器_服务器_18 

rm -rf /etc/yum.repos.d/*

echo '[rhel-source]

name=Red Hat Enterprise Linux $releasever - $basearch - Source

baseurl=file:///mnt/

enabled=1

gpgcheck=0

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release' > /etc/yum.repos.d/rhel6.repo

 

Linux下搭建无人执守安装服务器_PXE_19 

点击左上角的文件选择保存,选择下保存的路径 到此所有关于安装的配置已经配置完毕,

 

[root@test1 ~]#cp /root/ks.cfg /var/ftp  #复制ks.cfg文件到/var/ftp目录下

注:ks.cfg就是无人值守安装时要用的Kickstart文件。

要对应:/tftpboot/pxelinux.cfg/default文件中设置过ks=ftp://192.168.10.1/ks.cfg

配置基于ftpyum源,用于客户端安装时,读取软件包用:

 

5检测各项参数

[root@xuegod-63 ~]# vim /var/ftp/ks.cfg

Linux下搭建无人执守安装服务器_服务器_20 

[root@xuegod-63 ~]# vim /tftpboot/pxelinux.cfg/default

Linux下搭建无人执守安装服务器_服务器_21 

#此时这里两处必须要显示一致

 

1挂载光盘并查看

[root@xuegod-63 ~]# mount /dev/cdrom /var/ftp/pub/

mount: block device /dev/sr0 is write-protected, mounting read-only

[root@xuegod-63 ~]# mount

/dev/sr0 on /var/ftp/pub type iso9660 (ro)

 

2重启服务

[root@xuegod-63 ~]# getenforce

Disabled

[root@xuegod-63 ~]# service vsftpd restart

3清空防火墙并保存

[root@xuegod-63 ~]# iptables -F

[root@xuegod-63 ~]# service iptables save

 

 

4查看

修改xuegod64 BIOS启动顺序为网络优先,加电后开始启动。

Linux下搭建无人执守安装服务器_服务器_22

Linux下搭建无人执守安装服务器_服务器_23

Linux下搭建无人执守安装服务器_PXE_24

 

检查安装后,是否执行了脚本

Linux下搭建无人执守安装服务器_服务器_25