自动化运维之CentOS7下PXE+Kickstart+DHCP+TFTP+HTTP无人值守安装系统

简介:

一、概述

1、关于PXE
Preboot Execution Environment翻译过来就是预启动执行环境;简称PXE;传统安装操作系统的方法是CDROM或U盘引导,而PXE技术解决的是从网络引导安装系统,当然PXE技术不是什么新技术了,是Intel和Microsoft在1998年定义的更大PC98规范的一部分。有关PXE规范的详细文档

2、pxe引导相关角色说明
PXE作用: 引导装机
Kickstart作用: 将安装系统的过程中通过ks.cfg文件中的配置信息,实现自动安装配置达到无人值守自动安装;
TFTP: 支持PXE 引导的网卡中从tftp服务器端下载pxelinux.0文件、vmlinuz、initrd.img等内核引导文件;
DHCP: PXE引导过程中获首先获取IP地址,并提供pxelinux.0文件位置;
HTTP: 用于下载ks.cfg以及系统镜像文件
通用的无人值守做法如下:
通过一台没有系统的裸机网卡支持pxe协议,开机后从dhcp服务器获取ip和pxelinux.0文件并从tftp服务器上加载相关内核引导文件;同时下载 kickstart的cfg配置文件,指定系统镜像文件位置加载安装,从而实现无人值守安装!
如图(图片来自于网络):
自动化运维之CentOS7下PXE+Kickstart+DHCP+TFTP+HTTP无人值守安装系统
3、环境准备说明
本次测试环境说明:
PXE服务器:CentOS7.4 基于virtualboxt的虚拟机
ip:172.16.3.152 (可上网) 内部测试ip(仅主机模式) 192.168.56.254
配置服务及安装软件包如下:
DHCP
tftp
http
syslinux 包,提供引导文件
以上所需要的软件包均通过yum安装

[root@pxe ~]# yum install  dhcp tftp tftp-server syslinux httpd -y

防火墙,selinux关闭;生产线请开放UDP 67 68 69 tcp/80端口;

测试机可直接新建安装CentOS7系统 注意的就是网络选择仅主机即可;后面说明
接下来就配置并测试!

二、基于httpd搭建本地安装源

1、挂载光盘制作安装源

##挂载CentOS7光盘
[root@pxe ~]# mkdir /media/cdrom
[root@pxe ~]# mount /dev/cdrom /media/cdrom
[root@pxe ~]# mkdir -pv /var/www/html/centos/7/x86_64
#绑定挂载到http默认目录下
[root@pxe ~]#mount --bind /media/cdrom /var/www/html/centos/7/x86_64

2、kickstart ks.cfg配置文件准备
以家目录下的anaconda-ks.cfg为模板制作ks文件

[root@pxe ~]# cd /var/www/html;mkdir ks
[root@pxe ~]# cat ks.cfg
#version=DEVEL
# System authorization information
auth --enableshadow --passalgo=sha512
# Use CDROM installation media
#cdrom
# Install OS instead of upgrade
install
# Use network installation
url --url=http://192.168.56.254/centos/7/x86_64
# Use graphical install
graphical
# Run the Setup Agent on first boot
firstboot --enable
#ignoredisk --only-use=sda
# Keyboard layouts
keyboard --vckeymap=cn --xlayouts='cn'
# System language
lang zh_CN.UTF-8

# Network information
network  --bootproto=dhcp --device=enp0s3 --onboot=off --ipv6=auto
network  --hostname=localhost.pkey.cn

# Root password
rootpw --iscrypted $1$lSeSXuy.$7HmGY9vVxEGEGB98qTUuv1
# System timezone
timezone Asia/Shanghai --isUtc
# System bootloader configuration
bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda
autopart --type=lvm
# Partition clearing information
clearpart --none --initlabel

%packages
@^minimal
@core
kexec-tools
vim
wget
httpd
%end
%addon com_redhat_kdump --enable --reserve-mb='auto'
%end
selinux --disabled     #禁用selinux
reboot        #安装完重启系统

以上是我的参考配置,您也可以作为模板只需要简单修改以下几行:
安装的网络镜像地址:
url --url=http://192.168.56.254/centos/7/x86_64
安装后的系统密码:
rootpw --iscrypted $1$lSeSXuy.$7HmGY9vVxEGEGB98qTUuv1
密码可以通过openssl passwd -1 "PASSWORD" 
生成格式是sha512的密码替换上去即可;
另外安装后可以在%packages 与其%end之间配置预安装的包等,此处让程序在安装好系统后预安装wegt vim软件包;更多好玩的配置请
请参看redhat官方文档

3、配置启动

[root@pxe ~]# systemctl start httpd
[root@pxe ~]# systemct enable httpd

三、配置DHCP服务

