批量部署系统

扫码查看

使用 PXE+Kickstart 实现无人值守批量部署系统

 

笔者:@拿着保温瓶的年轻人


正文:

一、废话两句

 简单看一下拓扑图:

1. 什么是PXE?

PXE引导流程:

2. 什么是Kickstart?

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

二、环境准备

三、准备工作

i. 挂载光盘:

[root@localhost ~]# mkdir /mnt/cdrom
[root@localhost ~]# mount /dev/cdrom /mnt/cdrom

ii. 配置本地yum源:

[root@localhost ~]# cat /etc/yum.repos.d/dvd.repo
------------------------------------------------------
[development]
# 名称必须为 “development”,否则到后面kickstart配置会出现软件包选择出现没有软件包信息
name=redhat
baseurl=file:///mnt/cdrom
gpgcheck=0

iii. 安装图形化:

[root@localhost ~]# yum groupinstall "Server with GUI" -y
[root@localhost ~]# systemctl set-default graphical.target  // 设置默认启动到图形界面
[root@localhost ~]# reboot      // 重启机器

四、安装需要服务

1. 配置DHCP

i. 安装DHCP服务

[root@localhost ~]# yum install dhcp -y

ii. 修改/etc/dhcp/dhcpd.conf 配置文件

[root@localhost ~]# vim /etc/dhcp/dhcpd.conf
------------------------- 配置如下 -------------------------------
subnet 192.168.115.0 netmask 255.255.255.0 {    //所在网段
range 192.168.115.100 192.168.115.199;          //分配IP地址范围
option subnet-mask 255.255.255.0;              //给客户端设置子网掩码(netmask)
default-lease-time 21600;           //设置默认的IP租期时间
max-lease-time 43200;               //设置最大的IP租期时间
next-server 192.168.115.21;         //tfp服务端IP地址
filename "/pxelinux.0";             //网络引导程序
}

iii. 启动DHCP服务

[root@localhost ~]# systemctl start dhcpd
[root@localhost ~]# systemctl enable dhcpd

iv. 测试DHCP是否成功

2. 配置TFP

 i. 安装TFP、Xinetd

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

ii. 修改配置文件

[root@localhost ~]# vim /etc/xinetd.d/tftp
-------------- 省略配置信息,看下图 -------------
将 disable 设置为 no

iii. 启动服务

[root@localhost ~]# systemctl start xinetd
[root@localhost ~]# systemctl enable xinetd

iv. 检查服务是否启动成功

[root@localhost ~]# netstat -ntulp | grep 69
udp       0      0 0.0.0.0:69        0.0.0.0:*        2817/xinetd

3. 安装Syslinux

i. 安装syslinux只是为了要 pxelinux.0 引导加载程序,没有别的用意。

[root@localhost ~]# yum install selinux -y

ii. 复制pxelinux.0 文件至/var/lib/tftpboot/ 文件夹中

[root@localhost ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

iii. 拷贝光盘里的配置文件

[root@localhost ~]# cp /mnt/cdrom/isolinux/* /var/lib/tftpboot/

iv. 验证改步骤是否成功

4. 配置HTTP

i. 安装HTTP

[root@localhost ~]# yum install httpd  -y

ii. 启动HTTP

[root@localhost ~]# systemctl start httpd
[root@localhost ~]# systemctl enable httpd

iii. 复制光盘全部内容至http 的根目录/var/www/html/pub 下

[root@localhost ~]# mkdir /var/www/html/pub
[root@localhost ~]# cp -r /mnt/cdrom/ /var/www/html/pub

iv. 测试改步骤是否成功

5. 配置kickstart

i. 安装kickstart

[root@localhost ~]# yum install system-config-kickstart -y

ii. 在桌面环境下配置Kickstart,生成ks.cfg 文件

[root@localhost ~]# system-config-kickstart

A. 设置语言,键盘,时区,Root密码,安装完毕后重启等。

B. 设置安装方式,这篇文章介绍的是HTTP方式的安装。

C. 安装MBR

D. 设置分区

E. 配置网络

F. 认证配置

G. SELinux 和防火墙配置

H. 图形环境配置

I. 软件包安装选择

注:如果你的软件列表没有信息,解决该问题看后面部分,如下图:

J. 安装后脚本

K. 保存导出配置文件

iii. 复制到HTTP下的ks目录

[root@localhost ~]# mkdir /var/www/html/ks
[root@localhost ~]# cp ks.cfg  /var/www/html/ks/

iv. 验证改步骤

6. 修改default

i. 创建配置文件夹

[root@localhost ~]# cd /var/lib/tftpboot/
[root@localhost tftpboot]# mkdir pxelinux.cfg

ii. 复制配置文件

[root@localhost ~]# cp /var/lib/tftpboot/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
[root@localhost ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
----------------------- 修改配置如下 --------------------------
label linux
  menu label ^Install PXE+Kickstart_RedHat7
  kernel vmlinuz
  append initrd=initrd.img ks=http://192.168.115.21/ks/ks.cfg ksdevice=eth0 net.ifnames=0 biosdevname=0

参数解释:

append initrd=initrd.img ks     // 存放ks配置文件的服务器地址和路径,通过该路径找到对应的ks.cfg文件来引导系统安装
ksdevice=eth0                   // 指定该网卡进行ks的数据交互(可忽略)
net.ifnames=0 biosdevname=0     // 修改内核参数,让网卡命名变为ethXX

iii. 开机验证(需要手动选择安装)

iv. 全自动化安装,无需手动选择安装

[root@localhost ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
--------------------------------------------------------------
default linux            # 在配置文件第一行找到default,加上label的名称即可。
label linux
  menu label ^Install PXE+Kickstart_RedHat7
  kernel vmlinuz
  append initrd=initrd.img ks=http://192.168.115.21/ks/ks.cfg ksdevice=eth0 net.ifnames=0 biosdevname=0

v. 安装好后验证脚本信息

五、你可能会出现的问题

1. 配置kickstart时,软件包选择出现没有软件包信息,如下图:

解决办法:

2. 配置好后,进行自动化部署的时候出现如下报错信息,如下图:

"/sbin/dmsquash-live-root: line 273: write error: No space left on device"

解决办法:

01-11 04:59
查看更多