批量装机环境 、 配置PXE引导 、 kickstart自动应答 、 Cobbler装机平台

1 案例1:配置并验证DHCP服务

1.1 问题

本例要求为PXE客户机提供地址分配服务,在主机 svr7 上搭建支持PXE的DHCP服务器,提供的地址参数如下:

  • IP地址范围 192.168.4.10~200/24
  • PXE引导服务器位于 192.168.4.7、引导文件 pxelinux.0

然后在主机 pc207 上使用dhclient命令测试 DHCP地址分配服务。

1.2 方案

DHCP地址分配的四次会话:DISCOVERY --> OFFER --> REQUEST -->ACK 。

DHCP服务器基本概念:

  • DHCP租期:允许客户机租用IP地址的时间期限,单位为秒
  • DHCP作用域:分配给客户机的IP地址所在的网段
  • DHCP地址池:用来动态分配的IP地址的范围

DHCP服务端:软件包dhcp、系统服务dhcpd

DHCP服务端配置文件:/etc/dhcp/dhcpd.conf

传输协议及端口:UDP 67(服务器)、UDP 68(客户端)

1.3 步骤

实现此案例需要按照如下步骤进行。

步骤一:配置DHCP服务端

1)安装dhcp软件包


1.  [root@svr7 ~]# yum  -y  install  dhcp
2.  .. ..

2)建立dhcpd.conf服务配置


1.  [root@svr7 ~]# vim /etc/dhcp/dhcpd.conf
2.  subnet 192.168.4.0 netmask 255.255.255.0 {
3.  range  192.168.4.10 192.168.4.200;
4.  next-server  192.168.4.7;
5.  filename  "pxelinux.0";
6.  }

3)启动系统服务dhcpd,并设置开机自启


1.  [root@svr7 ~]# systemctl  restart  dhcpd
2.  [root@svr7 ~]# systemctl  enable  dhcpd
3.  Created symlink from /etc/systemd/system/multi-user.target.wants/dhcpd.service to /usr/lib/systemd/system/dhcpd.service.

4)确认dhcpd服务状态


1.  [root@svr7 ~]# netstat  -anptu  |  grep  dhcpd
2.  udp        0      0 0.0.0.0:67              0.0.0.0:*                           58693/dhcpd         
3.  .. ..

步骤二:在客户端测试DHCP服务

1)使用dhclient命令测试,观察获取IP地址的过程


1.  [root@pc207 ~]# dhclient  -d  eth0
2.  Internet Systems Consortium DHCP Client 4.2.5
3.  Copyright 2004-2013 Internet Systems Consortium.
4.  All rights reserved.
5.  For info, please visit https://www.isc.org/software/dhcp/
6.  .. ..
7.  DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 7 (xid=0x6707682f)
8.  DHCPREQUEST on eth0 to 255.255.255.255 port 67 (xid=0x6707682f)
9.  DHCPOFFER from 192.168.4.7
10.  DHCPACK from 192.168.4.7 (xid=0x6707682f)
11.  bound to 192.168.4.10 -- renewal in 18008 seconds.
12.  ^C                                   //按Ctrl+c键退出测试

2)若因操作异常导致IP故障,可恢复客户机原有IP配置


1.  [root@pc207 ~]# pkill  -9  dhclient                      //杀死dhclient进程
2.  [root@pc207 ~]# nmcli  connection  up  eth0              //激活原配置
3.  .. ..

2 案例2:PXE基础装机环境

2.1 问题

本例要求为后续的PXE服务器构建提供Linux软件仓库,完成下列任务:

  1. 部署Web目录/var/www/html/dvd
  2. 挂载Linux光盘镜像文件到该目录
  3. 访问 http://192.168.4.7/dvd测试,确保可用

2.2 方案

PXE网络装机的整体思路 —— 装机条件准备:

  • 准备CentOS7安装源(HTTP方式YUM库)
  • 启用DHCP服务

PXE网络装机的整体思路 —— PXE引导配置:

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

2.3 步骤

实现此案例需要按照如下步骤进行。

步骤一:通过 HTTP 方式发布CentOS7软件源

1)快速构建httpd服务器(若已构建,此步可跳过)


