> 文档中心 > Linux PXE高效批量网络装机与kickstart 无人值守安装

Linux PXE高效批量网络装机与kickstart 无人值守安装

目录

一、PXE高效批量网络装机

1.1 什么是pxe

1.2 实现的前提条件

1.3 系统安装过程

1.4 搭建过程中的服务详解

1.5 PXE批量部署的优点

二、Kickstart无人值守

 2.1 kickstart文件主要包括三个部分

2.1.1 命令段

2.1.2 程序包段

2.1.3 脚本段

三、实验

四、总结


前面我们学习了使用光盘镜像来安装Linux系统的方法,这种方法只适合安装少量Linux系统的情况,如果生产环境中有数百台服务器都需要安装系统,这种方法就显得效率很低,这时,我们就需要使用PXE+TFTP+FTP+DHCP+Kichstart服务搭建出一个无人值守安装系统。这种无人值守安装系统可以自动地为数十台服务器安装系统,这一方面将运维人员从重复性的工作中解救出来,也大大提升了系统安装的效率

 

一、PXE高效批量网络装机

1.1 什么是pxe

PXE 的全称是 preboot execute environment它其实是Intel在很久以前提出来的一项用于通过网络来引导系统的标准。允许客户机通过网络从远程服务器上下载引导镜像,并加载安装文件或者整个操作系统

1.2 实现的前提条件

客户端

  1. BIOS支持
  2. 网卡支持(现在基本都已支持)

服务器

  1. 需要在BIOS中开启开关,服务器一般没打开(bmc界面里打开)
  2. 网络中有一台 DHCP 服务器以便为客户机自动分配地址、指定引导文件位置
  3. 服务器通过 tftp服务(简单文件传输协议)来提供系统内核和引导镜像的下载
  4. 安装syslinux,提供PXE引导程序
  5. 使用ftp服务,提供yum安装源

1.3 系统安装过程

  • 加载boot loader
  • 加载启动安装菜单
  • 加载内核和initrd系统
  • 加载根系统
  • 运行anaconda的安装向导

Linux安装光盘的安装相关文件

在系统光盘的isolinux目录下有和安装相关的文件

  • boot.cat: 相当于grub的第一阶段

  • isolinux.bin:光盘引导程序,在mkisofs的选项中需要明确给出文件路径,这个文件属于SYSLINUX项目

  • isolinux.cfg:启动菜单的配置文件,当光盘启动后(即运行isolinux.bin),会自动去找isolinux.cfg文件

  • vesamenu.c32:是光盘启动后的启动菜单图形界面,也属于SYSLINUX项目,menu.c32提供纯文本的菜单

  • memtest:内存检测程序

  • splash.png:光盘启动菜单界面的背景图

  • vmlinuz:是内核映像

  • initrd.img:ramfs文件(精简版的linux系统,文件系统驱动等),用来挂载root根

1.4 搭建过程中的服务详解

  1. TFTP(简单文件传输协议):内核和引导文件,是一种基于UDP协议实现的用于在客户机和服务器之间进行简单文件传输的协议,适合于小型文件传输的应用场合。TFTP服务默认由xinetd服务进行管理,使用UDP的69端口
  2. vsftp:安装系统镜像文件获取方式,也可以使用http服务

  3. syslinux:一个功能强大的引导加载程序,而且兼容各种介质。它的目的是简化首次安装Linux的时间,并建立修护或其它特殊用途的启动盘。它的安装很简单,一旦安装syslinux好之后,sysLinux启动盘就可以引导各种基于DOS的工具,以及MS-DOS/Windows或者任何其它操作系统

  4. DHCP服务:自动获取IP地址

1.5 PXE批量部署的优点

  • 规模化:同时转配多台服务器
  • 自动化:安装系统、配置各种服务
  • 远程实现:不需要光盘、U盘等安装介质

二、Kickstart无人值守

 2.1 kickstart文件主要包括三个部分

  1. 命令段
  2. 程序包段
  3. 脚本段

2.1.1 命令段

指明各种安装前配置,如键盘类型等

命令段中的常见命令:

keyboard: 设定键盘类型

lang: 语言类型

zerombr:清除mbr

clearpart:清除分区

part: 创建分区

rootpw: 指明root的密码

timezone: 时区

text: 文本安装界面

network:指定网络设置

firewall:设置防火墙设置

selinux:设置selinux设置

reboot:安装完自动重启

user:安装完成后为系统创建新用户

url: 指明安装源

2.1.2 程序包段

指明要安装的程序包组或程序包,不安装的程序包等

%packages

@^environment group: 指定环境包组,如:@^minimal-environment

@group_name

package

-package

%end

2.1.3 脚本段

%pre: 安装前脚本

%post: 安装后脚本

