自动化运维之redhat7.0下PXE+Kickstart+DHCP+TFTP+HTTP无人值守安装系统

一.概述

1、关于PXE

Preboot Execution Environment翻译过来就是预启动执行环境;简称PXE;传统安装操作系统的方法是CDROM或U盘引导,而PXE技术解决的是从网络引导安装系统。pxe是一种基于客户端/服务器模式的一种技术,其核心功能时让客户端通过网络从远程服务器下载启动镜像,从而实现网络启动。

通用的无人值守做法如下:
通过一台没有系统的裸机网卡支持pxe协议,开机后从dhcp服务器获取ip,gw,域名和pxelinux.0文件并从tftp服务器上加载相关内核引导文件;同时下载 kickstart的cfg配置文件,指定系统镜像文件位置加载安装,从而实现无人值守安装!

 

2、pxe引导相关角色说明

PXE作用: 引导装机
Kickstart作用: 将安装系统的过程中通过ks.cfg文件中的配置信息,实现自动安装配置达到无人值守自动安装;
TFTP: 支持PXE 引导的网卡中从tftp服务器端下载pxelinux.0文件、vmlinuz、initrd.img等内核引导文件;
DHCP: PXE引导过程中获首先获取IP地址,并提供pxelinux.0文件位置;
HTTP: 用于下载ks.cfg以及系统镜像文件
 

3、环境准备说明

本次测试环境说明:
PXE服务器:Radhat7.0 的虚拟机

  • 设置  ip:172.25.254.122   netmask:255.255.255.0
[root@pxe yum.repos.d]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 
DEVICE=eth0
BOOTPROTO=none
IPADDR=172.25.254.122
NETMASK=255.255.255.0
ONBOOT=yes
TYPE=Ethernet
  • 配置yum源
[root@pxe yum.repos.d]# cat yum.repo 
[rhel7]
name=rhel7
baseurl=file://172.25.254.122/rhel7.0
gpgcheck=0

配置服务及安装软件包如下:
DHCP
tftp
http
syslinux 包,提供引导文件

 

二.基于http创建ks.cfg文件

1.安装并开启http服务

[root@pxe yum.repos.d]# yum install httpd -y
[root@pxe yum.repos.d]# systemctl start httpd
[root@pxe yum.repos.d]# systemctl enable httpd
ln -s '/usr/lib/systemd/system/httpd.service' '/etc/systemd/system/multi-user.target.wants/httpd.service'

 

2.kickstart ks.cfg配置文件准备

第一步:安装Kickstart制作工具

[root@pxe yum.repos.d]# yum install system-config-kickstart -y

第二步:执行命令,打开kickstart configurator,配置参数,创建Kickstart文件

[root@pxe yum.repos.d]# system-config-kickstart 
  • basic configuration基本信息设定

 

  • installation method安装模式选择

 

  • boot loader options引导程序选项

 

  • partition information分区划分策略,我们将磁盘分为三个分区,/boot分区200M,swap分区500M,其余空间分配给/分区

/boot分区配置

 swap分区配置

 /根分区配置

 

  •  network configuration网络信息设定

我们将网络设置为动态,是为了防止批量安装时,发生ip冲突

 

  • authentication认证加密方式

 

  • firewall configuration火墙配置信息 

 

  • post-installation安装后执行脚本,编辑yum.repo文件,配置yum源

 

第三步:由于形成ks.cfg文件的过程中会有一个bug,没有安装软件的过程,所以我们要在文件中添加安装软件的过程

%package
@base
lftp
%end

编辑完成后 使用ksvalidator 命令进行校验正确性

ksvalidator ks.cfg

 

三.配置DHCP服务

第一步:安装dhcp服务

yum install dhcp -y

第二步:编辑dhcp服务的配置文件
注意:dhcp配置文件在/etc/dhcp/目录下,默认的配置文件没有,但我们可以在帮助文件中找到模板示例文件加以修改

[root@pxe yum.repos.d]# cp  /usr/share/doc/dhcp*/dhcpd.conf.example  /etc/dhcp/dhcpd.conf
cp: overwrite ‘/etc/dhcp/dhcpd.conf’? yes

  • 编辑/etc/dhcp/dhcpd.conf文件
