kickstart + PXE 实现无人职守安装 RHEL6 和 RHEL7 系统

【批量装机自动化】项目名称PXE + kickstart 实现无人值守批量装机

项目需求:

  1. 利用PXE + kickstart 技术实现无人值守装RHEL6和RHEL7系统
  2. 需要有台DHCP服务器为新装系统提供自动分配IP地址服务。
  3. 新装好的系统需要以红帽官方提供的光盘系统作为本机yum源。

项目分析:

  1. 利用DHCP为新建虚拟机动态分配IP地址
  2. 利用TFTP用来提供装机用的内核,初始化文件,PXE引导程序和配置启动菜单。
  3. 分别在已经安装好的RHEL6和RHEL7系统上利用system-config-kickstart服务生成相应应答文件。

项目背景

PXE + kickstart 技术可解决人工装系统的繁琐的等待以及交互过程,也解决了人工装机的低下效率。利用该技术不仅可实现无人值守自动装系统,还可实现规模化,自动化以及远程实现。规模化就是可以同时装配很多台服务器,也可以同时装配不同的系统类型。自动化就是无人值守,解放劳动力。不需要光盘和U盘等介质。

整体思路

1.装机条件准备

  • 准备RHEL6和RHEL7两个以存在的系统
  • 准备RHEL6和7的安装源(HTTP方式提供yum仓库)
  • 以RHEL7系统为服务器提供DHCP和TFTP服务
  • 配置DHCP服务

2.PXE引导配置

  • 启用TFTP服务,提供装机用的内核,初始化文件
  • 提供PXE引导程序,配置启动菜单

实施步骤

1.配置装机的yum源

  • 挂载红帽光盘,开机自动挂载,挂载到http服务下,实现真机http自动发布yum源。真机:vim /etc/fstab /ISO/rhel-server-7.2-x86_64-dvd.iso /var/www/html/rhldvd iso9660 loop,ro 0 0 //红帽7系统光盘挂载 /ISO/rhel-server-6.7-x86_64-dvd.iso /var/www/html/rhel6dvd iso9660 loop,ro 0 0 //红帽6系统光盘挂载
  • 客户机配置yum仓库,vim /etc/yum.repos.d/rhel6.repo (以红帽6为例)
[development]
name=http://192.168.4.254/rhel6dvd
baseurl=http://192.168.4.254/rhel6dvd
enable=1
gpgcheck=0
  • 在红帽6系统上查看yum源是否可用。
yum repolist      //红帽7同

2.服务器上手动搭建DHCP服务

  • 以RHEL7为服务器,安装dhcp包
yum -y install dhcp
  • 配置dhcp服务,修改DHCP主配置文件:vim /etc/dhcp/dhcpd.conf
subnet 192.168.4.0 netmask 255.255.255.0        //定义dhcp服务分配网段
{
        range 192.168.4.10 192.168.4.200;         //定义ip地址池            
        option routers 192.168.4.254;             //默认网关
        next-server 192.168.4.2;                  //服务器ip地址
        filename "pxelinux.0";                    //引导文件
}
  • 启动dhcp服务
systemctl restart dhcpd

3.启动TFTP服务

  • 安装tftp包
yum -y install tftp
  • 启动tftp服务
systemctl restart tftp

4.准备装机文件

  • 创建存储装机的必备文件
mkdir -p  /var/lib/tftpboot{/rhel6dvd,/rhel7dvd}
  • 分别在这两个目录下存放各自装系统的内核文件和初始化文件,在红帽系统盘下/isolinux里下载vmlinuz和initrd.img (以RHEL6为例) cd /var/lib/tftpboot/rhel6 wget http://192.168.4.254/rhldvd/isolinux/vmlinuz wget http://192.168.4.254/rhldvd/isolinux/initrd.img
  • 复制pxelinux.0引导文件到/var/lib/tftpboot
cp /usr/src/syslinux/pxelinux.0  /var/lib/tftpboot/
  • 下载装机选择时的背景图片和图形模块文件并放在/var/lib/tftpboot/根目录下。
wget http://192.168.4.254/rhldvd/isolinux/vesamenu.c32
wget http://192.168.4.254/rhldvd/isolinux/splash.png
  • 创建目录来存放默认启动配置文件
mkdir /var/lib/tftpboot/pxelinux.cfg/

