下面以vmw虚拟机环境实现部署
主机名称 | IP地址 |
---|---|
server | 192.168.10.10 |
client | 暂未分配 |
关闭虚拟机自带的DHCP服务
[root@server ~]# mount /dev/sr0 /media/cdrom/
mount: /dev/sr0 is write-protected, mounting read-only
[root@server ~]# cat /etc/yum.repos.d/local.repo
[centos]
name=centos
baseurl=file:///media/cdrom
gpgcheck=0
enabled=1
本次实验采用HTTP提供内核文件,当然也可以采用FTP/NFS,只要修改传输方式和路径即可,下面会说明。
[root@server ~]# yum install -y dhcp
允许BOOT引到程序协议,让局域网内暂时没有操作提醒的主机也能获取到静态IP地址,
加载引到驱动文件pexlinux.0,让客户端获取到IP地址后主动获取引到驱动文件,
自行进入安装过程。
[root@server ~]# vim /etc/dhcp/dhcpd.conf
allow booting;
allow bootp;
ddns-update-style interim;
ignore client-updates;
subnet 192.168.10.0 netmask 255.255.255.0 {
option subnet-mask 255.255.255.0;
option domain-name-servers 192.168.10.10;
range dynamic-bootp 192.168.10.100 192.168.10.200;
default-lease-time 21600;
max-lease-time 43200;
next-server 192.168.10.10; #这个就是TFTP地址
filename "pxelinux.0"; #从tftp根目录获取bootloader文件
}
重启DHCP服务
[root@server ~]# systemctl restart dhcpd
TFTP作为一种基于UDP协议的简单文件传输协议,不需要用户认证即可获取到所需的文件资
源。因此下面配置TFTP服务,为客户端主机提供引导及驱动文件。当客户端有了基本的驱动
程序之后,再通过httpd服务将完整的光盘镜像文件传输过去。
[root@server ~]# yum install -y tftp-server
TFTP是一种非常精简的文件传输服务程序,它的运行和关闭都是由xinetd网络守护进程服
务来管理的。Xinetd服务会同时监听系统的多个端口,然后根据用户请求的端口号调取相对
应的服务程序来响应请求。开启TFTP服务,只需在xinetd服务的配置文件中将disable参
数改成no就可以了。
由于centos系统中未安装xinetd包,需要手动去安装。
[root@server ~]# yum install -y xinetd
[root@server ~]# vim /etc/xinetd.d/tftp
# default: off
# description: The tftp server serves files using the trivial file transfer \
# protocol. The tftp protocol is often used to boot diskless \
# workstations, download configuration files to network-aware printers, \
# and to start the installation process for some operating systems.
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot #<-tftp的目录
disable = no #<-开启tftp改为no
per_source = 11
cps = 100 2
flags = IPv4
}
TFTP是由xinetd网络守护进程所管理的,所以修改完之后,要重启的是xinetd
[root@server ~]# systemctl restart xinetd
TFTP服务默认使用的是UDP协议,占用端口为69,所以要通过firewall防火墙写入允许策略。
[root@server ~]# firewall-cmd --permanent --add-port=69/udp
[root@server ~]# firewall-cmd --reload
Syslinux是一个用于提供引导加载的服务。
[root@server ~]# yum install -y syslinux
需要把syslinux提供的引导文件复制到TFTP服务的默认目录中,这样客户端主机就能顺利
的获取到引导文件。在centos7系统光盘中也有需要调取的引导文件。
[root@server ~]# cd /var/lib/tftpboot/
[root@server tftpboot]# cp /usr/share/syslinux/pxelinux.0 .
[root@server tftpboot]# cp /media/cdrom/images/pxeboot/{vmlinuz,initrd.img} .
[root@server tftpboot]# cp /media/cdrom/isolinux/{vesament.c32,boot.msg} .
然后在TFTP目录中新建一个pexlinux.cfg目录,将系统光盘中的开机选项菜单复制到该目录中,并命名为default。
[root@server tftpboot]# mkdir pxelinux.cfg
[root@server tftpboot]# cp /media/cdrom/isolinux/isolinux.cfg pxelinux.cfg/default
默认的开机菜单中有两个选项,一个是安装系统,一个是对安装介质进行检验。本次实验要
求是无人值守安装系统,编辑default文件,将default参数改为linux,将默认的光盘镜
像安装方式修改成http方式(也可以使用ftp/nfs方式只需在64行修改即可),并指定光盘镜像的获取地址以及kickstart应答文件的获取
路径:
[root@server tftpboot]# vim pxelinux.cfg/default
1 default linux
64 append initrd=initrd.img inst.repo=http://192.168.10.10/iso #<-内核启动选项需要加载的文件
ks=http://192.168.10.10/pub/ks.cfg quiet #<-ks存放的路径
本次实验选择光盘镜像是通过HTTP协议传输,因此要用httpd服务。
[root@server ~]# yum install -y httpd
[root@server ~]# systemctl start httpd
在防火墙写入策略
[root@server ~]# firewall-cmd --permanent --add-service=http
[root@server ~]# firewall-cmd --reload
将已经挂载的光盘镜像拷贝到http服务的工作目录中:
[root@server ~]# mkdir /var/www/html/iso
[root@server ~]# cp -r /media/cdrom/* /var/www/html/iso/
KickStart应答文件中包含了系统安装过程中需要使用的选项和参数信息,系统可以自动调用这个应答文件的内容,从而实现了无人值守安装系统。将root目录下的anaconda-ks.cfg应答文件复制到http服务的工作目录中,并授权。
[root@server ~]# mkdir /var/www/html/pub
[root@server ~]# cp ~/anaconda-ks.cfg /var/www/html/pub/ks.cfg
[root@server ~]# chmod +r /var/www/html/pub/ks.cfg
然后将光盘镜像安装方式修改成http协议,填写http服务器的IP地址、时区修改为上海、
磁盘选项设置为清空并初始化磁盘。
[root@server ~]# vim /var/www/html/pub/ks.cfg
6 url --url=http://192.168.10.10/iso
25 timezone Asia/Shanghai --isUtc
30 clearpart --all --initlabel
新建一个虚拟机,选择稍后安装操作系统
将网络适配器设置为仅主机模式