1.  [root@room9pc13 ~]# yum  -y  install  httpd          //装包
2.  [root@room9pc13 ~]# systemctl  restart  httpd         //启动服务
3.  [root@room9pc13 ~]# systemctl  enable  httpd          //设置开机自启

2)准备yum仓库,部署到Web子目录


1.  [root@room9pc13 ~]# mkdir /var/www/html/dvd      //建挂载点
2.  [root@room9pc13 ~]# vim /etc/fstab
3.  .. ..
4.  /dev/cdrom /var/www/html/dvd  iso9660  defaults  0  0
5.  [root@room9pc13 ~]# mount  -a                         
6.  [root@room9pc13 ~]# ls /var/www/html/dvd/         //确认部署位置

步骤二:确保yum仓库HTTP资源可用

从浏览器访问http://192.168.4.7/dvd/,可看到仓库资源。

3 案例3:配置PXE引导

3.1 问题

本例要求为PXE装机提供引导服务,并提供必要的素材,完成下列任务:

  1. 启用TFTP服务器,部署引导文件(内核vmlinuz、初始文件initrd.img、网卡启动程序pxelinux.0)
  2. 创建pxelinux.cfg/配置目录,在此目录下建立默认引导文件default

3.2 方案

TFTP,Trivial File Transfer Protocol:简单文件传输协议,通过UDP 69端口提供小文件的传输服务,默认应将资源部署到/var/lib/tftpboot目录下,不支持认证和目录访问等复杂FTP操作。

网卡启动程序pxelinux.0由软件包syslinux提供。

PXE安装用的内核及初始化文件可从CentOS7的光盘目录/images/pxeboot/下提取。

PXE启动配置相关资料可参考CentOS7的光盘目录/isolinux/,其中包括图形支持模块vesamenu.c32、背景图片spash.png、菜单配置文件isolinux.cfg(使用时改名为default)。

3.3 步骤

实现此案例需要按照如下步骤进行。

步骤一:快速构建TFTP服务器

1)安装tftp-server软件包


1.  [root@svr7 ~]# yum -y install tftp-server 
2.  .. ..

2)启动系统服务tftp,并设置开机自启


1.  [root@svr7 ~]# systemctl  restart  tftp

步骤二:部署启动文件

1)拷贝pxelinux.0程序,部署到TFTP目录

在软件包syslinux提供的目录下找到pxelinux.0程序


1.  [root@svr7 ~]# yum  -y  install  syslinux
2.  [root@svr7 ~]# rpm  -ql  syslinux  |  grep pxelinux.0
3.  /usr/share/syslinux/gpxelinux.0
4.  /usr/share/syslinux/pxelinux.0

将其拷贝到/var/lib/tftpboot/目录下,确认部署结果:


1.  [root@svr7 ~]# cp /usr/share/syslinux/pxelinux.0  /var/lib/tftpboot/
2.  [root@svr7 ~]# ls /var/lib/tftpboot/
3.  pxelinux.0

2)拷贝引导装机的内核、初始镜像,部署到TFTP目录

当文件较多时,可以在TFTP目录下创建子目录:


1.  [root@svr7 ~]# mkdir /var/lib/tftpboot/CentOS7

再通过CentOS7光盘目录找到PXE版内核vmlinuz、初始镜像initrd.img,将其拷贝到上述子目录:


1.  [root@svr7 ~]# cd /var/lib/tftpboot/CentOS7/
2.  [root@svr7 CentOS7]# wget  http://192.168.4.7/dvd/isolinux/vmlinuz
3.  [root@svr7 CentOS7]# wget  http://192.168.4.7/dvd/isolinux/initrd.img
4.  //下载内核、初始化文件

确认部署结果:


1.  [root@svr7 pxeboot]# ls  -R /var/lib/tftpboot/
2.  /var/lib/tftpboot/:
3.  pxelinux.0  CentOS7

5.  /var/lib/tftpboot/CentOS7:
6.  initrd.img  vmlinuz

步骤三:配置启动菜单

1)创建配置目录


1.  [root@svr7 ~]# mkdir /var/lib/tftpboot/pxelinux.cfg

2)以光盘中的isolinux目录为模板,拷贝必要的文件


