1. 概述
2. 部署过程
2.1 部署DHCP服务器
2.1.1 YUM安装依赖环境
2.1.2 配置/etc/dhcp/dhcpd.conf
2.2 部署TFTP服务器
2.2.1 安装xinetd服务
2.2.2 安装tftp-server
2.2.3 配置tftp-server
2.2.4 启动xinetd服务
2.3 配置pxelinux引导环境
2.3.1 安装syslinux
2.3.2 编辑default和oslist
2.3.3 无盘工作站
2.4 配置镜像站点
2.4.1 配置操作系统镜像站点
2.4.2 配置自动化配置文件站点
2.5 自动化安装配置文件
2.5.1 ks.cfg配置文件的获取
2.5.2 ks.cfg配置文件详解
3. 总结
1. 概述
无人值守安装,是基于PXE启动的无交互式操作系统安装过程,适合批量安装。
其步骤主要包括:
- 配置客户机的BIOS,使其在开机启动后,从网络引导操作系统
- 客户机从DHCP获取到IP地址
- 客户机在获取到IP地址后,能够通过TFTP获取pxelinux.0引导程序
- 客户机执行pxelinux.0获取远程操作系统列表
- 客户机选择操作系统类型和版本
- 客户机按照pxelinux.0对应的内核引导参数,加载ks.cfg自动化配置文件
- 客户机执行安装操作系统
从上述的步骤中,能够总结如下:
- 获取IP地址
从DHCP处获取IP地址
- 获取pxelinux.0引导程序
从TFTP处获取pxelinux.0
- 获取操作系统类型和版本列表
从pxelinux.cfg/default/oslist获取
- 获取自动化配置文件
从pxelinux.cfg/default中获取引导参数
2. 部署过程
2.1 部署DHCP服务器
DHCP服务器主要负责为客户机分配IP地址,并且能够根据MAC地址分配地址,主机名,时间服务器,网关,域名等网络信息。
注:DCHP协议详解和参数详解参见博客《DHCP协议详解.md》和《DHCP服务器配置dhcpd.conf详解.md》
2.1.1 YUM安装依赖环境
执行命令rpm -qa | grep dhcpd
,检查是否已经安装DHCP;若未安装,执行命令yum -y install dhcd
进行安装。
2.1.2 配置/etc/dhcp/dhcpd.conf
默认/etc/dhcp/dhcpd.conf无内容,修改其内容如下:
option domain-name "liwanliang.com";
option domain-name-servers 192.168.80.2,8.8.8.8;
default-lease-time 600;
max-lease-time 7200;
ddns-update-style interim;
ignore client-updates;
log-facility local7;
filename "pxelinux.0";
next-server 192.168.80.8;
subnet 192.168.80.0 netmask 255.255.255.0 {
range dynamic-bootp 192.168.80.11 192.168.80.254;
option broadcast-address 192.168.80.255;
option routers 192.168.80.2;
default-lease-time 21600;
max-lease-time 4320;
}
subnet 192.168.10.0 netmask 255.255.255.0 {
range dynamic-bootp 192.168.10.11 192.168.10.254;
option broadcast-address 192.168.10.255;
default-lease-time 21600;
max-lease-time 4320;
}
解释:
- domain-name-server 为客户机设置DNS1和DNS2;
- filename 配置pxelinux引导程序名称;
- next-server 配置TFTP的地址;
- subnet设置IP池和相关网段,网关信息;
上过配置写入后,保存退出。此时还需要将客户机的MAC地址和主机名,IP绑定。如添加以下配置:
host node11-eth0 {
hardware ethernet 00:00:00:80:00:11;
fixed-address 192.168.80.11;
option host-name node11;
}
host node11-eth1 {
hardware ethernet 00:00:00:10:00:11;
fixed-address 192.168.10.11;
option host-name node11;
}
因为本篇博客需要做99台虚拟机的配置,因此用脚本完成。
注:脚本内容参见博客《shell-scripts::create_dhcp_conf.sh.md》
执行命令‘cat /usr/local/globle/confs/dhcpd/dhcpd_node.txt >> /etc/dhcp/dhcpd.conf‘,将脚本生成的内容,追加到/etc/dhcp/dhcpd.conf配置中
注:上述过程,完成了对DHCP的配置之后,将配置文件拷贝到/usr/local/globle/confs/dhcpd/dhcpd.conf。执行命令 ln -fs /usr/local/globle/confs/dhcpd/dhcpd.conf /etc/dhcp/dhcpd.conf,创建配置文件软链接
2.2 部署TFTP服务器
这部分主要进行TFTP的部署和配置。因为TFTP依靠xinetd服务,因此需要安装并配置xinetd服务
2.2.1 安装xinetd服务
执行命令:yum -y install xinetd
2.2.2 安装tftp-server
执行命令:yum -y install tftp-server
2.2.3 配置tftp-server
进入到目录/etc/xinetd/,编辑tftp-server的配置文件/etc/xinetd/tftp,将disable=yes改为disable=no,即开启xinetd监听tftp的端口。内容如下:
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
2.2.4 启动xinetd服务
执行命令:service xinetd start && chkconfig xinetd on
启动xinetd服务,监听tftp的端口
执行命令:netstat -tupln | grep xined
,内容如下:
udp 0 0 0.0.0.0:69 0.0.0.0:* 4782/xinetd
出现上述监听,说明部署成功。
2.3 配置pxelinux引导环境
syslinux和pxelinux详细解释,参见博客《syslinux详解.md》
执行命令:find / -name pxelinux.0
查看系统是否安装syslinux环境。若没有则参照下面内容安装。
2.3.1 安装syslinux
执行命令:yum -y install syslinux
,安装syslinux环境。
执行命令find / -name pxelinux.0
可以找到/usr/share/syslinux/pxelinux.0,这便是网络引导时的系统加载程序。
将/usr/share/syslinux/pxelinux.0拷贝到/var/lib/tftpboot/目录下,修改pxelinux.0的权限为755。
注:/var/lib/tftpboot/是tftp-server的站点根目录。
并在创建目录mkdir -p /var/lib/tftpboot/pxelinux.cfg/
,该目录是存放default和oslist的目录。
2.3.2 编辑default和oslist
default是在pxelinx.0从pxelinux.cfg加载的显示给用户的交互式界面,用户选择操作系统类型和或者版本等,此时pexlinux.0加载此项,说明还未加载操作系统内核镜像,只是给出一个选择。
default有一段配置,用于根用户交互,使用户选择操作系统类型和版本。
default内容如下:
#设置默认安装系统
default 1
#设置是否停顿等待.1:等待;0:不等待
prompt 1
#设置选择等待时间.60表示6s
timeout 60
#设置显示的信息文本
display pxelinux.cfg/oslist
#操作系统标签
#label 1:centos6.5
label 1
kernel /centos6.5/vmlinuz
#append ksdevice=eth0 ks=http://192.168.80.8/kscfg/http-ks.cfg initrd=/centos6.5/initrd.img
append initrd=/centos6.5/initrd.img
label 2
#label 2:centos7.2
kernel /centos7.2/vmlinuz
append ksdevice=eth0 ks=http://192.168.80.8/kscfg/http-ks.cfg intird=/centos6.5/initrd.img
#label 3:ubuntu
#label 4:vmware esxi 6.5
#label 6:xen
上述内容中,配置了默认选择的操作系统版本和内核镜像存放位置/var/lib/tftboot/centos6.5/vimlinuz,以及通过append选项传递给启动内核的参数。
在display一行的配置中,通过pxelinux.cfg/oslist文件来跟用户交互。
oslist的内容是用户自定义内容,本篇博客内容配置如下:
|------------os type----------------|
[1]-centos6.5(default)--------------|
[2]-centos7.2-----------------------|
[3]-ubuntu16.04---------------------|
[4]-exsi 6.5------------------------|
[5]-xen6.5--------------------------|
|-----------------------------------|
可以看出,oslist主要是让用户选择对应的数字,或者说内核标签。然后default会根据用户选择的标签,传递给pexlinux.0用户选择的内核,参数等,然后pxelinux.0开始加载内核镜像,并解压安装。
如下图:
从图中能够看出:
- 客户机已经从DHCP处获取到了IP地址为192.168.80.11
- 客户机已经从TFTP处获取到了pexlinux.0程序
- pexlinux.0程序根据tftpboot处的pexlinux.cfg/default配置的oslist内容并展示
- boot选项会在6s内无操作的情况下,自动加载centos6.5内核镜像文件
2.3.3 无盘工作站
如上所述,当我们在配置了pexlinux.cfg/default中append的参数时,便可进行无人值守的操作系统安装。这只是PXE的应用之一。
应用之二便是多操作系统选择和无盘工作站。只需要将默认选择改变,同时将客户机改为从网络启动,便可以为客户机轻松改变操作系统系统类型和版本。
具体操作参见博客《无盘工作站的创建.md》
2.4 配置镜像站点
2.4.1 配置操作系统镜像站点
镜像站点的配置,有多种方式,包括本地和远程。远程镜像站点的配置,参见包括《虚拟机console基础环境配置——系统镜像站点配置.md》
2.4.2 配置自动化配置文件站点
至此,当配置一台kvm虚拟机(指定其MAC地址),然后启动KVM虚拟机时,该虚拟机会从DHCP服务器获取到IP地址和TFTP的网络引导程序,进而从网络站点加载操作系统镜像。假如没有在启动内核中配置自动化配置文件,这个过程和KVM从远程站点安装操作系统一致。
因此,要实现自动化批量安装,即无人值守的安装,还需要配置ks.cfg文件,并在内核引导参数中指定。
2.5 自动化安装配置文件
2.5.1 ks.cfg配置文件的获取
自动化安装配置文件ks.cfg有三种方式可以获取:
- 图形化配置
- 修改先有配置
- 手动创建并编辑
2.5.2 ks.cfg配置文件详解
3. 总结
自动化配置,主要是无需交互。无交互主要是避免大规模装机的重复劳动。因此无人值守的自动化装机,就是利用PXE引导方式,根据PXE指定的内核参数,加载自动化安装配置文件后,自动安装操作系统。
原文地址:https://www.cnblogs.com/liwanliangblog/p/9108088.html