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

一、实现原理
所需要的服务简单介绍
1.DHCP:动态主机配置协议,用于内部网络自动分配IP地址
2.tfpt:简单的网络共享服务,类似于ftp
3.pxe:支持远程主机通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统
4.http:超文本传输协议,通过网络共享文本(这里也可以使用ftp服务)
实现过程
1.客户端(没有装系统的计算机)通过在局域网内寻找DHCP服务器
2.DHCP服务器回应,发送IP地址给该客户端并且告诉该客户端下一步寻找哪一个服务器,也就是TFTP
3.客户端向TFTP要BootLoader
4.TFTP服务器将pxelinux.0相关文件交给客户端
5.客户端向TFTP服务器要内核文件和initrd.img
6.TFTP将这两个文件路径告诉客户端
7.客户端通过pxe提供的路径向http服务要ks.cfg(自应答文件)
8.客户端根据ks.cfg文件中指定的安装路径寻找安装所需要的文件
二、实现所需要的步骤
1.将虚拟机本身自带的dhcp关闭,并且将充当DHCP服务器主机IP改为静态地址,并且将防火墙和selinux关闭

[[email protected] tftpboot]# nmcli connection modify ens34 ipv4.method manual ipv4.addresses 192.168.0.254/24  #配置网卡信息
[[email protected] tftpboot]# nmcli connection down ens34  #禁用
[[email protected] tftpboot]# nmcli connection up ens34  #启用
[[email protected] tftpboot]# sed -ri ‘s/(SELINUX=).*/\1disabled/‘ /etc/selinux/config   #将selinux设置成关闭
[[email protected] tftpboot]# systemctl stop firewalld.service    #禁用防火墙
[[email protected] tftpboot]# systemctl disable firewalld.service 

2.将虚拟添加3个光驱设备,分别挂载5,6,7三个系统的镜像,为了安装后期所需要的http服务,这里需要临时挂载CentOS 7的光盘镜像

[[email protected] ~]# mount /dev/cdrom /mnt/   #临时挂载
[[email protected] yum.repos.d]# cat /etc/yum.repos.d/base.repo
[base]
name=base
baseurl=file:///mnt
gpgcheck=0

3.安装自动安装系统所需要的服务

[[email protected] yum.repos.d]# yum install -y httpd dhcp tftp-service syslinux     #安装服务

4.在/var/www/html目录下创建各个版本的挂载路径和自应答文件目录,并且将光盘所对应的目录写入/etc.fstab文件中,使其永久生效

[[email protected] yum.repos.d]# mkdir /var/www/html/centos/{5,6,7,ksdir} #创建对用的文件,对应关系需要根据实际情况
[[email protected] 6]# vim /etc/fstab
/dev/sr0                                /var/www/html/centos/5    iso9660 defaults        0 0
/dev/sr1                                /var/www/html/centos/6    iso9660 defaults        0 0
/dev/sr2                                /var/www/html/centos/7    iso9660 defaults        0 0

5.创建自应答文件,该文件也可在系统安装完成后,会在/root目录下生成一个anaconda-ks.cfg的文件

[[email protected] tftpboot]# yum install -y system-config-kickstart.noarch   #安装生成自应答文件的工具
[[email protected] tftpboot]system-config-kickstart
[[email protected] ~]# ksvalidator anaconda-ks.cfg #检查该文件语法6 7 通用

注意,在该界面中,若在centos5上创建,仓库的 " [ ] "内需要填写base,centos7中则需要填写development,否则,在Package Selection 界面不会显示选择在安装系统是所需要的软件包 centos6则随意填写

软件包根据需要的进行选择,然后保存
6.将三个系统的自应答文件存放到/var/www/html/centos/ksdir/目录下
7.配置DHCP服务器

[[email protected] tftpboot]# cp /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf
#配置文件
option domain-name "lin.com";     #域名
option domain-name-servers 192.168.0.254;  #
default-lease-time 600;   #租期
max-lease-time 7200;    #用户可调最大
log-facility local7;  #日志文件
subnet 192.168.0.0 netmask 255.255.255.0 {   #自动过去的网段
  range 192.168.0.2 192.168.0.253;    #分发的地址范围
  option routers 192.168.0.254;   #网关
  next-server 192.168.0.254;   #tftp服务ip
  filename "pxelinux.0";     #找的文件名
}

8.将系统的内核文件和initrd.img文件复制到各个版本的目录下

[[email protected] tftpboot]# mkdir /var/lib/tftpboot/centos{5,6,7}
[[email protected] tftpboot]# mkdir /var/lib/tftpboot/pxelinux.cfg
[[email protected] tftpboot]# cp /var/www/html/centos/5/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot/centos5/
[[email protected] tftpboot]# cp /var/www/html/centos/6/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot/centos6/
[[email protected] tftpboot]# cp /var/www/html/centos/6/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot/centos7/

9.拷贝pxe需要的配置文件

