一、前言:
1.系统装机的三种引导方式:
1.硬盘
2.光驱(u盘)
3.网络启动 pxe
2.系统安装过程:
-
加载boot loader
-
Boot Loader 是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境
-
加载启动安装菜单
-
加载内核和initrd系统(文件才能使用文件)
-
加载根系统()
-
运行anaconda的安装向导
3.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系统,文件系统驱动等)
二、PXE的概述:
PXE,即Pre-boot Execution Environment,即预引导执行环境,通过PXE,可以实现网络引导与安装操作系统。
PXE是由Inter 公司开发的网络引导技术,工作在Client / Server 模式。允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或者整个操作系统。
pxe是通过网卡引导启动
PXE 优点:
规模化:同时装配多台服务器
自动化:安装系统,配置各种服务都可以交给机器进行
远程实现:不需要光盘,U盘等安装介质
PXE特点:
PXE严格来说并不是一种安装方式,而是一种引导方式。
协议分为 client 和 server 端
运行 PXE 协议需要设置 DHCP 服务器 和 TFTP 服务器。
三、PXE实现:
1.进行PXE装机的前提条件:
- 客户机:
客户机的网卡要支持PXE协议(集成BOOTROM芯片)
主板支持网络引导。有一些需在BIOS设置中允许从 Network 或 LAN 启动即可
- 服务端:
DHCP 服务器 :为客户机自动分配地址、指定引导文件位置。
服务器要开启 TFTP服务(简单文件传输协议):用来提供系统内核和引导镜像文件的下载。
服务器中使用FTP服务(或http/nfs)font> :提供yum安装源
安装软件包syslinux :提供PXE引导程序
2.实现过程讲解:
1.网卡需要查找相关的dhcp服务器(获取地址时间)
2.找到后dhcp服务器提供ip地址,和引导程序(boot loader)的地址 还提供给客户机TFTPserver地址(dhcp本身不提供tftp服务)
3.网卡使用tftp客户端吧引导程序加载到内存中来
4.bios执行引导程序
5.引导程序会去TFTP去查找配置文件
6.根据配置文件去引导安装系统
7.系统安装过程
3.搭建过程中服务详解:
PXE 远程安装服务器集成了 CentOS 7 安装源、TFTP 服务、DHCP 服务,能 够向客户机裸机发送 PXE 引导程序、Linux 内核、启动菜单等数据,以及提供安装文件。
3.1TFTP(简单文件传输协议):内核和引导文件
是一种基于UDP协议实现的用于在客户机和服务器之间进行简单文件传输的协议,适合于小型文件传输的应用场合。TFTP服务默认由xinetd服务进行管理,使用UDP69端口。
3.2 vsftp:安装系统镜像文件获取方式
可以使用http ftp等方式,ftp文件传输的一种。
3.3 syslinux
syslinux是一个功能强大的引导加载程序,而且兼容各种介质。它的目的是简化首次安装Linux的时间,并建立修护或其它特殊用途的启动盘。它的安装很简单,一旦安装syslinux好之后,sysLinux启动盘就可以引导各种基于DOS的工具,以及MS-DOS/Windows或者任何其它操作系统。
pxelinux.0 启动pxe pxe可以支持
3.4 DHCP服务
DHCP是一个局域网的网络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码,同时也能配合DNS解析使用,让指定范围内的客户机能够自动获取解析域名的后缀。
4.四大文件:
搭建过程所需要的四大文件:
- pxelinux.0:引导程序。(来自syslinux程序)
- pxelinux.cfg :存放default:引导程序的配置文件。(需要手写,可参考光盘 isolinux 目录下的 isolinux.cfg 文件)
- vmlinuz:内核文件。(从光盘中获取,位于 isolinux 目录下)
- initrd.img: 系统启动镜像文件。(从光盘中获取,位于 isolinux 目录下)
5.PXE搭建过程:
1.安装所需的软件包:
yum install dhcp vsftpd tftp-server.x86_64 syslinux -y
2.配置文件模板在此目录下
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
3.配置dhcp文件:
vim /etc/dhcp/dhcpd.conf
并开启服务:
systemctl start dhcpd
4.修改 tftp 服务配置文件 :
vim /etc/xinetd.d/tftp
改成no
5.挂载光盘,拷贝文件
6.新建文件夹,写配置文件:
mkdir pxelinux.cfg
vim pxelinux.cfg/default
default linux
timeout 600label linux
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.62.66/centos7
7.配置vsftpd服务,关闭防护和防火墙,开启服务
在/var/ftp/下新建一个目录,并将光盘挂载到该目录下,供客户端下载
8.到这里已经实现了半自动化安装
再安装一个kickstart程序,实现全自动化安装
9.在虚拟机内的 Kickstart 进行配置
保存到ftp:
11.写入配置中
12.新建虚拟机进入急救模式
加载完成
可以登陆
四、kickstart 无人值守安装:
kickstart文件主要包括三个部分:命令段,程序包段,脚本段
命令段:指明各种安装前配置,如键盘类型等
命令段中的常见命令:
keyboard: 设定键盘类型
lang: 语言类型
zerombr:清除mbr
clearpart:清除分区
part: 创建分区
rootpw: 指明root的密码
timezone: 时区
text: 文本安装界面
network:指定网络设置
firewall:设置防火墙设置
selinux:设置selinux设置
reboot:安装完自动重启
user:安装完成后为系统创建新用户
url: 指明安装源
程序包段:指明要安装的程序包组或程序包,不安装的程序包等
%packages
@^environment group: 指定环境包组,如:@^minimal-environment
@group_name
package
-package
%end
脚本段:
%pre: 安装前脚本
%post: 安装后脚本
# 安装 kickstart 服务程序 yum install system-config-kickstart -y # 查看kickstart 形成的脚本 cat /var/ftp/ks.cfg
五、Cobbler的工作原理:
1.Cobbler简介:
- Cobbler是一个Linux服务器安装的服务,可以通过网络启动(PXE)的方式来快速安装、重装物理服务器和虚拟机,同时还可以管理DHCP,DNS等。
- Cobbler可以使用命令行方式管理,也提供了基于Web的界面管理工具(cobbler-web),还提供了API接口,可以方便二次开发使用。
- Cobbler是较早前的kickstart的升级版,优点是比较容易配置,还自带web界面比较易于管
- Cobbler内置了一个轻量级配置管理系统,但它也支持和其它配置管理系统集成,如Puppet,暂时不支持SaltStack。
2.cobbler集成的服务:
PXE服务支持。
DHCP服务管理。
DNS服务管理(可选bind,dnsmasq)
电源管理
Kickstart服务支持
YUM仓库管理
TFTP(PXE启动时需要)
Apache(提供kickstart的安装源,并提供定制化的kickstart配置)
3.cobbler工作原理:
- client裸机配置了从网络启动后,开机后会广播包请求DHCP服务器(cobbler server)发送其分配好的一个IP
- DHCP服务器(cobbler server)收到请求后发送responese,包括其ip地址
- client裸机拿到ip后再向cobbler server发送请求OS引导文件的请求
- cobbler server告诉裸机OS引导文件的名字和TFTP server的ip和port
- client裸机通过上面告知的TFTP server地址通信,下载引导文件
- client裸机执行执行该引导文件,确定加载信息,选择要安装的os,期间会再向cobbler server请求kickstart文件和os image
- cobbler server发送请求的kickstart和os iamge
- client裸机加载kickstart文件
- client裸机接收os image,安装该os image