KICKSTART自动部署centos7系统

目录

  • 概述
  • 操作
    • dchp
    • tftp
    • 准备预启动文件和引导配置文件
    • 准备vmlinuz和initrm.img
    • 准备ks7配置文件

概述

通过网络启动时会启动dhcp协议,我们需要搭建一个dhcp服务器给需要安装系统的服务器分配IP地址,分配IP的地址的目的为了让需要安装系统的主机连接tftp,连接tftp做什么呢?tftp有镜像和预启动文件,需要安装系统的服务器只有获取到了这两样东西才可以自动安装系统。

所以我们需要安装dhcp服务器,通过dhcp服务器给服务器分配地址,然后还要告诉服务器ftfp的地址,让服务器去找tftp服务,下载镜像和预启动文件。

pxe网络启动全自动安装系统的流程介绍:

pxe客户端 通过dhcp服务器 获取ip和tftp的地址

pxe客户端 通过tftp服务器 下载预启动文件

运行预启动文件,pxe客户端 去tftp服务器 获取引导文件,引导安装。这边可设置多种安装,例如centos6和centos7的安装

pxe客户端 -> tftp服务器 获取安装需要的vmliuz和initrm.img

内存加载vmliuz和initrd.img,然后去下载安装文件,全自动安装

操作

dchp

yum install net-tools -y
yum install dhcp -y
vim /etc/dhcp/dhcpd.conf
allow booting;
allow bootp;
class "pxeclients"{
match if substring(option vendor-class-identifier,0,9) = "PXEClient";
filename "pxelinux.0";
next-server 192.168.80.20;
} 

subnet 192.168.80.0 netmask 255.255.255.0 {
range dynamic-bootp 192.168.80.10 192.168.80.15;
option subnet-mask 255.255.255.0;
option routers 192.168.80.2;
option domain-name-servers 223.6.6.6;
option time-offset -18000;
default-lease-time 216000;
max-lease-time 432000;
}

配置说明

allow 允许pxe

next-server tftp服务器的ip信息,可以配置在非dhcp服务器

filename tftp服务器的预启动文件

subnet 配置dhcp服务器的网络信息,192.168.237.0/24

range dynamic-bootp 设置分配的地址范围

subnet-mask 配置分配地址的子网掩码

option routers 配置分配的路由地址,可以直接上网 route -n

option domain-name-servers dns地址设置 cat /etc/resolv.conf

启动dhcpd服务器

systemctl restart dhcpd #启动

systemctl enable dhcpd #开机启动dhcpd

测试dhcp是否安装成功,使用新建的虚拟机启动看一下能否获取到ip

netstat -tulnp|grep dhcp

tftp

安装tftp服务,并且准备好服务器要预拉取的文件:pxelinux.0。

安装tftp服务器
yum install xinetd -y #tftp服务器使用xinetd统一纹理
yum install tftp-server -y
vim /etc/xinetd.d/tftp
service tftp
{
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -s /var/lib/tftpboot
        disable                 = no
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}

tftp配置文件解析

disable改为no说明要启动tftp服务器

server_args设置tftp服务器的根目录,pxelinux.0默认会到根目录下查找

启动tftp,然后测试一下tftp能否连接上

systemctl restart xinetd
systemctl enable xinetd

再次尝试连接,发现IP可以获取到,tftp的IP也能获取到,但是tftp里面的预启动文件无法获取!!下面我们就来准备这个预启动文件。

准备预启动文件和引导配置文件

//安装pxelinux.0引导文件,会安装到tftp的根目录下/var/lib/tftpboot/,这个目录与tftp的配置文件对应
yum install syslinux-tftpboot -y
ll -h /var/lib/tftpboot/pxelinux.0

这个预加载文件已经生成好了,这个预加载文件是要被服务器下载到本地去读取的,那里面的内容是什么呢?这个预加载文件里面的内容是去引导服务器去下载“引导配置文件”,这个引导配置文件也是放在tftp上面,这个文件是要我们手工写的/var/lib/tftpboot/pxelinux.cfg/default

vim /var/lib/tftpboot/pxelinux.cfg/default
default vesamenu.c32
timeout 300

menu title welcome to shijiange auto install system

label shijiange_install_centos7
menu label zhanghehe install centos7
kernel centos7/vmlinuz
append initrd=centos7/initrd.img inst.ks=http://192.168.80.20/ks7.cfg

label shijiange_rescue
menu label zhanghehe rescue
menu default
kernel centos7/vmlinuz
append initrd=centos7/initrd.img inst.ks=http://192.168.80.20/ks7.cfg rescue