(1) 删除27,28行以及36行以后的内容
(2)
  7 option domain-name "westos.com";
  8 option domain-name-servers 172.25.254.122;

 30 subnet 172.25.254.0 netmask 255.255.255.0 {
 31   range 172.25.254.70 172.25.254.90;
 32   option routers 172.25.254.60;
 33   next-server  172.25.254.122;    ##tftp server 的ip,可以是本机,也可以不是本机
 34   filename "pxelinux.0";     ##引导文件
 35 }


第三步:启动服务

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

 

 

四.配置tftp服务

第一步:安装软件

yum install syslinux -y     #安装syslinux是为了启动引导程序pxelinux.0
yum install tftp-server -y

##由于tftp 服务在redhat7.0之前的包括redgat7.0在内的版本 依赖守护进程服务,如果要正常运行,要争得他的守护进程的同意,所以我们还要安装tftp的守护进程服务xinted
yum install xinetd -y


第二步:将pxelinux.0文件放到tftp的共享目录下,这样一无所知的网卡可以通过tftp服务读取pxelinux.0文件中的内容

rpm -ql syslinux ##查看syslinux的配置文件
cp /usr/share/syslinux/pxelinux.0  /var/lib/tftpboot/

第三步:配置xinetd服务

编辑xinetd服务的配置文件
vim /etc/xinetd.d/tftp     ##配置权限
disable = no   ##no表示tftp处于启动状态,yes表示tftp处于禁用状态


 

第四步:配置tftp服务
安装好tftp-server软件包后 默认的数据根目录是/var/lib/tftpboot/ 无须修改,只需要复制一些软件引导文件进来即可

  • 引导文件
[root@pxe ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/  
  • 内核相关的文件
[root@pxe html]# cd /rhel7.0/
[root@pxe rhel7.0]# ls
addons  GPL       LiveOS      release-notes            RPM-GPG-KEY-redhat-release
EFI     images    media.repo  repodata                 TRANS.TBL
EULA    isolinux  Packages    RPM-GPG-KEY-redhat-beta
[root@pxe rhel7.0]# cd isolinux/
[root@pxe isolinux]# ls
boot.cat  grub.conf   isolinux.bin  memtest     TRANS.TBL    vesamenu.c32
boot.msg  initrd.img  isolinux.cfg  splash.png  upgrade.img  vmlinuz
[root@pxe isolinux]# cp * /var/lib/tftpboot/
  • 制件引导默认文件
[root@pxe tftpboot]# mkdir pxelinux.cfg
[root@pxe tftpboot]# ls
boot.cat   initrd.img    memtest       splash.png   vesamenu.c32
boot.msg   isolinux.bin  pxelinux.0    TRANS.TBL    vmlinuz
grub.conf  isolinux.cfg  pxelinux.cfg  upgrade.img
[root@pxe tftpboot]# cd pxelinux.cfg/
[root@pxe pxelinux.cfg]# cd ..
[root@pxe tftpboot]# mv isolinux.cfg  pxelinux.cfg/default
[root@pxe tftpboot]# cd pxelinux.cfg/
[root@pxe pxelinux.cfg]# ls
default
  • 编辑默认引导文件
编辑默认引导文件/pxelinux.cfg/default
  1 default vesamenu.c32
  2 timeout 60

 10 menu background ha.png    ##安装背景

 61 label linux
 62   menu label ^Install Red Hat Enterprise Linux 7.0  ##安装标题
 63   kernel vmlinuz
 64   menu default    ##默认安装
 65   append initrd=initrd.img repo=http://172.25.254.122/rhel7.0 ks=http://172.25.254.122/ks.cfg    ##镜像和自动安装脚本
  • 更改安装背景
 yum install ImageMagick -y   ##一定要先安装这个
 convert -resize 640x480! haha.png  ha.png   ##更改图片尺寸
 file ha.png    ##查看图片尺寸
 scp ha.png root@172.25.254.122:/var/lib/tftpboot

第五步:启动配置开机自启

[root@pxe tmp]# systemctl enable xinetd
[root@pxe tmp]# systemctl start xinetd
[root@pxe pxelinux.cfg]# systemctl restart httpd.service 

 

 

无人值守安装测试

更改系统启动方式进行自动化安装

安装背景展示:

安装成功:

 

 

 

 

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值