无人值守批量安装服务器

290 阅读3分钟

方法:PXE + DHCP+TFTP+ Kickstart+ FTP

 

原理和概念: 

1.1 什么是PXE  严格来说,PXE 并不是一种安装方式,而是一种引导的方式。进行 PXE 安装的必要条件是要安装的计算机中包含一个 PXE 支持的网卡(NIC),即网卡中必须要有 PXE Client。PXE (Pre-boot Execution Environment)协议使计算机可以通过网络启动

网卡中必须有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。PXE Client 通过 TFTP 协议到 TFTP Server 上下载所需的文件。

什么是KickStart

KickStart是一种无人职守安装方式。KickStart的工作原理是通过记录典型的安装过程中所需人工干预填写的各种参数,并生成一个名为ks.cfg的文件;在其后的安装过程中(不只局限于生成KickStart安装文件的机器)当出现要求填写参数的情况时,安装程序会首先去查找 KickStart生成的文件,当找到合适的参数时,就采用找到的参数,当没有找到合适的参数时,才需要安装者手工干预。

这样,如果KickStart文件涵盖了安装过程中出现的所有需要填写的参数时,安装者完全可以只告诉安装程序从何处取ks.cfg文件,然后去忙自己的事情。等安装完毕,安装程序会根据ks.cfg中设置的重启选项来重启系统,并结束安装。

 


执行 PXE + KickStart安装需要准备内容:

设置要安装的裸机BIOS引导顺序为:  硬盘,网络

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

• DHCP 服务器用来给客户机分配IP;

• TFTP 服务器用来存放PXE的相关文件,比如:系统引导文件;

• FTP 服务器用来存放系统安装文件,镜像;

• KickStart所生成的ks.cfg配置文件;

• 带有一个 PXE 支持网卡的将安装的主机;

 

安装ftp服务以及开启服务

yum install vsftpd -y

/etc/init.d/vsftpd tart

chkconfig vsftpd on

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

yum install tftp -y

yum install tftp-server –y

yum install xinetd -y

vim /etc/xinetd.d/tftp

server_args             = -s /tftpboot

disable                 = no

 

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

yum install dhcp –y

cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf

vi /etc/dhcp/dhcpd.conf

修改成如下内容:

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 {。。。}

/etc/init.d/dhcpd start

 

yum -y install system-config-kickstart  # 安装此包时,会把syslinux软件包也安装上。


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

grep tftpboot /etc/xinetd.d/tftp

mkdir /tftpboot

cp /usr/share/syslinux/pxelinux.0 /tftpboot/    # 注,只有安装了 system-config-kickstart 软件包,才会有 /usr/share/syslinux/ 目录及目录中的文件。

cp /mnt/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default

cp /mnt/images/pxeboot/initrd.img /tftpboot/

cp /mnt/images/pxeboot/vmlinuz /tftpboot/

chmod 644 /tftpboot/pxelinux.cfg  /default

vim /tftpboot/pxelinux.cfg/default

然后修改/tftpboot/pxelinux.cfg/default的配置文件。

default linux

append initrd=initrd.img ks=ftp://192.168.1.63/ks.cfg

 

 

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

 


 

接下来我们打开终端输入system-config-kickstart弹出来界面。

echo $LANG

en_US.UTF-8

LANG=zh_CN.UTF-8

system-config-kickstart

system-config-kickstart  # 执行system-config-kickstart弹出来界面。

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

    image.png  

 

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


 

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


image.png

配置grub相关选项。


image.png

image.png

image.png

image.png

image.png

设置分区大小。

 

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

image.png  

image.png  

image.png

验证,默认就可以了。

image.png  

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

 image.png


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

image.png

取消对勾,以字符界面安装系统,安装系统快:

image.png

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

image.png

 

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

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

image.png

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

echo ' [rhel-source]

name=Red Hat Enterprise Linux releaseverreleasever - 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


image.png  

  image.png

[root@super63 ~]# ll ks.cfg

-rw-r--r-- 1 root root 1211 Aug 17 21:30 ks.cfg

[root@super63 ~]# cp /root/ks.cfg /var/ftp

[root@super63 ~]# vim /var/ftp/ks.cfg

[root@super63 ~]# mount /dev/cdrom /var/ftp/pub/