配置说明

timeout 300 超时30s

menu title 供选择时的标题展现

kernel 配置内核

append 配置内存加载的文件

pxe网络启动自动安装系统的流程介绍

测试一下:

引导配置文件我们也已经创建完成了,第一条就是安装,第二条是救援模式,默认如果30秒不操作就会进入到救援模式,为什么会这样,这是我们故意设置的,因为如果30秒内无人操作自动安装的话危险太大,因为安装的时候就会格式化硬盘!!!

我们要进行下一步了,下一步就是根据上图这个引导配置文件 获取安装需要的vmliuz(linux内核)和initrm.img文件

准备vmlinuz和initrm.img

这两个文件在哪里有呢?在镜像文件里面就有,我们要下载一个最小化的centos镜像,上传到/usr/local/src

目录里面,然后将镜像挂载到/var/www/html/centos7目录上。

mkdir -pv /var/www/html/centos7
mount /usr/local/src/CentOS-7-x86_64-Minimal-1908.iso /var/www/html/centos7/
[[email protected] centos7]# ls
CentOS_BuildTag  EULA  images    LiveOS    repodata       RPM-GPG-KEY-CentOS-Testing-7
EFI    GPL   isolinux  Packages  RPM-GPG-KEY-CentOS-7  TRANS.TBL
拷贝内核文件到tftp的根目录
mkdir -pv /var/lib/tftpboot/centos7/
cd /var/www/html/centos7/isolinux
cp vmlinuz initrd.img /var/lib/tftpboot/centos7/

//测试一下能否正常加载vmliux和initrd.img

这两个安装的时候要使用的文件都准备好了,下面我们来测试一下,效果如下图:

上图是加载完linuz和initrd.img之后的报错,提示找不到http://192.168.80.20/ks7.cfg,这个文件是干啥的呢?这个文件就是安装系统的时候要选择各种项目的内容,这个文件也要我们手工进行配置的,要通过http协议,我们通过nginx进行实现。

准备ks7配置文件

nginx配置,root配置要参考centos7的mount位置

location / {
?            root  /var/www/html/;
?            index index.html index.htm;
?            autoindex on;
?       }

vim  /var/www/html/ks7.cfg
firewall --disabled
install
rootpw zhanghe
auth --useshadow --passalgo=sha512
#graphical
text
firstboot --disable
keyboard us
lang en_US
selinux --disabled
logging --level=debug
zerombr
reboot
timezone Asia/Shanghai
network --bootproto=dhcp --device=eth0 --onboot=on --noipv6
bootloader --location=mbr
clearpart --all --initlabel
part / --asprimary --fstype="ext4" --size=5000
part /boot --fstype="ext4" --size=200
part /data --fstype="ext4" --grow --size=1
url --url http://192.168.80.20/centos7
%packages
%end
%post
/usr/bin/echo "run post script"
/usr/bin/echo "zhanghe" >/tmp/zhanghe
/usr/bin/yum install -y net-tools
%end

配置说明,把之前手动安装改成自动安装,需要配置

install 全新安装

text 文本安装

firstboot --disable 不设置代理

keyboard 键盘总局英文

lang en_US 语言选择英文

zerombr 清除mbr分区

reboot 安装完毕后重启

clearpart 清除分区,磁盘有数据需要小心,默认选项一定不能放安装的这里

part 设置分区 --size指定分区大小,--grow指定使用剩余所有空间

url 指定包的位置

%packages和%end中间放安装包,最小化安装不用配置

%post和%end中间放安装后的自定义代码,用来做一些初始化

原文地址:https://www.cnblogs.com/yizhangheka/p/12229377.html

时间: 2024-11-14 09:51:53

KICKSTART自动部署centos7系统的相关文章

kickstart自动部署centos

