Linux – 无人值守安装服务
# 需求分析
- 使用光盘镜像来安装 Linux 系统的方式; 坦白讲, 该方法适用于只安装少量 Linux 系统的情况, 如果生产环境中有数百台服务器都需安装系统, 这种方式就不太适合;
# 解决方案
- 使用 无人值守安装系统 完成数百台服务器的系统安装;
- 无人值守安装(Unattended Setup)指软件安装时无需任何用户干预, 直接按默认或通过应答文件设置安装, 这对于无特殊需求的用户或企业大批量部署安装操作系统及软件时非常方便;
# 简介
- 本节将介绍可以实现无人值守安装服务的 PXE+Kickstart 服务程序, 并手动安装部署 PXE + TFTP + FTP + DHCP + Kickstart 等服务程序, 从而搭建出一套可批量安装 Linux 系统的无人值守安装系统;
# 部署步骤
- 安装 DHCP、TFTP、SYSLinux、vsftpd、xinetd、KickStart 服务程序
- 挂载 ISO 文件
- 配置 DHCP、TFTP、SYSLinux、vsftpd、xinetd、KickStart
- 测试&上线
# 部署软件
- PXE (Preboot eXecute Environment, 预启动执行环境)
- TFTP (Trivial File Transfer Protocol, 简单文件传输协议)
- DHCP (Dynamic Host Configuration Protocol, 动态主机配置协议)
- FTP (FileTransferProtocol, 文件传输协议)
- Kickstart (RedHat红帽公司提供的应答文件)
简介
PXE(Preboot eXecute Environment,预启动执行环境)是由 Intel 公司开发的技术, 可以让计算机通过网络来启动操作系统(前提是计算机上安装的网卡支持 PXE 技术), 主要用于在无人机值守安装系统中引导客户端主机安装 Linux 操作系统;
Kickstart 是一种无人值守的安装方式, 其工作原理是预先把原本需要运维人员手工填写的参数保存成一个ks.cfg 文件, 当安装过程中需要填写参数时则自动匹配 Kickstart 生成的文件;
TFTP(Trivial File Transfer Protocol,简单文件传输协议)是一种基于UDP协议在客户端和服务器之间进行简单文件传输的协议;TFTP提供不复杂、开销不大的文件传输服务,可将其当作FTP协议的简化版本;
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议) 是一种基于UDP协议且仅限于在局域网内部使用的网络协议;该协议用于自动管理局域网内主机的IP地址、子网掩码、网关地址及DNS地址等参数,可以有效地提升IP地址的利用率,提高配置效率,并降低管理与维护成本;
FTP(FileTransferProtocol, 文件传输协议)是一种在互联网中进行文件传输的协议,基于客户端/服务器模式,默认使用20、21号端口,其中端口20用于进行数据传输,端口21用于接受客户端发出的相关FTP命令与参数;
xinetd(eXtended InterNET services daemon,扩展的InterNET服务守护程序)常用来管理多种轻量级 Internet 服务;xinetd 提供类似于 inetd+tcp_wrapper 的功能;
# 配置文件 简介
- /var/lib/ftfpboot/vmlinuz: 可引导的压缩的内核;
- /var/lib/ftfpboot/initrd.img: 启动内存文件;
- /var/lib/ftfpboot/pxelinux.0: PXE引导程序;
- /var/lib/ftfpboot/pxelinux.cfg/default: 客户机启动安装时选择项;
安装&卸载
# 方式一:
# 一条命令安装所需服务
$ sudo yum install -y dhcp tftp-server vsftpd syslinux xinetd
# 方式二:
# 按照一步一步安装
# 安装dhcp
$ sudo yum install -y dhcp
# 安装tftp
$ sudo yum install -y tftp-server
# 安装vsftpd
$ sudo yum install -y vsftpd
# 安装syslinux
$ sudo yum install -y syslinux
# 安装xinetd
$ sudo yum install -y xinetd
DHCP
- 安装
# 安装
$ sudo yum install -y dhcp
- 卸载
# 卸载
$ sudo yum remove dhcp
TFTP
- 安装
# 安装
$ sudo yum install -y tftp-server
- 卸载
# 卸载
$ sudo yum remove tftp-server
vsftpd
- 安装
# 安装
$ sudo yum install -y vsftpd
- 卸载
# 卸载
$ sudo yum remove vsftpd
SYSLinux
- 安装
# 安装
$ sudo yum install -y syslinux
- 卸载
# 卸载
$ sudo yum remove syslinux
xinetd
- 安装
# 安装
$ sudo yum install -y xinetd
- 卸载
# 卸载
$ sudo yum remove xinetd
配置
主机名称 (Host) | 操作系统 (OS) | IP 地址(ip address) |
---|---|---|
无人值守系统 | Centos7 | 192.168.158.2 |
客户端主机 | 未安装操作系统 | – |
网络配置
- 配置 vmware 网络
vmware网络配置步骤:
编辑
->虚拟网络编辑器
->添加网络
->使用本地 DHCP 服务将 IP 地址分配给虚拟机
- 配置文件
ifcfg-ensxx
$ vi /etc/sysconfig/network-scripts/ifcfg-ens32
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static # 静态配置
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens32
UUID=53eb3239-d967-4079-9e11-28c7ccd12821
DEVICE=ens32
ONBOOT=yes # 开启网络配置
IPADDR=192.168.158.2 # IP地址
NETWASK=255.255.255.0 # 子网掩码
GATEWAY=192.168.158.1 # 网关
ISO挂载
挂载光盘镜像方式:在服务器使用wget下载iso到服务器上、下载iso文件,通过光驱挂载到服务器上;
将虚拟机的 CD/DVD 光盘选项设置为“使用 ISO 镜像文件”,并选择已经下载好的系统 镜像;
vmware挂载配置步骤:
虚拟机设置
->CD/DVD (SATA)
->使用 ISO 映像文件
# 创建挂载点 /media/cdrom
$ mkdir -p /media/cdrom
# 挂载 ISO 到 /media/cdrom
$ mount /dev/cdrom /media/cdrom/
DHCP
DHCP配置文件中允许 BOOTP 引导程序协议, 旨在让局域网内暂时没有操作系统的主机也能获取静态 IP地址;在配置文件的最下面加载了引导驱动文件 pxelinux.0(这个文件会在下面的步骤中创建), 其目的是让客户端主机获取到 IP 地址后主动获取引导驱动文件;
$ vi /etc/dhcp/dhcpd.conf
allow booting;
allow bootp;
ddns-update-style interim;
ignore client-updates;
subnet 192.168.158.0 netmask 255.255.255.0 {
option subnet-mask 255.255.255.0;
option domain-name-servers 192.168.158.2;
range dynamic-bootp 192.168.158.100 192.168.158.200;
default-lease-time 21600;
max-lease-time 43200;
next-server 192.168.158.2;
filename "pxelinux.0";
}
在确认 DHCP 服务程序的参数都填写正确后,重新启动该服务程序,并将其添加到开机启动 项中;这样在设备下一次重启之后,在无须人工干预的情况下,自动为客户端主机安装系统;
$ systemctl restart dhcpd
$ systemctl enable dhcpd
本站声明:
1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/294483.html