目录
1)安装tftp-server,vsftp,syslinux,dhcp软件
5)在vsftpd文件的家目录新建文件夹,并将光驱挂载到新文件夹上
6)将四大文件中的两个文件从/var/ftp/centos7/image/pxeboot中拷贝到站点文件加中
8)检查是否关闭防火墙和selinux,没有的话将其关闭,并开启dhcpd服务、tfpt服务、vsftp服务
3、设置好之后,修改配置文件/var/lib/tftpboot/pxelinux.cfg/default
4、可选择较low的图形界面选择安装的系统,也可以不选择,直接安装
6)修改通过cobbler服务生成dhcp.conf配置文件的dhcp的模板文件
一、pxe
PXE 的全称是 preboot execute environment,它其实是Intel在很久以前提出来的一项用于通过网络来引导系统的标准。允许客户机通过网络从远程服务器上下载引导镜像,并加载安装文件或者整个操作系统。
pxe是通过网卡引导启动
pxe批量装机需要四大件:(缺一不可)
- initrd.img(驱动)
- vmlinuz(内核)
- pxelinux.cfg/default(引导文件)
- pxelinux.0(小型的grub程序)
1、pxe批量装机原理
1)网卡需要查找相关的dhcp服务器(获取地址时间)
2)找到后dhcp服务器提供ip地址,和引导程序(boot loader)的地址 还提供给客户机TFTPserver地址(dhcp本身不提供tftp服务)
3)网卡使用tftp客户端吧引导程序加载到内存中来
4)bios执行引导程序
5)引导程序会去TFTP去查找配置文件
6)根据配置文件去引导安装系统
7)系统安装过程
2、手动批量安装
步骤如下:
1)安装tftp-server,vsftp,syslinux,dhcp软件
[root@heitui ~]#yum install tftp-server vsftpd syslinux dhcp -y
2)配置dhcp服务
[root@heitui ~]#cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
cp:是否覆盖"/etc/dhcp/dhcpd.conf"? y# 将模板拷贝到dhcpd.conf文件中
[root@heitui ~]#vim /etc/dhcp/dhcpd.conf # 编辑dhcp配置文件
3)修改tftp配置文件
[root@heitui ~]#rpm -ql tftp-server # 查找tftp服务相关的文件
[root@heitui ~]#vim /etc/xinetd.d/tftp # 修改tftp配置文件
4) 将pxelinux.0文件拷贝到站点文件里
[root@heitui ~]#rpm -ql syslinux | grep "pxelinux.0" # 查找pxelinux.0文件
[root@heitui ~]#cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ # 拷贝pxelinus.0到站点文件
5)在vsftpd文件的家目录新建文件夹,并将光驱挂载到新文件夹上
[root@heitui ~]#cd /var/ftp/
[root@heitui ftp]#mkdir centos7
[root@heitui ftp]#mount /dev/sr0 centos7/
6)将四大文件中的两个文件从/var/ftp/centos7/image/pxeboot中拷贝到站点文件加中
[root@heitui ~]#cd /var/ftp/centos7/images/pxeboot #切换到目标目录下
[root@heitui pxeboot]#cp initrd.img /var/lib/tftpboot/ #拷贝initrd.img至站点文件夹下
[root@heitui pxeboot]#cp vmlinuz /var/lib/tftpboot/ #拷贝vmlinuz至站点文件夹下
7)手动创建第四大文件,在站点文件夹下
[root@heitui pxeboot]#cd /var/lib/tftpboot/
[root@heitui tftpboot]#mkdir pxelinux.cfg[root@heitui tftpboot]#cd pxelinux.cfg/
[root@heitui pxelinux.cfg]#vim defaultdefault heitui
timeout 600label heitui
kernel vmlinuz
append initrd=initrd.img
method=ftp://192.168.3.100/centos7label test
kernel vmlinuz
append test initrd=initrd.img
method=ftp://192.168.3.100/centos7label recuse
kernel vmlinuz
append recuse initrd=initrd.img
method=ftp://192.168.3.100/centos7
8)检查是否关闭防火墙和selinux,没有的话将其关闭,并开启dhcpd服务、tfpt服务、vsftp服务
[root@heitui pxelinux.cfg]#systemctl status firewalld.service #查看防火墙的状态
[root@heitui pxelinux.cfg]#getenforce # 查看selinux的状态
[root@heitui pxelinux.cfg]#systemctl start dhcpd # 开启dhcpd服务
[root@heitui pxelinux.cfg]#systemctl start tftp # 开启tftp服务
[root@heitui pxelinux.cfg]#systemctl start vsftpd # 开启vsftp服务
9)新建一个机器进行测试(此处使用虚拟机进行演示)
新建虚拟机的设置
然后直接开启虚拟机
启动后会自动获取IP地址,然后静静等待
二、kickstart 无人值守安装
在上述操作的基础上继续做无人值守安装
以下步骤中,步骤4可以忽略不做
1、安装kickstart软件
[root@heitui tftpboot]#yum install system-config-kickstart -y
2、在虚拟机上使用图形化界面设置,初始化后的安装设置
1)使用kickstar工具设置基本配置
2)安装方法
3)引导文件
4) 分区,boot分区4G,swap分区4G,根(/)分区剩下所有空间
5)网络配置
6)防火墙与selinux设置
7)显示配置,安装字符界面
8)安装后脚本
9)保存操作,及保存位置/etc/ftp/ks.cfg
3、设置好之后,修改配置文件/var/lib/tftpboot/pxelinux.cfg/default
[root@heitui pxelinux.cfg]#vim default
ks=ftp://192.168.3.100/ks.cfg
4、可选择较low的图形界面选择安装的系统,也可以不选择,直接安装
这里展示使用的
1)将/usr/share/syslinux/下的menu.c32拷贝到/var/lib/tftpboot/站点文件夹下
[root@heitui tftpboot]#cp /usr/share/syslinux/menu.c32 .
2)然后修改default
5、客户机测试
上面的4可以不做,不做4,不会出现上图的界面,直接开机安装,需要等好久之后
三、cobbler的使用
1、cobbler工作原理
1)client裸机配置了从网络启动后,开机后会广播包请求DHCP服务器(cobbler server)发送其分配好的一个IP
2)DHCP服务器(cobbler server)收到请求后发送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
2、实际操作
1)安装相关包并启动服务
[root@heitui ~]#yum install epel-release.noarch -y # 安装epel源
[root@heitui ~]#yum install -y cobbler dhcp httpd tftp -y # 安装相关软件
[root@heitui ~]#systemctl start cobblerd httpd tftp #启动软件,其中dhcp最后启动
2)cobbler检查系统环境
[root@heitui ~]#cobbler check
3)生成root的新密码
[root@heitui ~]#openssl passwd -1 '123123'
4)修改cobbler的配置文件
[root@heitui ~]#vim /etc/cobbler/settings # 修改配置文件
# 将生成的root密码的密文填入101行
101行 default_password_crypted: "$1$JewpB912$A8NrV3.3AKrHGjsuy1REn/"
# 将242行的0改成1,表示通过cobbler生成dhcpd.conf的配置文件
242行 manage_dhcp: 1
# 将dhcp获取地址后的下一个服务(tftp服务)的IP填入278行
278行 next_server: 192.168.3.100
# 将298行的0改成1,表示防止重复安装操作系统
298行 pxe_just_once: 1
# 在390行,将IP地址改为cobbler服务器的IP地址
390行 server: 192.168.3.100
5)重新启动cobbler服务
[root@heitui ~]#systemctl restart cobblerd.service
6)修改通过cobbler服务生成dhcp.conf配置文件的dhcp的模板文件
[root@heitui ~]#vim /etc/cobbler/dhcp.template
subnet 192.168.3.0 netmask 255.255.255.0 {
option routers 192.168.3.2;
option domain-name-servers 8.8.8.8;
option subnet-mask 255.255.255.0;
range dynamic-bootp 192.168.3.25 192.168.3.45;
7)同步cobbler
[root@heitui ~]#cobbler sync
8)导入CentOS系统的安装文件,生成相应的YUM源
[root@heitui ~]#mount /dev/sr0 /mnt
[root@heitui ~]#cobbler import --name=centos-7-x86_64 --path=/mnt --arch=x86_64
# 从/mnt下,将名为centos-7-x86_64的系统导入cobbler服务器中
[root@heitui ~]#cobbler system add --name=default --profile=centos-7-x86_64
# 设置默认安装菜单, 这样未装系统的设备会自动从pxe引导启动你需要安装的系统, 不需要再手动接显示器选了。此操作也可以不做
9)新建一个虚拟机测试
直接启动虚拟机
等待一段时间