[[email protected] tftpboot]# cp /usr/share/syslinux/{menu.c32,pxelinux.0} .  #当前目录/var/lib/tftpboot/
[[email protected] tftpboot]# cp /var/www/html/centos/7/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

10.配置/var/lib/tftpboot/pxelinux.cfg/default文件,作用是让用户选择安装的系统版本

[[email protected] pxelinux.cfg]# cat default
default menu.c32
timeout 600  #不选择默认多少秒进入默认选项
display boot.msg
menu title AutoInstall CentOS 5,6,7
label centos 5 mini
  menu label ^Install CentOS 5
  kernel centos5/vmlinuz
  append initrd=centos5/initrd.img ks=http://192.168.0.254/centos/ksdir/ks5.cfg   #centos5的ks.cfg文件
label centos 6 mini
  menu label I^nstall CentOS 6
  kernel centos6/vmlinuz  #这里的路径是填的以/var/lib/tftpboot为路径的相对路径
  append initrd=centos6/initrd.img ks=http://192.168.0.254/centos/ksdir/ks6.cfg #centos6的ks.cfg文件
label centos 7 mini
  menu label In^stall CentOS 7
  kernel centos7/vmlinuz
  append initrd=centos7/initrd.img ks=http://192.168.0.254/centos/ksdir/ks7.cfg #centos7的ks.cfg文件
label local   #若不选在则默认从硬盘启动
  menu label Boot from ^local drive
  localboot 0xffff
  menu default
menu end

自此实现自动化安装系统

原文地址:http://blog.51cto.com/10492754/2103599

时间: 2024-10-19 07:38:48

利用DHCP,http,tftp,pxe实现纯自动化安装系统的相关文章

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 创建相应

PXE网络引导自动化安装系统详解

一.PXE:预引导加载环境 1.PXE Preboot ExecuteEnvironment:支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicasttrivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成Client端自动化基本软件设置,从而引导预先安装在服务器中的

PXE批量实现自动化安装系统

  一.简介 在学习的过程中大部分人都是使用手动安装操作系统,而在实际生产环境中,手动安装系统的方式显然不现实,因为服务器众多,所以可使用pxe(preboot excute environment)技术来批量安装操作系统,从而减少"人工智能".     二.实现原理 实验拓扑图: 原理:pxe装机重要依赖tftp服务器.dhcp服务器.repo仓库及其kickstart配置文件即可完成,安装系统时,客服端主机向dhcp服务器发起dhcp请求,获取一个IP地址后将去tftp服务器读取v

(DHCP+PXE+TFTP+HTTP)实现Linux自动化安装的演示实验

写在前面:如果此文有幸被某位朋友看见并发现有错的地方,希望批评指正.如有不明白的地方,愿可一起探讨. 准备工作 1.挂载光盘镜像: # mount /dev/cdrom /var/www/html/CentOS6.5/ 提示:为什么要将光盘镜像挂载于此?(在自动化安装过程中,通过http服务提供yum安装源) 2.制作本地YUM仓库: # vim /etc/yum.repos.d/CentOS6.5-Local.repo 配置DHCP服务 1.安装DHCP服务 # yum -y install

kickstart+DHCP+NFS+TFTP+PXE 全自动化部署Linux系统

目录 kickstart+DHCP+NFS+TFTP+PXE 安装详细步骤 执行PXE--kickstart 安装需要的设备为 用到的kickstart工具.依赖于X Windows,所以要提前安装好,XWindows及GNOME 并重启系统 修改/etc/inittab配置文件 重启系统 reboot 启动图像化 上传centos7.4.iso 至 /usr/loca/src mkdir -p mnt/cdrom 安装dhcp 创建Apache目录 mkdir -p /var/html/www

构建PXE环境--网络自动化安装CentOs6.5

一.构建PXE环境实验 1.当前系统版本 2.查看网络环境和yum源 当前系统的IP是192.168.1.60,子网掩码是255.255.255.0,默认网关是192.168.1.1 本次实验使用的yum源是本地光盘,构建过程如下: (1)挂载本地光盘(已做成yum仓库的)到/media/centos6.5_DVD1目录下     (2)在/etc/yum.repos.d/目录下新建yum的配置文件local.repo,并编辑该配置文件,指定yum源在本地光盘上 3.安装并启动DHCP服务 (1

初步使用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实现操作系统的自动化安装

在安装Linux系统时,常见的场景有使用光盘的方式来安装,在需要安装的计算机数量不多,且个性化定制安装的情况下,使用光盘来交互式的选择配置方式安装,是我们最常见的情况,当然使用光盘的方式也可以实现免交互的方式来实现自动安装,其方式是在安装开始前提供一份kickstart文件. 基于光盘实现系统的自动化安装,我们需要向光盘的镜像文件中添加kickstart配置文件,而系统安装过程中需要用到的其他重要的文件有:在isolinux 目录下有isolinux.bin,isolinux.cfg,boot.

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.