注意:CentOS 8,7,6 不同版本的kickstart文件格式不尽相同,不可混用

[root@localhost ~]#yum install system-config-kickstart -y#安装图形化工具

三、实验

安装服务   dhcp  tftp-server   vsftp   syslinux   yum install dhcp tftp-server vsftpd syslinux -y修改配置文件 cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf   #将模板文件拷贝到etc目录下vim /etc/dhcp/dhcpd.conf  --------------------------------------------------subnet 192.168.102.0 netmask 255.255.255.0 {   range 192.168.102.10 192.168.102.50;#获取IP地址的地址池  option routers 192.168.102.1;#网关  next-server 192.168.102.131;    #tftp地址  filename "pxelinux.0";#指明文件名}--------------------------------------------------- vim /etc/xinetd.d/tftp----------------------------disable   = no   #开启tftp服务---------------------------cd /var/ftp/mkdir centos7mount /dev/sr0 centos7cd centos7/isolinux/cp initrd.img vmlinuz /var/lib/tftpboot/  #拷贝到站点文件cd /var/lib/tftpboot/rpm -ql syslinux |grep pxelinux.0cp /usr/share/syslinux/pxelinux.0 ./mkdir pxelinux.cfg  #必须取这个名字cd pxelinux.cfg/vim default-----------------------------------------------------------------------------default auto#prompt 1label auto kernel vmlinuz append initrd=initrd.img method=ftp://192.168.102.131/centos7label linux text kernel vmlinuz append text initrd =initrd.img method=ftp://192.168.102.131/centos7label linux rescue kernel vmlinuz append rescue initrd=initrd.img method=ftp://192.168.100.131/centos7--------------------------------------------------------------------------------------#/var/lib/tftpboot#四大文件#initrd.img vmlinux(光盘内)#pxelinux.0 (安装syslinux)#pxelinux.cfg (手动创建文件夹)#创建default文件无人值守yum install system-config-kickstart -y图形化操作cd /var/ftp/vim /var/lib/tftpboot/pxelinux.cfg/default--------------------------------------------ks=ftp://192.168.102.131/ks.cfg-------------------------------------------------关闭防火墙  selinux开启服务systemctl start dhcpdsystemctl start tftpsystemctl start vsftpd

1.修改网卡

添加网卡仅主机模式

 

 

 

 

2.DHCP服务配置 

[root@localhost ~]# vim /etc/dhcp/dhcpd.conf

3.TFTP服务配置 

4.syslinux配置、ftp服务配置

[root@localhost pxelinux.cfg]# vim default#在这个目录下写default文件,这个文件不会写可以再开一个会话,到isolinux.cfg中来查看default auto#prompt 1#表示开机时需要鼠标点一下确认,这边把他注释掉了,不确认,直接安装label auto kernel vmlinuz append initrd=initrd.img method=ftp://192.168.102.131/centos7label linux text kernel vmlinuz append text initrd =initrd.img method=ftp://192.168.102.131/centos7label linux rescue kernel vmlinuz append rescue initrd=initrd.img method=ftp://192.168.100.131/centos7[root@localhost isolinux]# pwd/var/ftp/centos7/isolinux[root@localhost isolinux]# vim isolinux.cfg


5.关闭防火墙,selinux,起服务

6.Kickstart无人值守

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

回到终端,使用图形化工具 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

[root@localhost ~]#vim anaconda-ks.cfg #在桌面下的这个文件中,将一些软件包放刚刚只做完的ks.fg文件/var/lib/tftpboot/ks.cfg#粘贴到最后即可%packages@^gnome-desktop-environment@base@core@desktop-debugging@development@dial-up@directory-client@fonts@gnome-desktop@guest-agents@guest-desktop-agents@input-methods@internet-browser@java-platform@multimedia@network-file-system-client@networkmanager-submodules@print-client@x11chronykexec-tools%end

 

 7.测试

新建两台虚拟机用于测试,网络设置仅主机模式,内存设置为2G

 

 

 

 

等待片刻后就安装成功了 

四、总结

注:四个配置文件都要放在这个站点下

#/var/lib/tftpboot
#四大文件
#initrd.img vmlinux(光盘内)
#pxelinux.0 (安装syslinux)
#pxelinux.cfg (手动创建文件夹)
#创建default文件

安装过程:

  1. 分配给同一局域网内新加机器的地址(配置文件)

  2. tftp服务端开启

  3. 安装syslinux 取得 pxelinux.0 文件、和vsftpd服务

  4. 挂载安装源(mount /dev/sr0 /var/ftp/centos7)

  5. 将四大文件拷入 (/var/lib/tftpboot  initrd.img    pxelinux.0      pxelinux.cfg/default     vmlinuz

  6. 将服务开启,关闭防火墙,selinux