· 批量装机环境
· 配置PXE引导
· kickstart自动应答
· Cobbler装机平台
构建DHCP服务器
· Dynamic Host Configuration Protocol
- 动态主机配置协议,由IETF(Internet 网络工程师任务小组)组织制定,用来简化主机地址分配管理
· 主要分配以下入网参数
- IP地址/子网掩码/广播地址
- 默认网关地址、DNS服务器地址
· DHCP地址分配的四次会话(以广播的新式进行,先到先得)
DISCOVERY(客户端发起请求给DHCP服务器)–>OFFER(DHCP服务器发给客户端IP地址)–>REQUEST(客户端回应给DHCP服务器)–>ACK(DHCP的最终确认)
- 一个网络中只能有一台DHCP服务器,如果由多台DHCP服务器会可能会导致DHCP分配的IP地址发生冲突
1. 装包
yum -y install dhcp
2. 修改配置文件
vim /etc/dhcp/dhcpd.conf
将光标移动到最后一行,末行模式下
:r /usr/share/doc/dhcp*/dhcpd.conf.example 将文件/usr/share/doc/dhcp*/dhcpd.conf.example内容导入打开的文本文件中
subnet 192.168.4.0 netmask 255.255.255.0 { # 分配网段
range 192.168.4.100 192.168.4.200; # 分配IP地址范围
option domain-name-servers 192.168.4.7; # 分配DNS
option routers 192.168.4.254; # 分配网关地址
default-lease-time 600;
max-lease-time 7200;
}
3. 启动服务
systemctl restart dhcpd
- DHCP初始化配置文件内容
网络装机服务器简介
· 规模化 : 同时装备多台主机
· 自动化 : 装系统、配置各种服务
· 远程实现 : 不需要光盘、U盘等物理安装介质
什么是PXE网络
· PXE,Pre-boot eXecution Environment
- 预启动执行环境,在操作系统之前运行
- 可用于远程安装
· 工作模式
- PXE client 集成在网卡的启动芯片中
- 当计算机引导时,从网卡芯片中把PXE client调入内存执行,获取PXE server配置、显示菜单,根据用户选择将远程引导程序下载到本机运行
· 网络装机服务器 :
- DHCP服务,分配IP地址、定位引导程序
- TFTP服务,提供引导程序下载
- HTTP服务(或FTP/NFS),提供yum安装源
· PXE 组件及过程分析
批量装机思路
- 1. dhcp服务: IP地址、next-server、filename pxelinux.0 # 给客户端一个IP地址,告诉客户端去tftp服务找pxelinux.0文件
- 2. tftp服务: pxelinux.0 # tftp服务提供pxelinux.0文件
- 3. pxelinux.0 : /var/lib/tftpboot/pxelinux.cfg/default(菜单文件) # pxelinux.0文件指引客户端读取菜单文件
- 4. default : 图形模块、背景图片、内核、驱动程序、指定应答文件路径...
ftp://192.168.4.7/ks.cfg
- 5. ks.cfg应答文件 : 语言、键盘类型、分区、安装方式url--
url = ftp://192.168.4.7/centos 安装操作系统
1. 配置DHCP服务
修改DHCP配置文件
vim /etc/dhcp/dhcpd.conf
subnet 192.168.4.0 netmask 255.255.255.0 { # 分配网段
range 192.168.4.100 192.168.4.200; # 分配IP地址范围
option domain-name-servers 192.168.4.7; # 分配DNS
option routers 192.168.4.254; # 分配网关地址
default-lease-time 600;
max-lease-time 7200;
next-server 192.168.4.7; # 下一个服务器的IP地址
filename "pxelinux.0"; # 指明网卡引导文件名称
}
pxelinux.0 : 网卡引导文件(网络装机说明书),一个二进制文件,安装一个软件可以获得
启动DHCP服务
systemctl restart dhcpd
2. 配置tftp服务(传输众多的引导文件)
- tftp :简单的文件传输协议 默认端口:69
- tftp :默认共享的主目录:
/var/lib/tftpboot
1. 安装软件
yum -y install tftp-server
2. 无需配置,直接启动服务
systemctl restart tftp
3. 部署pxelinux.0文件
yum provides */pxelinux.0 查询哪个包产生pxelinux.0文件
# Filename : /usr/share/syslinux/pxelinux.0
# Filename : /var/lib/tftpboot/pxelinux.0
yum -y install syslinux 安装syslinux软件包
rpm -ql syslinux | grep pxelinux.0 查询软件包安装清单
# /usr/share/syslinux/gpxelinux.0
# /usr/share/syslinux/pxelinux.0
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ 将光盘文件复制到默认共享的主目录
ls /var/lib/tftpboot/
# pxelinux.0
2.1 部署菜单文件(将光盘的菜单文件进行复制)
ls /mydvd/isolinux
# boot.cat grub.conf isolinux.bin memtest TRANS.TBL vmlinuz
# boot.msg initrd.img isolinux.cfg splash.png vesamenu.c32
mkdir /var/lib/tftpboot/pxelinux.cfg
ls /var/lib/tftpboot/
# pxelinux.0 pxelinux.cfg
cp /mydvd/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default 将光盘文件复制并改名成default
ls /var/lib/tftpboot/pxelinux.cfg/
# default
2.2 部署图形模块(vesamenu.c32)与背景图片(splash.png)
cp /mydvd/isolinux/vesamenu.c32 /mydvd/isolinux/splash.png /var/lib/tftpboot 将两个光盘文件复制到默认共享目录
ls /var/lib/tftpboot/
# pxelinux.0 pxelinux.cfg splash.png vesamenu.c32
2.3 部署启动内核(vmlinuz)与驱动程序(initrd.img)
cp /mydvd/isolinux/vmlinuz /mydvd/isolinux/initrd.img /var/lib/tftpboot/ 将两个光盘文件复制到默认共享目录
ls /var/lib/tftpboot/
initrd.img pxelinux.0 pxelinux.cfg splash.png vesamenu.c32 vmlinuz
2.4 修改菜单文件内容
vim /var/lib/tftpboot/pxelinux.cfg/default
:set nu 显示行号
1 default vesamenu.c32 默认加载运行图形模块
2 timeout 600 读秒时间60秒,1/10秒
10 menu background splash.png 背景图片
11 menu title PXE 1996 菜单界面的标题(改名成PXE 1996)
61 label linux 菜单的选择
62 menu label ^Install CentOS 7 界面显示内容CentOS 7系统
menu default (在第62行后新增一行)读秒结束后默认的选择
63 kernel vmlinuz 加载内核
64 append initrd=initrd.img ks=ftp://192.168.4.7/ks.cfg
# 加载驱动 访问该服务器的ftp,将会获得一个ks.cfg文件(指定应答文件的获取方式)
我们本次测试只需要安装CentOS 7系统,把65行以下的其他选择全部删除即可
我们本次装机是通过网络实现的,第64行后面部分 inst.stage2=hd:LABEL=CentOS\x207\ x20x86_64 quiet 这些是光盘安装系统才会需要的,我们直接删除即可
2.5 初步测试
1. 重启dhcp服务和tftp服务
systemctl restart dhcpd
systemctl restart tftp
2. 关闭虚拟机本身的DHCP服务(防止虚拟机的dhcp服务器跟我们搭建的dhcp服务器产生冲突)
3. 新建一台没有操作系统的虚拟机,内存2G,网络类型选项vmnet1
内存不设置2G,网络装机有可能会装不上去
网络类型选项vmnet1(仅主机模式),虚拟机A的网络类型也是vmnet1(仅主机模式),这样设置主要是为了跟虚拟机A进行连接
-
新建测试虚拟机的基本配置
-
启动虚拟机菜单页面显示
如果界面有问题,那么我们排错思路:
1. 查看DHCP服务配置文件
filename "pxelinux.0"
2. 查看/var/lib/tftpboot目录内容
ls /var/lib/tftpboot/
# initrd.img pxelinux.0 pxelinux.cfg splash.png vesamenu.c32 vmlinuz
3. 菜单文件名称
ls /var/lib/tftpboot/pxelinux.cfg/
# default
构建FTP服务(提供光盘内容)
- FTP: 文件传输协议 默认端口:21
- 默认共享数据的主目录 :
/var/ftp
1. 安装软件包
yum -y install vsftpd
systemctl restart vsftpd
2. 建立挂载点
mkdir /var/ftp/centos
mount /dev/cdrom /var/ftp/centos
ls /var/ftp/centos
3. 测试
curl ftp://192.168.4.7/centos/
环境处理
- 如果我们的Xshell一直启动不了图形界面,需要在电脑上先安装Xmanager;
- Xshell 7连接Xmanager 7需要处理软件之间的依赖关系,需要先在虚拟机安装
xorg-x11-xauth
yum -y install xorg-x11-xauth
- centos7中的kickstart需要使用自己的包仓库(否则在配置程序时,无法加载软件包选择),这时我们只需要在/etc/yum.repo.d/目录下编辑一个名叫develop的仓库
vim /etc/yum.repos.d/development.repo
[development]
name=development
baseurl=file:///mydvd # 必须是yum仓库的挂载点
gpgcheck=0
3. 实现无人值守安装,生成应答文件
- 安装system-config-kickstart图形工具
yum -y install system-config-kickstart
system-config-kickstart 运行图形工具
- 配置步骤
- 将生成应答文件保存到执行文件目录中
我们将文件保存到root目录下,查看目录内容
ls /root
# anaconda-ks.cfg ks.cfg
cp /root/ks.cfg /var/ftp/ 将应答文件保存到ftp的执行文件目录中
ls /var/ftp/
# centos ks.cfg pub
测试
- 启动一台没有装操作系统的虚拟机,可以实现自动装机