一、实现原理
所需要的服务简单介绍
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关闭

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

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

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

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

[root@centos7 yum.repos.d]# yum install -y httpd dhcp tftp-service syslinux     #安装服务

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

[root@centos7 yum.repos.d]# mkdir /var/www/html/centos/{5,6,7,ksdir} #创建对用的文件,对应关系需要根据实际情况
[root@centos7 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的文件

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

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

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

[root@centos7 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服务ipfilename "pxelinux.0";     #找的文件名
}

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

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

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

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

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

[root@lin pxelinux.cfg]# cat default
default menu.c32
timeout 600  #不选择默认多少秒进入默认选项
display boot.msg
menu title AutoInstall CentOS 5,6,7
label centos 5 minimenu label ^Install CentOS 5kernel centos5/vmlinuzappend initrd=centos5/initrd.img ks=http://192.168.0.254/centos/ksdir/ks5.cfg   #centos5的ks.cfg文件
label centos 6 minimenu label I^nstall CentOS 6kernel 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 minimenu label In^stall CentOS 7kernel centos7/vmlinuzappend initrd=centos7/initrd.img ks=http://192.168.0.254/centos/ksdir/ks7.cfg #centos7的ks.cfg文件
label local   #若不选在则默认从硬盘启动menu label Boot from ^local drivelocalboot 0xffffmenu default
menu end

自此实现自动化安装系统

转载于:https://blog.51cto.com/10492754/2103599

利用DHCP,http,tftp,pxe实现批量自动化部署系统相关推荐

  1. 运维之道 | Kickstart+DHCP+FTP+TFTP+PXE 无人值守批量 Linux(Centos7)服务器安装

    Kickstart+DHCP+FTP+TFTP+PXE 无人值守批量 Linux(Centos7)服务器安装 Kickstart: 将安装系统的过程中通过ks.cfg文件中的配置信息,实现自动安装配置 ...

  2. Cobbler 自动化部署系统

    第1章 Cobbler 自动化部署系统 1.1 环境准备 1.1.1 查看系统版本 [root@Cobbler ~]# cat /etc/redhat-release CentOS Linux rel ...

  3. PXE实现批量安装部署(win与linux系统)

    1.PXE简介 PXE(preboot execute environment)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并 ...

  4. 半天搭建你的Jenkins持续集成与自动化部署系统

    前言 相信每一位程序员都经历过深夜加班上线的痛苦!而作为一个加班上线如家常便饭的码农,更是深感其痛.由于我们所做的系统业务复杂,系统庞大,设计到多个系统之间的合作,而核心系统更是采用分布式系统架构,由 ...

  5. linux kickstart乱码,PXE+kickstart 批量安装部署centos6系统

    安装的条件: 服务器端: 支持TFTP:提供引导文件与系统安装所必须的文件 支持DHCP服务器:分配IP地址.定位TFTP服务器位置. 客户端: 网卡支持PXE协议 主板支持网络引导 环境准备: 1. ...

  6. 007-Cobbler批量自动化部署Windows10和Server 2019及激活

    这是坚持技术写作计划(含翻译)的第7篇,定个小目标999,每周最少2篇. 本文主要讲解通过CentOS7.6 Minimal + Cobbler 自动化安装CentOS,Ubuntu,Windows ...

  7. 解决pxe网络批量安装部署linux遇到的问题和解决方法

    解决"出现Unable to retrieve 192.168.0.100/var/www/html/images/install.img错误" 分析:我们必须了解这个错误出现在哪 ...

  8. 利用Jenkins的Pipeline实现集群自动化部署SpringBoot项目

    2019独角兽企业重金招聘Python工程师标准>>> 环境准备 Git: 安装部署使用略. Jenkins: 2.46.2版本安装部署略(修改jenkins执行用户为root,省得 ...

  9. 快来看看如何手动搭建自动化部署系统

    视频教程:点击进入 一.前言 你还在手动npm run build吗?你还在手动拷贝文件到服务器吗?你out了.你在手动打包手动部署的时候,我们在饮茶,抽烟.上厕所,因为已经有工具帮我们完成了你正在手 ...

最新文章

  1. 火爆 GitHub!这个图像分割神器究竟有什么魅力?
  2. 深入了解volatile
  3. JavaScript的arguments及其子对象
  4. openstack私有云_OpenStack-下一代私有云的未来
  5. php中将excel写入mysql数据库的示例
  6. MathType几个常用字体的名称
  7. 九个编写Dockerfiles的常见错误
  8. php 三菱plc,三菱plc编程
  9. 解决SVN Cleanup错误: Failed to run the WC DB work queue associated with
  10. linux网络端口失效( Device eth0 does not seem to be present,delaying initialization)解决方法
  11. 计算机考研作息时间表,2016考研人:牛人的考研作息时间表
  12. 操作系统的发展历史(综述性小论文)
  13. 我对锤子ROM 功能的看法——功能篇
  14. pdfbox pdf转图片,图片长宽大小与pdf保持一致
  15. 网络与验证服务器失联怎样修复,GCP用一键服务器失联了,如何重装系统?
  16. 中国大陆肯德基餐厅全面停用塑料吸管;可口可乐与时尚包袋品牌Kipling推出联名系列 | 美通企业日报...
  17. 安卓软件开发进阶之工具也疯狂
  18. 路由器交换机:单臂路由静态路由
  19. CPDA 第 8 次课改,全新课程上线——暨上海第 46 期正式开课
  20. 饥荒服务器linux,搭建饥荒服务器

热门文章

  1. 求伯君领衔 5 代技术人对话,00 后浪来袭 1024 程序员节
  2. IDC报告:欧洲区块链支出8亿美元,排在首位
  3. Python编写爬虫编写到Excel中
  4. 【PHP】字符串去空格并将每个单词首字母转换成大写de多种解法
  5. 一对一培训之视频免费分享-2018-01-21-第 03 阶段-准备-基础-架构-01
  6. 深度揭秘阿里移动端高性能动态化方案Weex
  7. Oracle 11.2 安装Oracle 11.1的HR schoma
  8. 查看PID 进程是否存在的一个小技巧
  9. 我的Java开发学习之旅------JAVA 笔记ClassLoader.getResourceAsStream() 与 Class.getResourceAsStream()的区别...
  10. showModalDialog 页面上GridView的分页问题