1.  [root@svr7 ~]# cd /var/lib/tftpboot/
2.  [root@svr7 tftpboot]# wget  http://192.168.4.7/dvd/isolinux/vesamenu.c32 
3.  //提供图形支持
4.  [root@svr7 tftpboot]# wget  http://192.168.4.7/dvd/isolinux/splash.png 
5.  //准备背景图片

7.  [root@svr7 tftpboot]# wget  -O  pxelinux.cfg/default  http://192.168.4.7/dvd/isolinux/isolinux.cfg 
8.  //建立菜单配置
9.  [root@svr7 isolinux]# ls  -R /var/lib/tftpboot/          //确认部署结果
10.  /var/lib/tftpboot/:
11.  pxelinux.0  pxelinux.cfg  CentOS7  splash.png  vesamenu.c32

13.  /var/lib/tftpboot/pxelinux.cfg:
14.  default

16.  /var/lib/tftpboot/CentOS7:
17.  initrd.img  vmlinuz

3)调整启动参数


1.  [root@svr7 ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
2.  default vesamenu.c32                              //默认交给图形模块处理
3.  timeout 600                                      //选择限时为60秒(单位1/10秒)
4.  .. ..
5.  menu title  PXE  Installation  Server             //启动菜单标题信息
6.  .. ..
7.  label  linux                                  //菜单项标签
8.  menu  label  ^Install CentOS7 Linux 7
9.  kernel  CentOS7/vmlinuz                      //内核的位置
10.  append  initrd=CentOS7/initrd.img  
11.  //初始镜像、安装源位置
12.  label local                                     //从硬盘启动
13.  menu  default                              //默认启动方式
14.  menu label Boot from ^local drive
15.  localboot 0xffff

17.  menu  end

步骤四:访问TFTP服务端确保可用

1)在pc207上安装tftp命令工具


1.  [root@pc207 ~]# yum  -y  install  tftp
2.  .. ..

2)在pc207上访问svr7上的TFTP服务端,下载文件测试


1.  [root@pc207 ~]# tftp  192.168.4.7  -c  get pxelinux.0
2.  [root@pc207 ~]# ls  -lh  pxelinux.0                      //检查下载结果
3.  -rw-r--r--. 1 root root 27K 1月  13 15:48 pxelinux.0

4 案例4:PXE+kickstart自动装机

4.1 问题

本例要求在PXE服务器上为CentOS7客户机准备ks应答文件,完成下列任务:

  1. 实现全自动的安装及配置
  2. 能够自动配好YUM仓库

然后在客户机上验证PXE+kickstart全自动装机过程:

  1. 再次将测试客户机从PXE启动并安装
  2. 完成后,重启客户机并验证结果

4.2 方案

使用图形配置工具system-config-kickstart来生成应答文件

4.3 步骤

实现此案例需要按照如下步骤进行。

步骤一:准备应答文件

找一台CentOS7系统的模板虚拟机,使用配置工具生成应答文件。

1)在模板机上安装system-config-kickstart软件包


1.  [root@svr7 ~]# yum  -y  install  system-config-kickstart
2.  .. ..

2)调整模板机的yum仓库设置

清理掉无关的yum源,只保留为客户机安装CentOS7系统所必要的yum源,并且将源的ID修改为development。


1.  [root@svr7 ~]# vim /etc/yum.repos.d/dvd.repo
2.  [development]
3.  name = CentOS Linux 7
4.  baseurl = http://192.168.4.7/dvd
5.  gpgcheck = 0

3)运行system-config-kickstart工具,创建应答文件

在支持图形程序的环境运行system-config-kickstart,即可打开该配置工具(如图-5所示)。

image

图-5

通过“文件”菜单打开/root/anaconda-ks.cfg文件,作为应答配置模板,这样可以节省很多时间(如图-6所示)。根据需要确认默认语言、时区,设置根口令、磁盘分区规划等基本信息。

image

图-6

在安装方法部分,选择“执行新安装”,并正确设置HTTP安装源的访问地址信息(如图-7所示)。

/

图-7

在分区信息部分,选择清除主引导记录、删除所有现存分区、初始化磁盘标签,并手动添加/boot 200MB、SWAP分区 2000MB、/分区 所有剩余空间(如图-8所示)。

