linux如何网络装机(批量装机环境 、 配置PXE引导 、 kickstart自动应答,Cobbler装机平台)
一、 网络装机服务器简介
• 规模化:同时装配多台主机
• 自动化:装系统、配置各种服务
• 远程实现:不需要光盘、U盘等物理安装介质
计算机启动项(计算机启动时从什么地方寻找操作系统)
1.本地的硬盘
2.本机所有的USB接口
3.本机的光驱设备
4.网卡设备进行广播
配置PXE引导
• PXE,Pre-boot eXecution Environment
• 预启动执行环境,在操作系统之前运行
• 可用于远程安装
• 工作模式
• PXE client 集成在网卡的启动芯片中
• 当计算机引导时,从网卡芯片中把PXE client调入内存执行,获取PXE server配置、显示菜单,根据用户选择将远程引导程序下载到本机运行
• 网络装机服务器:
DHCP服务,分配IP地址、定位引导程序
TFTP服务,提供引导程序下载
HTTP服务(或FTP/NFS),提供yum安装源
构建DHCP服务器
一个网络中只能有一台DHCP服务器
1.安装软件包
[root@svr7 /]# yum -y install dhcp
2.修改配置文件
[root@svr7 /]# vim /etc/dhcp/dhcpd.conf
末行模式下 :r /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;
}
[root@svr7 /]# systemctl restart dhcpd
一、 配置DHCP服务
[root@svr7 /]# vim /etc/dhcp/dhcpd.conf
此处省略一万字……
next-server 192.168.4.7; #下一个服务器的IP地址
filename "pxelinux.0"; #指明网卡引导文件名称
}
[root@svr7 /]# systemctl restart dhcpd
pxelinux.0:网卡引导文件(网络装机说明书)
二进制文件,安装一个软件可以获得该文件
二、 配置tftp服务,传输众多的引导文件
tftp:简单的文件传输协议 默认端口:69
tftp默认共享的主目录:/var/lib/tftpboot
安装软件
[root@svr7 /]# yum -y install tftp-server [root@svr7 /]# systemctl restart tftp
三、部署pxelinux.0文件
]# yum provides */pxelinux.0 #查询哪个包产生该文件 ]# yum -y install syslinux #安装syslinux软件包 ]# rpm -ql syslinux | grep pxelinux.0 #查询软件包安装清单 ]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ ]# ls /var/lib/tftpboot/ pxelinux.0
总结思路:
1. DHCP服务: IP地址、next-server、filename pxelinux.0
2. tftp服务: pxelinux.0
3. pxelinux.0:/var/lib/tftpboot/pxelinux.cfg/default(默认菜单文件)
四、部署菜单文件(将光盘中的菜单文件进行复制)
[root@svr7 /]# ls /mydvd/isolinux/ #查看光盘内容 [root@svr7 /]# mkdir /var/lib/tftpboot/pxelinux.cfg [root@svr7 /]# ls /var/lib/tftpboot/ [root@svr7 /]# cp /mydvd/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default [root@svr7 /]# ls /var/lib/tftpboot/pxelinux.cfg/
五、部署图形模块(vesamenu.c32)与背景图片(splash.png)
[root@svr7 /]# cp /mydvd/isolinux/vesamenu.c32 /mydvd/isolinux/splash.png /var/lib/tftpboot/ [root@svr7 /]# ls /var/lib/tftpboot/ pxelinux.0 splash.png pxelinux.cfg vesamenu.c32
六、部署启动内核(vmlinuz)与驱动程序(initrd.img)
[root@svr7 /]# cp /mydvd/isolinux/vmlinuz /mydvd/isolinux/initrd.img /var/lib/tftpboot/ [root@svr7 /]# ls /var/lib/tftpboot/
initrd.img(驱动程序)
pxelinux.cfg(菜单文件存放目录)
vesamenu.c32(图形模块)
pxelinux.0(网卡引导文件)
splash.png(背景图片)
vmlinuz(启动内核)
u 修改菜单文件内容
[root@svr7 /]# 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 NSD PXE Server #菜单界面的标题
此处省略一万字……..
61 label linux
62 menu label ^Install CentOS 7 #界面显示内容
63 menu default #读秒结束后默认的选项
64 kernel vmlinuz #加载内核
65 append initrd=initrd.img #加载驱动程序
以下全部删除
总结思路:
1. DHCP服务: IP地址、next-server、filename pxelinux.0
2. tftp服务: pxelinux.0
3. pxelinux.0: /var/lib/tftpboot/pxelinux.cfg/default(默认菜单文件)
4. default: 图形模块、背景图片、内核、驱动程序…..
构建FTP服务,提供光盘内容
FTP:文件传输协议 默认端口:21
默认共享数据的主目录:/var/ftp
1.安装软件包
[root@svr7 /]# yum -y install vsftpd [root@svr7 /]# systemctl restart vsftpd
2.建立挂载点
[root@svr7 /]# mkdir /var/ftp/centos [root@svr7 /]# mount /dev/cdrom /var/ftp/centos mount: /dev/sr0 写保护,将以只读方式挂载 [root@svr7 /]# ls /var/ftp/centos
3.测试
[root@svr7 /]# curl ftp://192.168.4.7/centos/
kickstart自动应答
实现无人值守安装,生成应答文件
安装system-config-kickstart图形的工具(不能远程SSH)
]# yum -y install system-config-kickstart
]# system-config-kickstart #运行
system-config-kickstart程序需要Yum仓库的支持才能显示软件包的选择,必须要求Yum仓库的标识为[development]
[root@svr7 /]# vim /etc/yum.repos.d/mydvd.repo
[development]
name=centos7
baseurl=file:///mydvd
enabled=1
gpgcheck=0
[root@svr7 /]# system-config-kickstart
首先查看“软件包选择”是否可用
—运行图形的工具system-config-kickstart 进行选择
[root@svr7 ~]# system-config-kickstart
ftp://192.168.4.7/centos
重新划分新的分区
[root@svr7 /]# ls /root/ks.cfg /root/ks.cfg [root@svr7 /]# vim /root/ks.cfg
2.利用FTP服务共享应答文件
[root@svr7 /]# cp /root/ks.cfg /var/ftp/ [root@svr7 /]# ls /var/ftp/ centos ks.cfg pub [root@svr7 /]# [root@svr7 ~]# curl ftp://192.168.4.7/ks.cfg
3.修改菜单文件,指定应答文件获取方式
[root@svr7 /]# vim /var/lib/tftpboot/pxelinux.cfg/default ……..此处省略一万字
label linux
menu label ^Install CentOS 7
menu default
kernel vmlinuz
append initrd=initrd.img ks=ftp://192.168.4.7/ks.cfg
总结测试注意事项:
1.dhcp主配置文件书写内容
[root@svr7 ~]# vim /etc/dhcp/dhcpd.conf
…………
next-server 192.168.4.7;
filename "pxelinux.0";
}
2.菜单文件名称以及路径
[root@svr7 ~]# ls /var/lib/tftpboot/pxelinux.cfg/
default
3.tftp提供是否有6样内容
[root@svr7 ~]# ls /var/lib/tftpboot/
initrd.img pxelinux.cfg vesamenu.c32
pxelinux.0 splash.png vmlinuz
4.检查光盘内容是否存在
[root@svr7 ~]# ls /var/ftp/centos/
CentOS_BuildTag LiveOS
EFI Packages
EULA repodata
GPL RPM-GPG-KEY-CentOS-7
images RPM-GPG-KEY-CentOS-Testing-7
isolinux TRANS.TBL
5.检查菜单文件所指定的应答文件是否存在
[root@svr7 ~]# ls /var/ftp/ centos ks.cfg pub [root@svr7 ~]#
6.检查菜单文件关于应答文件的指定
[root@svr7 ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
……..
append initrd=initrd.img ks=ftp://192.168.4.7/ks.cfg
7.所有相关服务启动
[root@svr7 ~]# systemctl restart dhcpd [root@svr7 ~]# systemctl restart tftp [root@svr7 ~]# systemctl restart vsftpd
8.关闭防火墙与SELinux
[root@svr7 ~]# setenforce 0 [root@svr7 ~]# getenforce Permissive [root@svr7 ~]# systemctl stop firewalld [root@svr7 ~]# systemctl disable firewalld [root@svr7 ~]#
9.测试虚拟机内存必须是2G以上
初步测试:KVM虚拟机
1.新建虚拟机
总结思路:
1.dhcp服务---》IP地址、next-server、filename "pxelinux.0"
2.tftp服务---》 "pxelinux.0"
3.pxelinux.0---》读取菜单文件/var/lib/tftpboot/pxelinux.cfg/default
4.default---》vesamenu.c32、读秒时间、vmlinuz、initrd.img、ftp://192.168.4.7/ks.cfg
5.ks.cfg应答文件---》语言、键盘类型、分区、安装方式url --url="ftp://192.168.4.7/centos"
在虚拟机B构建网络装机时,关闭虚拟机A的DHCP服务,避免冲突
over