PXE如何实现自动化部署Linux系统介绍

目录
  • 背景说明
  • 配置DHCP
  • 编辑DHCP文件(动态主机配置协议)
  • tftp配置
  • syslinux配置
  • 配置httpd
  • 配置无人值守

背景说明

在数据中心,一次几十台甚至几百台服务器上线,系统安装将变得非常麻烦,系统安装好了,还会涉及很多配置,工作量都非常大。很多虚拟化平台如VMware,FusionCompute等安装一般通过ISO逐台安装,或者通过厂商工具来安装,比较麻烦。

PXE is Pre-Boot Execution Environment # 预启动的执行环境
PXE 通过网卡引导的技术
1.BISO支持
2.网卡支持
3.需要在BIOS中开启;服务器BMC界面打开
部署一台服务器,在服务器上安装DHCP+tftp (DHCP提供动态获取IP)
网卡DCHP获取信息
DHCP除了分配ip地址 还能提供引导程序的名字和tftp的server的地址
引导程序加载到内存,根据配置文件来引导

思路:

配置yum源
关闭防火墙和selinux
安装dhcp,tftp-server,htppd,syslinux包
配置dhcp,tftp-server,并启动服务
安装system-config-kickstart包,并生成ks无人值守脚本
配置引导菜单

配置DHCP

挂载光盘

mount /dev/cdrom /media

配置yum源

. `vim dvd.repo
	[development]         #定义后期选包
	name=centos
	baseurl=file:///media
	gpgcheck=0
	enabled=1`

编辑DHCP文件(动态主机配置协议)

cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf   #拷贝模板,覆盖掉conf文件
vim   /etc/dhcp/dhcpd.conf    #全局配置和子配置二选一,
   全局配置 # option definitions common to all supported networks...
  7 option domain-name "example.org";
  8 option domain-name-servers ns1.example.org, ns2.example.org;
  9
 10 default-lease-time 600;
 11 max-lease-time 7200;
 12 next-server 192.168.100.10;   #指定tftpserver在哪里
 13 filename "/pxelinux.0";     #网络引导程序文件

 #  子配置  A slightly different configuration for an internal subnet.
 47 #子网配置
 48 subnet 192.168.100.0 netmask 255.255.255.0 {
 49   range 192.168.100.11 192.168.100.30;       #DHCP地址池的范围
 50   option domain-name-servers 192.168.100.2;  #DNS地址   (可以设置)
 51   option domain-name "example.com"; #域名地址
 52   option routers 192.168.100.1;     #网关地址
 53   option broadcast-address 192.168.100.255;  #广播地址
 54   default-lease-time 600;      #租约期  获取到的ip存活多长时间
 55   max-lease-time 7200;  #租约期到期,在的话就还可以用,不在自动回收
 56 }

tftp配置

[root@pxeserver ~]# vim /etc/xinetd.d/tftp 

# default: off
# description: The tftp server serves files using the trivial file transfer \
#       protocol.  The tftp protocol is often used to boot diskless \
#       workstations, download configuration files to network-aware printers, \
#       and to start the installation process for some operating systems.
service tftp
{
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -s /var/lib/tftpboot
        disable                 = no     ##yes修改为no
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}

syslinux配置