image

图-8

在网络配置部分,确认已添加第一块网卡,设为DHCP自动获取(如图-9所示)。

image

图-9

在防火墙配置部分,禁用SELinux、禁用防火墙(如图-10所示)。

image

图-10

在软件包选择部分,根据客户机的实际需要定制。比如若要使用图形桌面环境,建议将GNOME相关的包勾选上(如图-11所示)。

image

图-11

确认上述调整后,通过“文件”菜单将其保存为/root/ks.cfg。

4)应答文件微调整

删除掉随模板机配置残留的不可用仓库记录(比如以repo --name开头的Server-HighAvailability、Server-ResilientStorage、autopart等行)


1.  [root@svr7 ~]# vim /root/ks.cfg
2.  install                                                  //安装基本信息设置
3.  xconfig  --startxonboot
4.  keyboard --vckeymap=cn --xlayouts='cn'
5.  rootpw --iscrypted $1$.48kBNVL$e.Ym0L/RzkJonYwbg9Brq1
6.  timezone Asia/Shanghai
7.  url --url="http://192.168.4.254/dvd"                  //安装源设置
8.  lang zh_CN
9.  firewall --disabled
10.  #repo --name="Server-HighAvailability" --baseurl=file:///run/install/repo/addons/HighAvailability
11.  #repo --name="Server-ResilientStorage" --baseurl=file:///run/install/repo/addons/ResilientStorage
12.  #autopart --type=lvm                                      //分区设置
13.  zerombr
14.  clearpart --all --initlabel
15.  part /boot --fstype="xfs" --size=200
16.  part swap --fstype="swap" --size=2000
17.  part / --fstype="xfs" --grow --size=1
18.  .. ..
19.  %post --interpreter=/bin/bash                          //安装后脚本设置
20.  %end

22.  %packages                                              //软件包设置
23.  @^graphical-server-environment
24.  @base
25.  @core
26.  @desktop-debugging
27.  @development
28.  .. ..
29.  initial-setup
30.  initial-setup-gui
31.  -NetworkManager
32.  -NetworkManager-team
33.  .. ..

35.  %end

步骤二:部署应答文件

1)将应答文件部署在客户机可访问的位置

部署并确认文件:


1.  [root@room9pc13 ~]# cp /root/ks.cfg /var/www/html/
2.  [root@room9pc13 ~]# ls  -lh /var/www/html/ks.cfg          //检查部署的文件
3.  -rw-r--r--. 1 root root 4.5K 1月  13 20:20  /var/www/html/ks.cfg

在客户端下载应答文件,确保可访问:


1.  [root@pc207 ~]# wget  http://192.168.4.7/ks.cfg
2.  .. ..
3.  2017-01-13 20:22:19 (183 MB/s) - “ks.cfg” 已保存 [4508] 

5.  [root@pc207 ~]# ls  -lh  ks.cfg                 //检查下载的文件
6.  -rw-r--r--. 1 root root 4.5K 1月  13 20:22 ks.cfg

2)在PXE服务器上修改default引导配置,调用应答文件

找到相应的label启动项,在append后添加ks=应答文件地址,去掉原有的inst.stage2参数设置:


1.  [root@svr7 ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
2.  .. ..
3.  label linux
4.  menu label ^Install CentOS7 Linux 7
5.  kernel CentOS7/vmlinuz
6.  append initrd=CentOS7/initrd.img ks=http://192.168.4.7/ks.cfg 
7.  .. ..

步骤三:验证PXE+kickstart自动应答

1)新建一台虚拟机裸机,确认支持PXE网卡启动

新建一台虚拟机裸机,注意以下事项:将内存设为2G、硬盘设为20G;网络类型要与pxesverver服务器的相同,比如选择vmnet1。

2)启动虚拟机裸机,验证PXE网络安装过程

正常PXE引导,选择第一个启动项回车确认即快速进入全自动安装,后续过程基本无需人工干预(如图-13所示)。

image

图-13

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,451评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,172评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,782评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,709评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,733评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,578评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,320评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,241评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,686评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,878评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,992评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,715评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,336评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,912评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,040评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,173评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,947评论 2 355

推荐阅读更多精彩内容