自动化运维之PXE网络安装系统实战

简介:

自动化运维之PXE网络安装系统实战


为什么要用PXE网络安装操作系统?

如果给一台主机安装一个linux系统,用光盘安装或者用U盘安装都可以实现,但是在生产环境中有时候需要给数十台、数百台主机安装操作系统,那用光盘一个一个的安装这种方式肯定是不可行的,相信也没有人会去这么做。这时就需要一个能够给多个主机同时安装系统的工具了,PXE就是这样的一个工具,他可以实现同时对多台主机同时安装系统。


PXE安装系统的流程:

1
1、需要安装系统的主机的网卡支持网络安装,不过现在不用担心,随着科技的发展,现在几乎所以的主机都支持。


1
2、客户端主机需要有一个IP地址来与PXE Server进行通信,这时网络中必须要有一个主机能自动分配IP。DHCP就是一个能为主机自动分配IP地址的服务,DHCP也可以安装在PXE Server主机上。



1
3、客户机得到IP地址后,需要提供一个引导程序pxelinux.0(类似于grub) 此文件由syslinux提供,所以需要安装syslinux。和能加载内核及内核镜像等文件,客户机可以通过TFTP协议到TFTP Server上下载内核及内核镜像文件,所以需要一个TFTP 服务,TFTP也可以安装在PXE Server主机上,客户机只是知道可以用TFTP协议下载文件,但是TFTP Server的IP是那个,这个还得需要DHCP服务器指名告诉客户机那个是TFTP Server,而TFTP服务需要超级进程进行管理,此进程是xinet,因此需要安装xinet服务。


1
4、如果想实现完全自动化部署操作系统,则需要一个kickstart文件,没有此文件则安装系统的时候需要自己手动一个一个的选择进行安装,kickstart文件可以自己手动的写编写,也可以用system-config-kickstart工具进行生成,如果需要则可以在PXE Server上安装system-config-kickstart工具。



1
5、已经有了kickstart文件了,kickstart文件中有一个参数指定了需要以什么方式,在哪里去找安装源(此安装源就是安装系统所需的软件),这样的方式可以是,nfs、 ftp 、http等,选择其一即可,博主在此选择 ftp 方式提供安装源。



由上述流程可以得到用PXE安装软件所需的依赖性包:

1
2
3
4
5
6
dhcp                      #提供IP地址,指名TFTP Server的地址,pxelinux文件
tftp-server               #提供引导所需的文件,内核文件,内核镜像文件等
xinetd                    #管理tftp服务的超级进程
syslinux                  #提供pxelinux文件
system-config-kickstart   #生成kickstart文件的工具
vsftpd                    #提供安装源


各软件的安装及其配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@jie1 ~] # cat /etc/yum.repos.d/server.repo
[centos]
name=sohu-centos
baseurl=http: //mirrors .sohu.com /centos/ $releasever /os/ $basearch
gpgcheck=1
enable =0
gpgkey=http: //mirrors .sohu.com /centos/RPM-GPG-KEY-CentOS-6
[epel]
name=sohu-epel
baseurl=http: //mirrors .sohu.com /fedora-epel/ $releasever/$basearch/
enable =1
[root@jie1 ~] # ifconfig eth0 | awk '/inet addr:/ {print $2}'
addr:192.168.22.1
[root@jie1 ~] # yum -y install dhcp tftp-server xinetd syslinux system-config-kickstart vsftpd

