PXE批量高效网络装机

本文详细介绍了三种系统安装方式:u盘启动、光驱安装和PXE远程安装,涵盖了必备文件、安装过程、硬件条件、服务器配置和自动化工具如syslinux、TFTP、DHCP、kickstart和Cobbler的使用。
摘要由CSDN通过智能技术生成

一 系统装机的三种安装方式

1.u盘启动

2.光驱:CD   DVD  光盘

3.PXE 远程安装

   安装操作系统必备的四个文件:

pxelinux.0:

vmlinuz:

initrd.img:

pxelinux.cfg:

内核

驱动

grub配置文件(需手动配置):

网络引导:grub程序——syslinux(软件集合)

PXE:预安装操作系统的环境,通过网络来引导安装操作系统

允许客户机通过网络从远程服务器上下载引导镜像,并加载安装文件或者整个操作系统。

 pxe通过   网卡引导启动

PE:小型操作系统(在操作系统上安装操作系统)

initramfs:小型的linux操作系统

系统安装过程

  1. 加载boot loader

  2. 加载启动安装菜单

  3. 加载内核及initrd系统

  4. 加载根系统

  5. 运行anacondad的安装向导

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

boot.cat相当于grub的第一阶段
isolinux.bin光盘引导程序
isolinux.cfg
vesamenu.c32
memtest内存检测程序
splash.png
vmlinuz内核映像
initrd.img

pxe通过网卡引导启动 实现的硬件条件

1.BIOS支持

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

3.需要在bios中开启开关,服务器一般没打开(bmc界面里打开)

4.网络中有一台 DHCP 服务器以便为客户机自动分配地址、指定引导文件位置 网卡自带DHCP功能 dhcp 指明分配的ip地址

PXE 远程安装服务器集成了 CentOS 7 安装源、TFTP 服务、DHCP 服务,能 够向客户机裸机发送 PXE 引导程序、Linux 内核、启动菜单等数据,以及提供安装文件

TFTP:

(简单文件传输协议);内核和引导文件

是一种基于UDP协议实现的用于在客户机和服务器之间进行简单文件传输的协议,适合于小型文件传输的应用场合。TFTP服务默认由xinetd服务进行管理,使用UDP69端口。

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

 pxe优点

1.规模化:同时装配多台服务器

2.自动化:安装系统、配置各种服务

3.远程实现:不需要光盘、U盘等安装介质

PXE装机操作过程

  1. 分配给同一局域网内新加机器的地址(配置文件) dhcp 分配地址 指明tftp 服务器的地址

  2. tftp服务端开启 udp 配置 默认关闭

  3. 安装syslinux 取得 pxelinux.0 文件

  4. 安装vsftpd服务挂载软件安装源(mount /dev/sr0 /var/ftp/centos7)

  5. 将四大文件拷入 (/var/lib/tftpboot )

  • initrd.img 

  • pxelinux.0  

  • pxelinux.cfg/default  

  • vmlinuz

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

二 搭建 pxe远程安装服务器

服务器安装软件:

tftp-server作用:

简单文件传输协议;内核和引导文件

是一种基于UDP协议实现的用于在客户机和服务器之间进行简单文件传输的协议,适合于小型文件传输的应用场合。TFTP服务默认由xinetd服务进行管理,使用UDP69端口。

vsftpd:

安装系统镜像文件获取方式

syslinux:

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

dhcp:

DHCP是一个局域网的网络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码,同时也能配合DNS解析使用,让指定范围内的客户机能够自动获取解析域名的后缀。