kickstart自动部署centos 工作中,我们有时候需要安装几十上百台服务器,这种情况下用u盘或者光驱逐台安装,太花时间与人力,显然不现实,所以应该选择自动化部署操作系统的方式,自动化部署操作系统的工具有很多,这里我用的是kickstart这个工具. kickstart原理: kickStart是一种无人职守安装方式.KickStart的工作原理是通过记录典型的安装过程中所需人工干预填写的各种参数,并生成一个名为ks.cfg的文件:在其后的安装过程中(不只局限于生成KickStart安装文

Redhat 7 配置Kickstart自动化部署多种系统

使用kickstart自动化部署多种系统,我想到的有两种场景,一种适合于日常运维,当机房上架个别新增的服务器时,根据不同的用途需求,通过一个多系统的启动菜单,输入相应的操作系统名称,即可自动化部署对应的操作系统.例如我在网上看到如下图这样的方案: 但是在第二种场景即系统集成项目中,如果同时要安装50台.100台的话,每台都要去输入,那也真是令人蛋疼了.系统集成项目通常会遇到服务器数量较多.且不同的项目对操作系统的需求不同的情况,如果准备一台Kickstart一次只是推送一种操作系统的自动化部署,

Cobbler自动部署主机系统-扩展

指定服务器的装机配置 指定服务器就是绑定它的mac地址,并设置好ip.dns.hostname 定义系统 [[email protected] ~]# cobbler system add --name=Test_Mail_1 --hostname=Test_Mail_o --mac=00:19:B9:E5:34:FE --interface=eth0 --ip-address=192.168.10.222 --subnet=255.255.255.0 --gateway=192.168.10.

PXE+Kickstart 自动安装CentOS系统

PXE (preboot execcute environment) 依赖服务 dhcp tftp file server (yum repository) 准备TFTP服务器  如何配置TFTP服务器 准备DHCP服务器 如何配置DHCP服务器   部署kickstart安装环境 使用http提供yum源 yum install -y httpd mkdir /var/www/html/CentOS7 # 偷个懒将之前挂载过的光盘镜像挂载至此处 mount --bind /media/cdro

Cobbler自动部署主机系统

简介: Cobbler由python语言开发,是对PXE和 Kickstart以及DHCP的封装.融合很多特性,提供了CLI和Web的管理形式.更加方便的实行网络安装.同时,Cobbler也提供了API接口,使用其它语言也很容易做扩展.它不仅可以安装物理机,同时也支持kvm.xen虚拟化.Guest OS的安装.更多的是它还能结合Puppet等集中化管理软件,实现自动化的管理. PXE 预启动执行环境(Preboot eXecution Environment,PXE,也被称为预执行环境)是让计

使用KickStart进行CentOS7.4 的自动部署安装

随着网络的发展以及对服务器性能得需求不断增加,自动化运维成了运维人员必须掌握的技能之一,自动化运维省时省力.今天就记录一下最基础的操作系统安装自动化--使用KickStart批量安装CentOS7.4操作系统. 实验环境: CentOS7.4 安装光盘.一台CentOS7.4系统的服务器,一台支持PXE未安装操作系统的客户端. 要通过网络安装,就要确定客户端能自动获取到IP地址.首先安装DHCP服务器并进行配置,我这里已经安装: 配置如下: pxelinux.0是一个bootloader,类似于

linux cobbler 自动安装centos6与centos7系统

1.1 Cobbler介绍 Cobbler 是一个免费开源系统安装部署软件,用于自动化网络安装操作系统. Cobbler 集成了 DNS, DHCP, 软件包更新,带外管理以及配置管理,方便操作系统安装自动化. Cobbler 可以支持PXE启动, 操作系统重新安装,以及虚拟化客户机创建,包括Xen, KVM or VMware.  Cobbler 透过koan程序以支持虚拟化客户机安装. Cobbler 可以支持管理复杂网路环境,如建立在链路聚合以太网的桥接环境. 1.2 cobbler 服务

CentOS7 安装cobbler自动部署ubuntu

CentOS7 安装cobbler自动部署ubuntu 一.简介 二.安装CentOS 7 调整配置及安装相关软件 1.调整配置 2.安装 epel 包 3.安装cobbler.cobbler-web 以及相关依赖软件 4.设置开机启动 三.Cobbler.tftp.dhcp.rsync配置 1.TFTP配置 2.配置rsync 3.配置/etc/cobbler/settings 4.修改/etc/cobbler/modules.conf 5.修改/etc/cobbler/dhcp.templa

实战:Cobbler 无人值守自动部署系统

背景: 装系统相信大家都不陌生,对于运维攻城狮可以说是家常便饭,老大说:小刘今天装一下系统,明天把那几台机器系统重装一下.就这样一上午,一天就这么过去了.耗时费力不说,重点是没有效率,没错这就是我的痛点.一个好的运维工作时间清闲才说明你的工作做到位了.万一某天说小刘把100个新机器装一下系统...该如何彻底解放双手呢? 今天我们介绍一款无人值守自动化部署系统的软件Cobbler,真正是实现从机器上架,插上网线一切都交给Cobbler来完成 简介: 先介绍下Cobbler(补鞋匠),根据其名称可想