PXE结合kiskstart实现自动化安装系统

PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统即所谓的无盘工作站。

PXE工作条件:

  • 客户端

    • 硬件支持:网卡或主板集成了PXEClient才可以和PXEServer进行通信
  • 服务端
    • DHCP服务:既然要实现网络通信IP地址自然是必不可少的
    • TFTP(Trivial FTP)或MFTP(Multicast TFTP)服务,简单FTP服务提供PXE启动需要的pxelinux.0、vmlinux和initrd等文件
    • DNS服务,有时会用到,可选
    • FTP/HTTP/NFS 输出系统安装树,软件仓库

操作演示

# step 1: 安装dhcp
[[email protected] ~]# yum install -y dhcp
# 为省事可以直接拷个配置文件的样例过去再做修改
[[email protected] ~]# cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf 
cp: overwrite `/etc/dhcp/dhcpd.conf‘? y
[[email protected] ~]# vim /etc/dhcp/dhcpd.conf 
option domain-name "bob.org";    # 域名后缀
option domain-name-servers 172.16.100.2;    # dns 服务器

default-lease-time 43200;    # IP地址租约
max-lease-time 86400;        # 最大租约时间
    
log-facility local7;         # 日志文件

# 一个subnet定义一个IP地址池
subnet 172.16.100.0 netmask 255.255.0.0 {
  range 172.16.100.100 172.16.100.200;
  option routers 172.16.100.2;    
  next-server 172.16.100.11;    # 指定tftp服务器地址
  filename="pxelinux.0";        # 指定pxlinux.0文件地址,必须用双引号,地址是相对tftp服务根目录的
}

# 安装tftp和syslinux, 安装syslinux会自动安装上syslinux-nonlinux和mtools
#(pxelinux.0由syslinux-nonlinux提供的)
[[email protected] ~]# yum install tftp-server syslinux -y
[[email protected] ~]# rpm -ql tftp-server
/etc/xinetd.d/tftp    # tftp服务脚本,是Xinet管理的服务
/usr/sbin/in.tftpd
/usr/share/doc/tftp-server-0.49
/usr/share/doc/tftp-server-0.49/CHANGES
/usr/share/doc/tftp-server-0.49/README
/usr/share/doc/tftp-server-0.49/README.security
/usr/share/doc/tftp-server-0.49/README.security.tftpboot
/usr/share/man/man8/in.tftpd.8.gz
/usr/share/man/man8/tftpd.8.gz
/var/lib/tftpboot        # tftp服务的根目录

# 可以看到pxlinux.0是由syslinux-nonlinux这个软件包提供的
[[email protected] ~]# rpm -ql syslinux-nonlinux | grep pxelinux.0
/usr/share/syslinux/gpxelinux.0
/usr/share/syslinux/pxelinux.0

# 把pxelinux.0复制到tftp服务的要目录下,因为dhcp配置里指定的是根目录
[[email protected] ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

# 为方便直接把光盘挂到ftp目录下面
[[email protected] ~]# mount -r /dev/cdrom /var/ftp/pub/centos/

# 为tftp下面提供vmlinuz和initrd.img
[[email protected] ~]# cp /var/ftp/pub/centos/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/
[[email protected] ~]# cd /var/lib/tftpboot/
[[email protected] tftpboot]# ls
initrd.img  pxelinux.0  vmlinuz

# tftp默认的菜单配置文件是放在pxelinux.cfg/default下的
# 这个相当于光盘下isolinux/isolinux.cfg,可以把这个文件复制过来修改一下就好
[[email protected] tftpboot]# mkdir pxelinux.cfg

# 为tftp目录下准备菜单程序和boot.msg,背景图片splash.jpg
# vesamenu.c32为菜单程序,可从光盘里复制过来,syslinx-nonlinux包也提供了,在/usr/share/syslinux/下
[[email protected] tftpboot]# cp /var/ftp/pub/centos/isolinux/{boot.msg,splash.jpg,vesamenu.c32} ./
[[email protected] tftpboot]# ls
boot.msg  initrd.img  isolinux.cfg  pxelinux.0  splash.jpg  vesamenu.c32  vmlinuz
[[email protected] tftpboot]# cp /var/ftp/pub/centos/isolinux/isolinux.cfg pxelinux.cfg/default

# 根据需要修改下default文件
[[email protected] tftpboot]# vim pxelinux.cfg/default 

default vesamenu.c32
#prompt 1
timeout 600

display boot.msg

menu background splash.jpg
menu title Welcome to CentOS 6.4 via PXE!
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://172.16.100.11/pub/ks.cfg
label rescue
  menu lalbe ^Rescue
  kernel vmlinuz
  append initrd=initrd.img rescue

# tftp是xinet管理的服务工作在端口69/udp, 启动tftp和dhcp服务
[[email protected] ~]# chkconfig tftp on
[[email protected] ~]# service xinetd restart
Stopping xinetd:                                           [  OK  ]
Starting xinetd:                                           [  OK  ]
[[email protected] ~]# service dhcpd start
Starting dhcpd:                                            [  OK  ]      
[[email protected] ~]# netstat -unlp | grep 67
udp        0      0 0.0.0.0:67    0.0.0.0:*               15641/dhcpd         
[[email protected] ~]# netstat -unlp | grep 69
udp        0      0 0.0.0.0:69    0.0.0.0:*               16097/xinetd
# 连上去查看tftp是否工作正常,tftp没有ls命令
[[email protected] ~]# tftp 172.16.100.11
tftp> help
tftp-hpa 0.49
Commands may be abbreviated.  Commands are:

connect 	connect to remote tftp
mode    	set file transfer mode
put     	send file
get     	receive file
quit    	exit tftp
verbose 	toggle verbose mode
trace   	toggle packet tracing
literal 	toggle literal mode, ignore ‘:‘ in file name
status  	show current status
binary  	set mode to octet
ascii   	set mode to netascii
rexmt   	set per-packet transmission timeout
timeout 	set total retransmission timeout
?       	print help information
help    	print help information

# verbose打开冗余模式,可以显示更多详细信息
tftp> verbose
Verbose mode on.

# get文件成功代表tftp正常工作
tftp> get pxelinux.0
getting from 172.16.100.11:pxelinux.0 to pxelinux.0 [netascii]
Received 26981 bytes in 0.0 seconds [72143767 bit/s]

安装过程截图:

这个界面一闪就过去了,想看到的话得把tftp停一下就可以看到了

安装成功

时间: 2024-10-12 08:39:05

PXE结合kiskstart实现自动化安装系统的相关文章

初步使用pxe自动化安装系统

1.安装dhcp服务 #yum install dhcpd 修改配置文件 /etc/dhcp/dhcpd.conf # This is a very basic subnet declaration. subnet 172.16.249.0 netmask 255.255.255.0 {  range 172.16.249.111 172.16.249.115;  option routers 172.16.0.1;  next-server 172.16.249.161;  filename

PXE自动化安装系统

如何配置PXE: 一.dhcp安装 1.安装程序 2.修改配置脚本 配置dhcp服务 subnet ... netmask ... { ... next-server TFTP-SERVER-IP; filename "pxelinux.0"; } 提示脚本示例文档  cat /etc/dhcp/dhcpd.conf 二.tftp安装 1.程序安装 2.默认文件目录 3.基本演示操作 4.服务启动 三.提供PXE的工作环境 1.程序安装  yum install syslinux 2.

利用DHCP,http,tftp,pxe实现纯自动化安装系统

一.实现原理所需要的服务简单介绍1.DHCP:动态主机配置协议,用于内部网络自动分配IP地址2.tfpt:简单的网络共享服务,类似于ftp3.pxe:支持远程主机通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统4.http:超文本传输协议,通过网络共享文本(这里也可以使用ftp服务)实现过程1.客户端(没有装系统的计算机)通过在局域网内寻找DHCP服务器2.DHCP服务器回应,发送IP地址给该客户端并且告诉该客户端下一步寻找哪一个服务器,也就是TFTP3.客户端向TFTP要BootL

简单搭建PXE无人值守自动化安装系统

PXE环境概述 在公司进行批量部署服务器安装方法: Kickstart (PXE+DHCP+TFTP+HTTP) 或 Cobbler 批量装机软件介绍 Kickstart和Cobbler. ??Kickstart是一种无人值守的安装方式.它的工作原理是在安装过程中记录人工干预填写的各种参数,并生成一个名为ks.cfg的文件.如果在自动安装过程中出现要填写参数的情况,安装程序首先会去查找ks.cfg文件,如果找到合适的参数,就采用所找到的参数:如果没有找到合适的参数,便会弹出对话框让安装者手工填写

PXE通过网络自动化安装系统

PXE通过网络自动化安装系统 要实现此功能要有三个基础的服务:DHCP服务,TFTP服务,HTTP服务HTTP:存放ks应答文件,安装源文件 DHCP:提供网络地址,提供TFTP服务器地址 TFTP: 存放启动文件,将网卡启动的内核文件,菜单文件存放于此 /var/lib/tftpboot 目录下 1 HTTP服务设置 安装HTTP,设置为开机启动,启动HTTP yum install httpd systemctl enable httpd systemctl start httpd 创建相应

kickstart安装配置自动化安装系统

环境:VMware Workstation 10.0.1 build-1379776网络:桥接虚拟机A:kickstart+Dhcp+Nfs+Tftp(系统版本centos6.2)        ip  192.168.1.51 虚拟机B:客户机(需要自动化安装系统的机器)                  ip  192.168.1.52 以下操作均在A机上:挂载iso系统文件到光驱,记得在vm里光驱那里[已连接]打勾mount /dev/cdrom /mnt/关闭防火墙和selinuxser

基于cobbler实现自动化安装系统

基于cobbler实现自动化安装系统 环境介绍 centos6.8 为centos6.8提供两块网卡 (非必要) 一块为桥接,方便xshell连接和测试 一块为vmnet3:用来搭建dhcp,tftp,和为客户端提供cobbler服务 前提,(确保安装TFTP,dhcp,rsync) # yum install httpd cobbler cobbler-web pykickstart debmirror 1.启动对应的服务 # service httpd start # service cob

pxe+dhcp+apache+kickstart无人值守安装系统centos

pxe+dhcp+apache+kickstart无人值守安装系统 挂载系统盘. mkdir /mnt/cdrom mount /dev/cdrom /mnt/cdrom 关闭selinux.关闭防火墙 setenforce 0 /etc/init.d/iptables stop 安装apache服务(默认是安装的) yum install apache -y 复制光盘的内容,到网站目录 cp -rf /mnt/cdrom/* /var/www/html/ 安装tftp-server服务 yum

Kickstart自动化安装系统

首先需要安装软件: Yum install –y dhcp tftp-server  nfs-utils Yum install –y syslinux 1.配置dhcp服务器 Dhcp服务器的配置文件在/etc/dhcp/dhcpd.conf,把他的配置文件改为: ddns-update-style interim; ignore client-updates; next-server 192.168.10.142; filename "pxelinux.0"; allow boot