[root@localhost ~]#yum install tftp-server vsftpd syslinux dhcp -y   安装三款软件
[root@localhost ~]#cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
cp:是否覆盖"/etc/dhcp/dhcpd.conf"? y    将配置文件模板复制到DHCP目录下
[root@localhost ~]#vim /etc/dhcp/dhcpd.conf
[root@localhost ~]#vim /etc/xinetd.d/tftp
[root@localhost ~]#cd /var/lib/tftpboot
[root@localhost tftpboot]#mount /dev/sr0 /mnt
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost tftpboot]#ls /mnt/isolinux/
boot.cat  grub.conf   isolinux.bin  memtest     TRANS.TBL     vmlinuz
boot.msg  initrd.img  isolinux.cfg  splash.png  vesamenu.c32 
[root@localhost tftpboot]#cp /mnt/isolinux/initrd.img /mnt/isolinux/vmlinuz   .  注意点
[root@localhost tftpboot]#rpm -ql syslinux | grep pxelinux.0
/usr/share/syslinux/gpxelinux.0
/usr/share/syslinux/pxelinux.0
[root@localhost tftpboot]#cp /usr/share/syslinux/pxelinux.0  .
[root@localhost tftpboot]#mkdir pxelinux.cfg
[root@localhost tftpboot]#cd pxelinux.cfg
[root@localhost pxelinux.cfg]#vim default
[root@localhost pxelinux.cfg]#cat default 
default linux
timeout 600


label linux
  kernel vmlinuz     
  append initrd=initrd.img   method=ftp://192.168.11.9/centos7

[root@localhost pxelinux.cfg]#cd ..
[root@localhost tftpboot]#ls
initrd.img  pxelinux.0  pxelinux.cfg  vmlinuz
[root@localhost tftpboot]#mkdir /var/ftp/centos7
[root@localhost tftpboot]#mount /dev/sr0 /var/ftp/centos7
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost tftpboot]#setenforce 0
setenforce: SELinux is disabled
[root@localhost tftpboot]#systemctl stop firewalld
[root@localhost tftpboot]#systemctl start tftp
[root@localhost tftpboot]#systemctl start vsftpd
[root@localhost tftpboot]#systemctl start dhcp.d


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

 [root@localhost ~]#vim /etc/xinetd.d/tftp

  配置文件重启之后进入另一台虚拟机进入BIOS菜单,内存大于2G

进入页面即为成功,基本实现了半自动化安装

三 kickstart 无人值守安装

[root@localhost ~]#yum install tftp-server   vsftpd   syslinux  dhcp   -y 

 

 

 

 

 在配置文件添加  ks =..cfg   [root@localhost pxelinux.cfg]#vim default 

重启敲指令虚拟机

登录界面测试是否成功

kickstart 实现了真正的全自动化。搭配PXE使用,实现一键批量装机。

#  安装 kickstart 服务程序
yum install  system-config-kickstart  -y
 
#  查看kickstart 形成的脚本
cat /var/ftp/ks.cfg   

kickstart 文件主要包括三个部分:命令段,程序段,脚本段

keyboard    设定键盘类型

lang    语言类型

zerombr    清除mbr

clearpart    清除分区

part    创建分区

rootpw    指明root的密码

timezone    时区

text    文本安装界面

network    指定网络设置

firewall    设置防火墙设置

selinux    设置selinux设置

reboot    安装完自动重启

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

url      指明安装源

四 cobbler 部署

1 在cobbler之前,微软曾开发过另一项类似的基于C/S工作模式的技术PXE(Prebot eXecute Environment,预启动执行环境),其支持通过网络启动操作系统,亦可以让需要安装系统的带支持PEX技术网卡的裸机通过网络从http服务器下载映像来安装,

在启动过程中,客户端需要从dhcp服务器得到IP地址、掩码、网关以及相关的配置文件路径,再用TFTP(trivial file transfer protocol)协议从服务器下载一个引导启动的软件包(类似linux光盘的isolinux文件夹下的文件)并加载到本机内存中执行,经过启动软件包中配置文件指定的ks应答文件指明服务器中的操作系统位置,进而找到安装源,并在ks文件的指导下完成操作系统的安装。
2 实质是PXE的二次封装,将多种安装参数封装到一起,并提供统一的管理方法。