1、配置dhcp服务
dhcp配置文件在/etc/dhcp/目录下,默认的配置文件没有,但我们可以在帮助文件中找到模板示例文件加以修改

[root@pxe ~]#  cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
[root@pxe ~]# egrep -v '(^$|^#)' /etc/dhcp/dhcpd.conf
option domain-name "pkey.cn";
option domain-name-servers 192.168.56.1;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
subnet 192.168.56.0 netmask 255.255.255.0 {
    range dynamic-bootp 192.168.56.110 192.168.56.120;
    option routers 192.168.56.1;
    next-server 192.168.56.254;    #tftp server也是本机,可以分开
  filename "pxelinux.0";               #引导文件
}

2、启动与查看

[root@pxe ~]# systemctl start dhcpd
[root@pxe ~]# systemctl enable dhcpd
查看服务状态,已经监听在UDP   67上
[root@pxe ~]# ss -tunl
Netid  State      Recv-Q Send-Q       Local Address:Port                      Peer Address:Port              
udp    UNCONN     0      0                        *:55770                                *:*                  
udp    UNCONN     0      0                        *:47150                                *:*                  
udp    UNCONN     0      0                        *:67                                   *:*                  

四、配置tftp服务

安装好tftp-server软件包后 默认的数据根目录是/var/lib/tftpboot/ 无须修改,只需要复制一些软件引导文件进来即可
1、相关文件准备