下载红帽系统光盘自带的启动配置文件(放在/pxelinux.cfg目录下)进行修改。需要修改地方有如下几处:在红帽系统盘下/isolinux里下载。注意:只需要留以下四处:安装红帽6和7,救援模式,默认选择方式(并在其配置条目里设置 menu default )

wget http://192.168.4.254/rhldvd/isolinux/isolinux.cfg -O /var/lib/tftpboot/pxelinux.cfg/
cd /var/lib/tftpboot/pxelinux.cfg/
mv isolinux.cfg   default.cfg

5.准备kickstart应答文件

1.红帽6上:

  • 装system-config-kickstart软件包yum -y install system-config-kickstart
  • 运行system-config-kickstart
system-config-kickstart
  • 导入一个已经存在的包,进行修改,命名为ks-rhel6.cfg。
  • 从真机上去提取ks-rhel6.cfg,并创建目录/var/www/html/rhel6以存放ks-rhel6.cfg。
scp root@192.168.4.10:/root/ks-rhel6.cfg   /var/www/html/rhel6/

2.红帽7上:

  • 装system-config-kickstart软件包
yum -y install system-config-kickstart
  • 运行
system-config-kickstart
  • 导入一个已经存在的包,进行修改,命名为ks-rhel7.cfg。
  • 从真机上去提取ks-rhel7.cfg,并创建目录/var/www/html/rhel7以存放ks-rhel7.cfg。
scp root@192.168.4.10:/root/ks-rhel7.cfg   /var/www/html/rhel7/

6.进行装机

  • 根据用户需求去进行操作。可装机,修复,进行默认操作。

疑难解答

1.手动进行配置分区并保证应答文件和创建虚拟机时选择硬盘类型一致,均为VirtIO。

2.注释掉kickstart应答文件关于LVM的那一行配置

3.在/var/lib/tftpboot/pxelinux.cfg/default文件中修改从硬盘启动为默认启动方式。

label local                                         //从硬盘启动
menu  default                              //默认启动方式
menu label Boot from ^local drive
localboot 0xffff

4.创建应答文件时,选择软件包时应该注意全部勾选。

原文链接:

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏FreeBuf

漏洞预警:知名WordPress主题Pagelines和Platform存在高危漏洞

使用Pagelines和Platform主题的WordPress用户注意了,请尽快更新主题的版本。我们在一次对WAF例行审计时,偶然发现了两个严重漏洞:一个权限...

1835
来自专栏idealclover的填坑日常

从零开始折腾博客(5):全站从http升级到https

HTTPS=HTTP+SSL,简单讲是HTTP的安全版,即HTTP下加入SSL层。相比HTTP,HTTPS提供了内容加密,身份认证,数据完整性的功能,可以有效地...

1123
来自专栏丁鼎的专栏

【腾讯云的1001种玩法】如何使用腾讯云CVM构建自己的云桌面办公平台

本文将介绍如何在一台 Windows2008 的 CVM 云服务器上重新安装系统为 Win10,如何在重装后正确的恢复网卡驱动程序到目标系统。

1.3K0
来自专栏落花落雨不落叶

VMware安装Elementary OS 后不能上网问题解决方法

32611
来自专栏安恒信息

Drupal CMS新安全漏洞预警

根据公告,6.x、7.x、8.x版本的子系统存在严重安全漏洞,利用该漏洞可能实现远程代码执行攻击,从而影响到业务系统的安全性,该漏洞跟CVE-2018-7600...

942
来自专栏Laoqi's Linux运维专列

linux安全配置

今天清早登录服务器发现很多暴力狗(使用ssh端口破解登录密码),真不知道这些人有啥意思,破解了无非是把我的服务器当作肉鸡再去攻击其他服务器,目的无非就是证明你有...

2985
来自专栏jessetalks

Gitlab CI 自动部署 asp.net core web api 到Docker容器

为什么要写这个? 在一个系统长大的过程中会经历不断重构升级来满足商业的需求,而一个严谨的商业系统需要高效、稳定、可扩展,有时候还不得不考虑成本的问题。我希望能找...

4256
来自专栏喵了个咪的博客空间

原 荐 Kubernetes(三) - 使

2005
来自专栏月色的自留地

手工在Docker for mac上安装Kubernetes

2214
来自专栏疯狂的小程序

微信小程序分享——会话服务器和业务服务器合并

因为两台服务器的镜像是不同的,里面的环境也不同。业务服务器是nginx+php-fpm的环境,而会话服务器是LAMP (Apache)。

3225

扫码关注云+社区