Cobbler属于C/S模型,是一款Linux生态的自动化运维工具,用于自动化批量部署安装操作系统;其提供基于CLI的管理方式和WEB配置界面

3  主要用于快速网络安装linux操作系统,支持众多的Linux发行版如:Red Hat、Fedora、                  CentOS、Debian、Ubuntu和SuSE等。

一句话概括:Cobbler实质是PXE的二次封装,将多种安装参数封装到一起,并提供统一的管理方法

Cobbler的工作原理

  1. client裸机配置了从网络启动后,开机后会广播包请求DHCP服务器发送其分配好的一个IP
  2. DHCP服务器收到请求后发送responese,包括其ip地址
  3. client裸机拿到ip后再向cobbler server发送请求OS引导文件的请求
  4. cobbler server告诉裸机OS引导文件的名字和TFTP server的ip和port
  5. client裸机通过上面告知的TFTP server地址通信,下载引导文件
  6. client裸机执行执行该引导文件,确定加载信息,选择要安装的os,期间会再向cobbler server请求kickstart文件和os image
  7. cobbler server发送请求的kickstart和os iamge
  8. client裸机加载kickstart文件
  9. client裸机接收os image,安装该os image

cobbler安装之前要先部署PXE配置

yum install epel-release.noarch  -y    #安装yum额外源

yum install cobbler dhcp -y    #安装软件包

systemctl enable  --now cobblerd httpd tftp dhcpd    #开启服务

cobbler check    #查看Cobbler服务器的配置

openssl passwd -1 "123456"    #生成一个加密密码

vim /etc/cobbler/settings    #编辑配置文件
101  default_password_crypted: "$1$sfAXRcPG$4Q2ko.mlKbf6Fx5J9Cg4H/"
242   manage_dhcp: 1
278  next_server: 192.168.10.11
298  pxe_just_once: 1
390  server: 192.168.10.11
#101行:将密码替换成生成的加密密码
#242行:将值改为1,表示通过cobbler工具生成dhcp.conf配置文件
#278行:地址改成自己的ip地址
#298行:将值改为1,表示如果客户端有系统,则该工具不生效,防止重复安装系统
#390行:地址改成自己的ip地址

vim /etc/cobbler/dhcp.template    #编辑配置文件
21 subnet 192.168.11.0 netmask 255.255.255.0 {
 22      option routers             192.168.11.2;
 23      option domain-name-servers 8.8.8.8;
 24      option subnet-mask         255.255.255.0;
 25      range dynamic-bootp        192.168.11.10 192.168.11.80;
#修改内容跟dhcp服务配置文件一致

cobbler sync    #同步生成的配置文件

systemctl restart cobblerd.service    #开启服务

tree /var/lib/tftpboot/    #查看给目录下生成的文件

mount /dev/sr0 /mnt    #挂载

cobbler import --name=centos-7-x86_64 --path=/mnt --arch=x86_64    #将/mnt目录下的所有文件,复制到固定目录/var/www/cobbler/ks_mirror/,文件名为centos-7.7-x86_64

重启一下  systemctl restart cobbler 

du -sh /var/www/cobbler/ks_mirror/*    #实时查看该目录下文件的大小

#客户机以网络方式启动,进入显示界面,选择之前复制的文件名centos-7-x86_64

 

 五 装屌渣天的逼

yum -y install epel-release

yum install -y linux_logo

root@localhost ~]#  linux_logo

2  oot@localhost ~]#  linux_logo   -L   6


 3 [root@localhost ~]#  linux_logo   -L   14

 4 [root@localhost ~]#  linux_logo   -L   16

curl   http://wttr.in    此网站进行在屏幕上面显示天气情况

 6 cal    此命令以日历表的方式显示日期

7  要先安装额外元

yum install epel-release.noarch -y      额外源

yum install pssh -y

小火车

[root@centos7 ~]#yum -y install epel-release
[root@centos7 ~]#yum -y install sl
[root@centos7 ~]#sl -a
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值