DHCP服务的配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[root@jie1 ~] # cat /etc/dhcp/dhcpd.conf
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.sample
#   see 'man 5 dhcpd.conf'
[root@jie1 ~] # cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
cp : overwrite ` /etc/dhcp/dhcpd .conf'? y
[root@jie1 ~] # grep -v "^#" /etc/dhcp/dhcpd.conf | grep -v "^$"
option domain-name  "jie.com" ;
option domain-name-servers 192.168.22.1;
default-lease- time  43200;
max-lease- time  86400;
log-facility local7;
subnet 192.168.22.0 netmask 255.255.255.0 {
   range 192.168.22.100 192.168.22.200;
   option routers 192.168.22.1;
}
next-server 192.168.22.1;
filename= "pxelinux.0" ;

安装源的提供:

1
2
3
4
5
[root@jie1 ~] # service vsftpd start
Starting vsftpd  for  vsftpd:                                [  OK  ]
[root@jie1 ~] # mkdir /var/ftp/pub/centos-6.4-x86_64
[root@jie1 ~] # mount /dev/cdrom /var/ftp/pub/centos-6.4-x86_64
mount : block device  /dev/sr0  is write-protected, mounting  read -only


kickstart文件:

113448965.png

113503159.png113515598.png

113531760.png

113628392.png

113631679.png

113635772.png

113638981.png

133045412.png

然后点击File--->save保存即可

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#============用system-config-kickstart生成的kickstart文件===========
[root@jie1 ~] # cat ks.cfg
#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Firewall configuration
firewall --disabled
# Install OS instead of upgrade
install
# Use network installation
url --url= "ftp://192.168.22.1/pub/centos-6.4-x86_64"
# Root password
rootpw --iscrypted $1$rwNUnQGy$0CfH0U2 /y028PzfcdTPZJ .
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use graphical install
graphical
firstboot --disable
# System keyboard
keyboard us
# System language
lang en_US
# SELinux configuration
selinux --disabled
# Installation logging level
logging --level=info
# Reboot after installation
reboot
# System timezone
timezone  Asia /Shanghai
# Network information
network  --bootproto=dhcp --device=eth0 --onboot=on
# System bootloader configuration
bootloader --append= "crashkernel=auto crashkernel=auto rhgb rhgb quiet quiet"  --location=mbr --driveorder= "sda"
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
part  /boot  --fstype=ext4 --size=200
part pv.008002 --size=81440
volgroup vg0 --pesize=8192 pv.008002
logvol / --fstype=ext4 --name=root --vgname=vg0 --size=20480
logvol swap --name=swap --vgname=vg0 --size=2048
logvol  /usr  --fstype=ext4 --name=usr --vgname=vg0 --size=20240
logvol  /var  --fstype=ext4 --name=var --vgname=vg0 --size=20480
%post
sed  -i  '1,$s@id:[0-9]:initdefault:@id:3:initdefault:@g'  /etc/inittab
# Set the hostname
IP=` ifconfig  eth0 |  awk  '/inet addr:/{print $2}'  awk  -F.  '{print $NF}' `
sed  -i  "s@HOSTNAME=.*@HOSTNAME=web$IP.jie.com@g"  /etc/sysconfig/network
%end
#install  package
%packages
@core
@server-policy
%end
[root@jie1 ~] # cp ks.cfg /var/ftp/pub/centos6.cfg

所需的引导文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
[root@jie1 ~] # cd /var/lib/tftpboot/
[root@jie1 tftpboot] # mkdir pxelinux.cfg
[root@jie1 tftpboot] # cp /var/ftp/pub/centos-6.4-x86_64/isolinux/{boot.msg,splash.jpg,vesamenu.c32} /var/lib/tftpboot/
[root@jie1 tftpboot] # cp /var/ftp/pub/centos-6.4-x86_64/images/pxeboot/{initrd.img,vmlinuz} /var/lib/tftpboot/
[root@jie1 tftpboot] # cp /var/ftp/pub/centos-6.4-x86_64/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
[root@jie1 tftpboot] # chmod +w /var/lib/tftpboot/pxelinux.cfg/default
[root@jie1 tftpboot] # cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@jie1 tftpboot] # cat /var/lib/tftpboot/pxelinux.cfg/default
default vesamenu.c32
#prompt 1
timeout 200
display boot.msg
menu background splash.jpg
menu title Welcome to CentOS 6.4 made by jie!
menu color border 0  #ffffffff #00000000
menu color sel 7  #ffffffff #ff000000
menu color title 0  #ffffffff #00000000
menu color tabmsg 0  #ffffffff #00000000
menu color unsel 0  #ffffffff #00000000
menu color hotsel 0  #ff000000 #ffffffff
menu color hotkey 7  #ffffffff #ff000000
menu color scrollbar 0  #ffffffff #00000000
label linux
   menu label ^Install or upgrade an existing system
   menu default
   kernel vmlinuz
   append initrd=initrd.img ks= ftp : //192 .168.22.1 /pub/centos6 .cfg
label vesa
   menu label Install system with ^basic video driver
   kernel vmlinuz
   append initrd=initrd.img xdriver=vesa nomodeset
label rescue
   menu label ^Rescue installed system
   kernel vmlinuz
   append initrd=initrd.img rescue
label  local
   menu label Boot from ^ local  drive
   localboot 0xffff
label memtest86
   menu label ^Memory  test
   kernel memtest
   append -
[root@jie1 ~] # service dhcpd restart
Shutting down dhcpd:                                       [  OK  ]
Starting dhcpd:                                            [  OK  ]
[root@jie1 ~] # chkconfig tftp on
[root@jie1 ~] # service xinetd restart
Stopping xinetd:                                           [  OK  ]
Starting xinetd:                                           [  OK  ]
[root@jie1 ~] #
[root@jie1 ~] # service vsftpd restart
Shutting down vsftpd:                                      [  OK  ]
Starting vsftpd  for  vsftpd:                                [  OK  ]
[root@jie1 ~] # ss -tunlp | grep 67
udp    UNCONN    0    0       *:67     *:*      users :(( "dhcpd" ,2898,7))
[root@jie1 ~] # ss -tunlp | grep 69
udp    UNCONN    0    0       *:69     *:*      users :(( "xinetd" ,2976,5))


至此PXE Server的配置安装过程已经完成,现在测试能否自动安装。

121354836.png

121401430.png

123812471.png


PXE安装一定程度的解决了自动化部署安装操作系统,但是利用PXE安装不同版本的操作系统,这会使得PXE很难用于实现,为解决这一美中不足的缺陷cobbler应用而生,尽情期待cobbler自动化部署安装不同版本的操作系统。










本文转自 jie783213507 51CTO博客,原文链接:http://blog.51cto.com/litaotao/1307996,如需转载请自行联系原作者
目录
相关文章
|
12天前
|
机器学习/深度学习 人工智能 算法
猫狗宠物识别系统Python+TensorFlow+人工智能+深度学习+卷积网络算法
宠物识别系统使用Python和TensorFlow搭建卷积神经网络,基于37种常见猫狗数据集训练高精度模型,并保存为h5格式。通过Django框架搭建Web平台,用户上传宠物图片即可识别其名称,提供便捷的宠物识别服务。
153 55
|
1月前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
80 2
|
22天前
|
机器学习/深度学习 人工智能 算法
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
宠物识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了37种常见的猫狗宠物种类数据集【'阿比西尼亚猫(Abyssinian)', '孟加拉猫(Bengal)', '暹罗猫(Birman)', '孟买猫(Bombay)', '英国短毛猫(British Shorthair)', '埃及猫(Egyptian Mau)', '缅因猫(Maine Coon)', '波斯猫(Persian)', '布偶猫(Ragdoll)', '俄罗斯蓝猫(Russian Blue)', '暹罗猫(Siamese)', '斯芬克斯猫(Sphynx)', '美国斗牛犬
122 29
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
|
14天前
|
存储 人工智能 自然语言处理
ChatMCP:基于 MCP 协议开发的 AI 聊天客户端,支持多语言和自动化安装 MCP 服务器
ChatMCP 是一款基于模型上下文协议(MCP)的 AI 聊天客户端,支持多语言和自动化安装。它能够与多种大型语言模型(LLM)如 OpenAI、Claude 和 OLLama 等进行交互,具备自动化安装 MCP 服务器、SSE 传输支持、自动选择服务器、聊天记录管理等功能。
94 15
ChatMCP:基于 MCP 协议开发的 AI 聊天客户端,支持多语言和自动化安装 MCP 服务器
|
24天前
|
人工智能 自然语言处理 JavaScript
Agent-E:基于 AutoGen 代理框架构建的 AI 浏览器自动化系统
Agent-E 是一个基于 AutoGen 代理框架构建的智能自动化系统,专注于浏览器内的自动化操作。它能够执行多种复杂任务,如填写表单、搜索和排序电商产品、定位网页内容等,从而提高在线效率,减少重复劳动。本文将详细介绍 Agent-E 的功能、技术原理以及如何运行该系统。
78 5
Agent-E:基于 AutoGen 代理框架构建的 AI 浏览器自动化系统
|
8天前
|
数据采集 监控 安全
公司网络监控软件:Zig 语言底层优化保障系统高性能运行
在数字化时代,Zig 语言凭借出色的底层控制能力和高性能特性,为公司网络监控软件的优化提供了有力支持。从数据采集、连接管理到数据分析,Zig 语言确保系统高效稳定运行,精准处理海量网络数据,保障企业信息安全与业务连续性。
31 4
|
1月前
|
安全 Windows
【Azure Cloud Service】在Windows系统中抓取网络包 ( 不需要另外安全抓包工具)
通常,在生产环境中,为了保证系统环境的安全和纯粹,是不建议安装其它软件或排查工具(如果可以安装,也是需要走审批流程)。 本文将介绍一种,不用安装Wireshark / tcpdump 等工具,使用Windows系统自带的 netsh trace 命令来获取网络包的步骤
72 32
|
1月前
|
弹性计算 监控 数据库
制造企业ERP系统迁移至阿里云ECS的实例,详细介绍了从需求分析、数据迁移、应用部署、网络配置到性能优化的全过程
本文通过一个制造企业ERP系统迁移至阿里云ECS的实例,详细介绍了从需求分析、数据迁移、应用部署、网络配置到性能优化的全过程,展示了企业级应用上云的实践方法与显著优势,包括弹性计算资源、高可靠性、数据安全及降低维护成本等,为企业数字化转型提供参考。
59 5
|
28天前
|
机器学习/深度学习 运维 监控
智能化运维:从自动化到AIOps的演进之路####
本文深入探讨了IT运维领域如何由传统手工操作逐步迈向高度自动化,并进一步向智能化运维(AIOps)转型的过程。不同于常规摘要仅概述内容要点,本摘要将直接引入一个核心观点:随着云计算、大数据及人工智能技术的飞速发展,智能化运维已成为提升企业IT系统稳定性与效率的关键驱动力。文章详细阐述了自动化工具的应用现状、面临的挑战以及AIOps如何通过预测性分析和智能决策支持,实现运维工作的质变,引领读者思考未来运维模式的发展趋势。 ####
|
28天前
|
机器学习/深度学习 数据采集 人工智能
智能化运维:从自动化到AIOps的演进与实践####
本文探讨了智能运维(AIOps)的崛起背景,深入分析了其核心概念、关键技术、应用场景及面临的挑战,并对比了传统IT运维模式,揭示了AIOps如何引领运维管理向更高效、智能的方向迈进。通过实际案例分析,展示了AIOps在不同行业中的应用成效,为读者提供了对未来智能运维趋势的洞察与思考。 ####
73 1

热门文章

最新文章