##引导文件
[root@pxe ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/  
#内核文件
[root@pxe ~]# cp /media/cdrom/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot
#引导菜单
[root@pxe ~]# cp /usr/share/syslinux/{chain.c32,mboot.c32,menu.c32,memdisk} /var/lib/tftpboot
#制件引导默认文件
[root@pxe ~]# mkdir -pv /var/lib/tftpboot/pxelinux.cfg
[root@pxe pxelinux.cfg]# cat default 
default menu.c32
   prompt 5
   timeout 30
   MENU TITLE CentOS 7 PXE Menu

   LABEL linux
   MENU LABEL Install CentOS 7 x86_64
   KERNEL vmlinuz
   APPEND initrd=initrd.img inst.repo=http://192.168.56.254/centos/7/x86_64 ks=http://192.168.56.254/ks/ks.cfg

2、启动配置开机自启

[root@pxe tmp]# systemctl enable tftp
[root@pxe tmp]# systemctl start tftp

3、tftp测试
/var/lib/tftpboot/目录文件结构

结构查看
[root@pxe tftpboot]# tree -L 2
.
├── chain.c32
├── initrd.img
├── mboot.c32
├── memdisk
├── menu.c32
├── pxelinux.0
├── pxelinux.cfg
│   └── default
└── vmlinuz

测试tftp
[root@pxe tmp]# pwd;ls
/tmp
[root@pxe tmp]# tftp 192.168.56.254
tftp> get vmlinuz
tftp> quit
[root@pxe tmp]# pwd;ls
/tmp
vmlinuz

五、PXE无人值守安装测试

1、修改virtualbox网络
管理-->全局设定-->网络-->"仅主机(Host-Only)网络" -->双击vboxnet0 -->把virtualbox自带的仅主机网络的DHCP服务关掉,如图:
自动化运维之CentOS7下PXE+Kickstart+DHCP+TFTP+HTTP无人值守安装系统

2、新建虚拟机
和用cdrom安装虚拟的唯一区别是不用挂载镜像,只需要修改新的虚拟机的网络类型为"仅主机(Host-Only)网络"如图:
自动化运维之CentOS7下PXE+Kickstart+DHCP+TFTP+HTTP无人值守安装系统

开机-->按F12选择LAN启动,如图:
自动化运维之CentOS7下PXE+Kickstart+DHCP+TFTP+HTTP无人值守安装系统
自动化运维之CentOS7下PXE+Kickstart+DHCP+TFTP+HTTP无人值守安装系统
再接下来就是很熟悉的图形化自动安装的过程了!整个安装系统的过程 基本上也就五六分钟的样子,具体视安装包多少与系统网络性能而定;想了解具体过程,自行动手试试吧!

总结:

以上就是基于PXE协议和syslinux引导文件,kickstart配置文件,DHCP,tftp-server,httpd服务制作本地安装源协作完成的无人值守安装系统,也可以在这套环境 中加入CentOS6的安装,只需要添加修改配置文件即可,这种操作一般就要用到cobbler服务去更好的解决啦!本次在windows上用vmware也是类似操作!










本文转自 dyc2005 51CTO博客,原文链接:http://blog.51cto.com/dyc2005/2068188,如需转载请自行联系原作者
目录
相关文章
|
18天前
|
运维 Linux Apache
Puppet 作为一款强大的自动化运维工具,被广泛应用于配置管理领域。通过定义资源的状态和关系,Puppet 能够确保系统始终处于期望的配置状态。
Puppet 作为一款强大的自动化运维工具,被广泛应用于配置管理领域。通过定义资源的状态和关系,Puppet 能够确保系统始终处于期望的配置状态。
40 3
|
27天前
|
运维 监控 安全
高效运维管理:提升系统稳定性的策略与实践
【10月更文挑战第2天】 在当今数字化时代,运维管理成为企业IT部门的重要任务。本文将探讨如何通过高效的运维管理策略和最佳实践,提升系统的稳定性,确保业务持续平稳运行。通过分析常见问题、预防措施以及应对策略,我们将揭示高效运维的关键要素,助您打造一个可靠的IT环境。
|
2天前
|
运维 监控 中间件
数据中心运维监控系统产品价值与优势
华汇数据运维监控系统面向IT基础架构及IT支撑平台的监控和运维管理,包含监测、分析、展现和告警。监控范围涵盖了网络设备、主机系统、数据库、中间件和应用软件等。
16 4
|
16天前
|
运维 监控 安全
高效运维管理:提升系统稳定性的策略与实践
【10月更文挑战第13天】 本文探讨了高效运维管理的关键策略和实践,旨在帮助运维团队提升系统的稳定性。通过分析常见问题,提出具体的解决方案,包括监控与告警、自动化工具的应用、故障排查与恢复、性能优化以及安全防护等方面。通过这些策略和实践,可以帮助企业构建一个稳定、可靠且高效的IT系统。
59 1
|
25天前
|
运维 监控 安全
构建高效运维体系:从监控到自动化的全面指南在当今数字化时代,运维作为保障系统稳定性和效率的重要环节,其重要性不言而喻。本文将深入探讨如何构建一个高效的运维体系,从监控系统的搭建到自动化运维的实施,旨在为读者提供一套完整的解决方案。
本文详细介绍了高效运维体系的构建过程,包括监控系统的选择与部署、日志分析的方法、性能优化的策略以及自动化运维工具的应用。通过对这些关键环节的深入剖析,帮助运维人员提升系统的可靠性和响应速度,降低人工干预成本,实现业务的快速发展和稳定运行。
|
27天前
|
运维 Prometheus 监控
运维中的自动化实践每月一次的系统维护曾经是许多企业的噩梦。不仅因为停机时间长,更因为手动操作容易出错。然而,随着自动化工具的引入,这一切正在悄然改变。本文将探讨自动化在IT运维中的重要性及其具体应用。
在当今信息技术飞速发展的时代,企业对系统的稳定性和效率要求越来越高。传统的手动运维方式已经无法满足现代企业的需求。自动化技术的引入不仅提高了运维效率,还显著降低了出错风险。本文通过几个实际案例,展示了自动化在IT运维中的具体应用,包括自动化部署、监控告警和故障排除等方面,旨在为读者提供一些实用的参考。
|
1月前
|
运维 监控 大数据
高效运维管理:提升系统稳定性的策略与实践
在当今信息技术飞速发展的时代,运维管理作为保障系统稳定运行的关键环节,其重要性不言而喻。本文将深入探讨如何通过优化运维流程、引入自动化工具和建立完善的监控体系等策略,来有效提升系统的稳定性。同时,结合具体实践案例,分析这些策略在实际工作中的应用效果,为运维人员提供有益的参考和启示。
69 6
|
2月前
|
Linux
kickstart自动安装系统 --DHCP 配置及测试
PXE+Kickstart自动安装系统需配置DHCP服务器分配IP。dhcpd.conf示例:设置更新样式、忽略客户端更新、指定下一服务器及启动文件。定义子网、网关、掩码、动态地址池并预留特定MAC地址。重启xinetd、NFS、DHCP服务,确保新服务器与Kickstart服务器在同一网络,避免误装其他机器。注意隔离测试网络以防干扰生产环境。
77 18
|
1月前
|
运维 负载均衡 监控
提升系统性能:高效运维的秘密武器——负载均衡技术
在当今数字化时代,系统的高可用性和高性能成为各类企业和组织追求的目标。本文旨在探讨负载均衡技术在运维工作中的关键作用,通过深入分析其原理、类型及实际应用案例,揭示如何利用这项技术优化资源分配,提高系统的响应速度和可靠性,确保用户体验的稳定与流畅。无论是面对突如其来的高流量冲击,还是日常的运维管理,负载均衡都展现出了不可或缺的重要性,成为现代IT架构中的基石之一。
45 4
|
2月前
|
存储 弹性计算 运维
自动化监控和响应ECS系统事件
阿里云提供的ECS系统事件用于记录云资源信息,如实例启停、到期通知等。为实现自动化运维,如故障处理与动态调度,可使用云助手插件`ecs-tool-event`。该插件定时获取并转化ECS事件为日志存储,便于监控与响应,无需额外开发,适用于大规模集群管理。详情及示例可见链接文档。