yum provides "*/pxelinux.0"     ##查找此文件属于那个软件包
yum install -y syslinux         #安装syslinux
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/    #复制pxelinux.0文件到tftp根目录下面
mkdir -p /var/lib/tftpboot/pxelinux.cfg      #安放default配置文件
cp /media/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default    ##开机文件cp到pxeLinux.cfg目录下
cp /media/isolinux/* /var/lib/tftpboot/        #cp安放iso文件,default来读取(安装菜单会显示)
此时还没有系统
配置default文件
menu separator # insert an empty line
menu separator # insert an empty line

label linux
  menu label ^Install CentOS 7.5   #菜单目录
  kernel vmlinuz      #内核文件
  append initrd=initrd.img ks=http://192.168.100.10/ks/ks.cfg

配置httpd

yum install -y httpd
systemctl start httpd
systemctl enable httpd
mkdir -p /var/www/html/centos
cp -rfv /media/* /var/www/html/centos/
[root@pxe-server ~]# cat /etc/yum.repos.d/dvd.repo
[development]         #定义后期选包
name=centos
baseurl=http://192.168.100.10/centos
gpgcheck=0
enabled=1

配置无人值守

yum install -y system-config-kickstart
system-config-kickstart      #启动

ks.cfg文件具体配置如下:









到此这篇关于PXE如何实现自动化部署Linux系统介绍的文章就介绍到这了,更多相关PXE自动化部署Linux内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Linux安装apache服务器的配置过程

    准备这些包 安装 查看是否已经安装过apache  rpm  -qa  |grep  httpd 卸载apache rpm -e --nodeps  httpd (-nodeps 是忽略该软件的依赖关系) 建立rpm包存放文件夹 cd  / mkdir rpm_dir 解压包 tar -zxvf httpd-2.4.51.tar.gz tar -zxvf apr-1.7.0.tar.gz tar -zxvf apr-util-1.6.1.tar.gz 移动apache的两个依赖文件apr,apr

  • linux下ceph分布式安装使用教程

    目录 前言 一.基础环境 1.服务分布情况 2. 网络配置 (所有节点) 3.SSH免密访问 (所有节点) 二.安装 1.将新挂载的硬盘格式化,作为osd的存储(有osd节点的都要做) 2.在管理节点node1安装ceph-deploy管理工具 3.在所有主机上安装ceph 4.在管理节点上安装Monitor(监控) 5.创建osd 6.激活osd 7.部署mds 前言 k8s集群使用什么样的存储比较好那,我调研了一下分布式存储ceph,在这里分享给大家. 一.基础环境 1.服务分布情况 Nod

  • PXE如何实现自动化部署Linux系统介绍

    目录 背景说明 配置DHCP 编辑DHCP文件(动态主机配置协议) tftp配置 syslinux配置 配置httpd 配置无人值守 背景说明 在数据中心,一次几十台甚至几百台服务器上线,系统安装将变得非常麻烦,系统安装好了,还会涉及很多配置,工作量都非常大.很多虚拟化平台如VMware,FusionCompute等安装一般通过ISO逐台安装,或者通过厂商工具来安装,比较麻烦. PXE is Pre-Boot Execution Environment # 预启动的执行环境 PXE 通过网卡引导

  • Linux+Docker+SpringBoot+IDEA一键自动化部署的详细步骤

    Linux+Docker+SpringBoot+IDEA一键自动化部署的步骤 记录从打包到服务器配置上线全流程 安装docker 详细步骤请戳这里 用yum源安装用yum源安装 查看是否已安装docker列表 yum list installed | grep docke 安装docker yum -y install docker -y表示不询问安装,直到安装成功,安装完后再次查看安装列表 开放2375端口,开启远程访问 vim /usr/lib/systemd/system/docker.s

  • PXE kickstart自动化部署系统安装

    目录 准备环境 第一步:安装DHCP服务 第二步:安装tftp服务 第三步:安装Apache网站服务 第四步:编写ks文件 第五步:创建客户机,测试安装 准备环境 系统:centos7.4.1708 ip地址:eth0:192.168.10.31:eth1:172.16.1.31(可以使用单网卡) 防火墙:关闭 selinux:关闭 工具需求:dhcp:tftp:syslinux:apache:pykickstart 第一步:安装DHCP服务 安装服务: [root@kickstart ~]#

  • Linux实现项目的自动化部署

    一.自动化部署git项目 #!/bin/bash # 清除项目进程和历史文件 pkill -f start.py sleep 1 cd /root/automation |rm -rf testProduce/ # 获取项目最新git代码(前提服务器配置好git账户) git clone git@dev.test.com:test_code/testProduce.git # 启动项目 cd testProduce/ nohup /usr/python/bin/python3 start.py

  • 如何自动化部署项目?折腾服务器之旅~

    本篇文章讲的不是如何把一个项目部署上线,而是如何自动化上线. 开发了一个需求管理和发布系统. 通过这个系统,可以创建需求.创建发布计划.创建分支.部署到测试环境.部署到生产环境.正式上线.合并代码等. 一.功能设计 9.9元的阿里云服务器真的很慢,但还是足够折腾完这个项目. 用3个目录来模拟不同的环境. 目录 存放 project 存放所有的项目,比如本系统的前后端代码. pre-dir 预发环境,当然是用来测试的. pro-dir 生产环境,测试没问题,部署上线. 一图胜千言. 二.系统页面

  • Java利用jenkins做项目的自动化部署

    最近领导要求上海本地的项目需要使用进jenkins实现自动化部署,以便可以直接将项目移交给运维的同学,减轻开发的工作量.记录下这次爬坑的过程. 一.前言 Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括: 1.持续的软件版本发布/测试项目. 2.监控外部调用执行的工作. 上面是我从百科上down下来的,老实说没看懂,这是个什么玩意啊?其实以我现在的理解和应用,最多的便是部署了,其他功能待研究╮(╯_╰)╭撸主目前在上海一个不知名国企打工,我们现在项目的发布流程

  • 从零搭建docker+jenkins+node.js自动化部署环境的方法

    本次案例基于CentOS 7系统 适合有一定docker使用经验的人阅读 适合有一定linux命令使用经验的人阅读 1.docker部分 1.1.docker简介 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何接口 1.2.docker架构 简单的说,docker就是一个轻量级的linux系统.Docker 容器通过 Docker 镜像来创建.

  • 教你如何用Jenkins自动化部署项目(从零到搭建完成)

    最近在实习中接触了jenkins这个东西,所以花点时间了解了下.它可以在代码上传仓库(如github,gitee,gitlab)后,在jenkins(一个网站界面)中通过获取代码仓库中最新代码,进行自动化部署,而省去手动打包.上传服务器.部署这一系列步骤,非常方便. 下面教程分为以下几个部分: 一.在你的本地电脑或者linux服务器上下载安装jenkins: jenkins下载地址:https://jenkins.io/  下载网站的war包版本就好了 下载完后把它部署到你的tomcat上运行:

  • 关于Jenkins + Docker + ASP.NET Core自动化部署的问题(避免踩坑)

    本来没想着要写这篇博客,但是在实操过程中,一个是被网络问题搞炸了心态(真心感觉网络能把人搞疯,别人下个包.下个镜像几秒钟搞定,我看着我的几KB小水管真是有苦说不出),另一个就是这里面坑还是有一些的,写出来也是为了让大家避免重复踩坑 几个注意点: 下方shell命令绝大部分都需要管理员权限,所以如果你使用的用户不是root,则都要加上sudo 对于较复杂的命令我都提供了注释版和无注释版,无注释版是为了让你复制起来方便 准备工作 CentOS 7.x Docker Jenkins 一份支持 dock

  • 帮你快速上手Jenkins并实现自动化部署

    一.下载与安装 Jenkins的下载可以直接在官网下载,方式还是比较简单的,官网提供了具体的下载和安装的步骤. sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key # 安装 yum install jenkins -y # 启

随机推荐