5.4 Linux KickStart 无人值守安装

1、概念介绍

搭建无人执行安装服务器需要从装网络引导安装操作系统,这样我们就可以不必走到机器那里插入CD-ROM光盘或者U盘手动一台一台安装操作系统,使用网络引导批量部署服务器操作系统。

服务架构:PXE + DHCP + TFTP + Kickstart + FTP

a. PXE

严格来说,PXE 并不是一种安装方式,而是一种引导的方式。进行 PXE 安装的必要条件是要安装系统的计算机中包含一个支持PXE的网卡(NIC),即网卡中必须要有 PXE Client。PXE (Pre-boot Execution Environment)协议使计算机可以通过网络启动。

协议分为client 和 server 端,PXE client 在网卡的 ROM 中,当计算机引导时,BIOS 把 PXE client 调入内存执行,由 PXE client 将放置在远端的文件通过网络下载到本地运行。

运行PXE 协议需要设置 DHCP 服务器 和 TFTP 服务器。DHCP 服务器用来给 PXE client(将要安装系统的主机)分配一个 IP 地址,由于是给 PXE client 分配 IP 地址,所以在配置 DHCP 服务器时需要增加相应的 PXE 设置。 此外,PXE Client 通过 TFTP 协议到 TFTP Server 上下载所需的文件。

b. KickStart

KickStart是一种无人职守安装方式。KickStart的工作原理是通过记录安装过程中所需人工干预填写的各种参数,并生成一个名为 ks.cfg的文件;在其后的安装过程中当出现要求填写参数的情况时,安装程序会首先去查找 KickStart生成的文件,当找到合适的参数时,就采用找到的参数,当没有找到合适的参数时,才需要安装者手工干预。

c. 实验拓扑

主机名

角色

Ip地址

Server

KickStart,ftp,tftp,dhcp

192.168.137.5

Client01

客户端

192.168.137.6

b. 关闭 firewalld 和 selinux
systemctl stop firewalld
systemctl disable firewalld

vim /etc/selinux/config
	SELINUX=disabled
e. vmware 环境

vmnet8 并 关闭dhcp

f. 配置本地yum源

修改本地仓库名称为development,负责kickstart无法找到软件包

cat /etc/yum.repos.d/centos.repo 

[development]
name=centos_7
baseurl=file:///mnt/cdrom
enabled=1
gpgcheck=0
#gpgcheck=1
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
2、安装 DHCP
# 安装dhcp
yum install -y dhcp

# 创建dhcp配置文件
vim /etc/dhcp/dhcpd.conf

# 或者赋值一个dhcp配置文件
cp /usr/share/doc/dhcp-4.25/dhcpd.conf.example /etc/dhcp/dhcpd.conf
# 为客户端指定所属的域名
option domain-name "example.org";
# 为客户端指定DNS服务器
option domain-name-servers 114.114.114.114,8.8.8.8;
# 定义默认租约时间,以秒为单位的租约时间,50%续约(续不上继续用),87.5%再次续约(续不上重新再IP)
default-lease-time 600;
# 最大租约时间,单位为秒,当客户端超过租约时间,却尚未更新IP时,最长可以使用该IP的时间
max-lease-time 7200;
# 定义日志类型为local7
log-facility local7;
subnet 192.168.137.0 netmask 255.255.255.0 {
	# range 起始IP地址 结束IP地址
	range 192.168.137.100 192.168.137.200;
	# 为客户端指定默认网关
	option routers 192.168.137.2;
	# 指定 tftp服务器ip地址
	next-server 192.168.137.5;
	# 指定要从tftp服务器上下载的启动文件
	filename "pxelinux.0";
}

启动服务查看端口

# 启动 dhcp 服务
systemctl start dhcpd
# 设置开机自启动
systemctl enable dhcpd
# 查看dhcpd 服务
systemctl status dhcpd

# 查看 dhcpd 端口
netstat -antup | grep dhcpd

3、安装TFTP

TFTP (Trivial File Transfer Protocol),中译简单文件传输协议或小型文件传输协议

# 安装TFTP
 yum install -y tftp-server xinetd tftp

修改配置文件:/etc/xinted.d/tftp

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
}
# 启动服务
systemctl start xinetd
systemctl start tftp

# 查看端口
netstat -antup | grep 69

4、安装ftp服务
# 安装vsftpd
yum install -y vsftpd
# 启动vsftpd服务
systemctl start vsftpd
systemctl enable vsftpd
systemctl status vsftpd
# 查看服务端口
netstat -antup | grep vsftpd

5、安装 KickStart
a. 配置使用PXE启动所需的相关文件
# 安装kickstart syslinux
yum install -y system-config-kickstart syslinux

# 将pxelinux.0 赋值到 /var/lib/tftpboot
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot

# 赋值pxe启动文件至 tftpboot中
cp /mnt/cdrom/images/pxeboot/* /var/lib/tftpboot

# 赋值镜像配置文件 至 pxelinux.cfg 中
mkdir /var/lib/tftpboot/pxelinux.cfg
cp /mnt/cdrom/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

# 编辑配置文件
vim /var/lib/tftpboot/pxelinux.cfg/default
default linux
label linux
	menu label ^Install CentOS 7
	kernel vmlinuz
	append	initrd=initrd.img	inst.repo=ftp://192.168.137.5/pub	inst.ks=ftp://192.168.137.5/ks.cfg
  • inst.repo:指定客户端安装操作系统所使用软件包的下载地址
  • inst.ks:指定kickstart生成的自动应答文件存放地址
b. 生成 ks.cfg 文件
# 安装完毕后xhell重新连接服务器
yum install -y xorg-x11-xauth 

# 安装语言包,防止出现乱码
yum groupinstall -y "fonts" 

# 启动服务,生成ks.cfg文件
system-config-kickstart

① 基本配置

  • 更改时区为亚洲上海:Asia/shanghai
  • Root密码:123456
  • 目标架构:x86 AMD64
  • 勾选 安装后重启

② 安装方法

  • 执行全新安装
  • FTP,FTP服务器:ftp://192.168.137.5,FTP目录:pub

③ 引导装载

④分区信息

  • 清除主引导记录
  • 删除所有现在存分区
  • 初始化磁盘标签
  • 添加:/boot xfs 1024M swap swap 2048M / xfs 使用磁盘上全部未用空间

⑤ 网络配置

⑥ 验证:默认

⑦ 防火墙配置:关闭防火墙、关闭selinux

⑧ 显示配置:取消图形环境

⑨ 软件包选择:系统 -> 基本安装

⑩ 预安装脚本:无

⑪ 安装后要执行的脚本

⑫ 点击file -> save -> 下图配置 -> save

c. 创建新的虚拟机
  • 将内存更改为2G
  • 先取消绑定光盘
  • 仅主机模式,取消dhcp
  • 进入无人值守安装,安装完成挂载镜像,重新启动虚拟机。
6、常见错误
  • yum配置文件的源名称为:development
  • 安装时将虚拟机的内存改为至少2G
  • 虚拟机取消dhcp
  • 无人值守安装完成后,重新挂载镜像

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/248160.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

dockerfite创建镜像---INMP+wordpress

目录 搭建dockerfile---lnmp 创建nginx镜像 运行 创建数据库镜像 运行 ​编辑 创建php镜像 运行 搭建dockerfile---lnmp 在192.168.10.201 服务IP地址nginx 172.111.0.10 dockernginxmysql172.111.0.20dockermysqlphp172.111.0.30dockerphp 创建nginx镜像 路径 vim /…

python基本数据类型(一)-字符串

1.字符串 字符串就是一系列字符,在Python中,用引号括起的都是字符串,其中的引号可以是单引号,也可以是双引号,如下所示: "This is a string." This is also a string.这种灵活性让你能够在字符…

【产品经理】产品增效项目落地,项目反哺产品成长

产品和项目是相辅相成的关系,产品的规范、成熟,为项目的快速落地提供支撑,项目的落地反哺产品,促进产品的成长成熟。 软件工程的初期是,我们需要什么,就立项项目,通过项目实现需要。 随着项目的…

用实例域代替序数

在Java中,枚举类型的ordinal()方法返回枚举常量的序数(即其在枚举声明中的位置)。在某些情况下,使用实例域(instance field)代替序数可能更加安全和易读。以下是一个示例,演示如何使用实例域代替…

低代码开发如何快速构建AI应用

随着人工智能(AI)的快速发展,越来越多的企业和开发者开始意识到AI在业务和应用中的重要性。然而,AI应用的开发通常被认为是复杂和耗时的过程,需要大量的编码和数据科学知识。为了解决这个问题,低代码开发平…

图片转HTML-screenshot-to-code

Github地址 https://github.com/abi/screenshot-to-code 在线站 Screenshot to Code 简介 这是一个基于GPT4开发的一个工具站,它可以基于截图生成站点代码,生成速度快且准确。

Linux-----2、虚拟机安装Linux

# 虚拟机安装Linux # 一、学习环境介绍 # 1、虚拟机概述 1、什么是虚拟机软件? 虚拟机软件,有些时候想模拟出一个真实的电脑环境,碍于使用真机安装代价太大,因此而诞生的一款可以模拟操作系统运行的软件。 虚拟机软件目前有2…

DSP定时器0笔记

首先了解开发板TMS320f28335是150Mhz的频率 定时器结构图和概要 定时器0对应的中断是TINT0 大概是这样,时钟sysclkout 进入和TCR控制时钟进入 ,经过标定计数器(stm32的预分频),标定器挂这自动装载寄存器&#xff0c…

Unity中实现ShaderToy卡通火(移植篇)

文章目录 前言一、准备好我们的后处理基础脚本1、C#:2、Shader: 二、开始逐语句对ShaderToy进行转化1、首先,找到我们的主函数 mainImage2、其余的方法全部都是在 mainImage 函数中调用的方法3、替换后的代码(已经没报错了,但是效…

基于ssm旅游网站的设计与实现论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本旅游网站就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息&#x…

rocketmq window测试小Demo 解决找不到或无法加载主类的问题

文章目录 rocketMQ启动1.下在相关的二进制文件2.配置环境变量3.启动NameServer4.启动broker5. MQ 启动!5.1 测试发送数据 6.关闭服务 rocketMQ启动 1.下在相关的二进制文件 下载地址,点击即达 2.配置环境变量 3.启动NameServer 在文件夹下执行cmd进…

嵌入式奇妙之旅:Python与树莓派编程深度探索

💂 个人网站:【 海拥】【神级代码资源网站】【办公神器】🤟 基于Web端打造的:👉轻量化工具创作平台💅 想寻找共同学习交流的小伙伴,请点击【全栈技术交流群】 在这个数字化的时代,嵌入式系统的应…

如何理解 RPC 远程服务调用?

本文主要讲解 RPC 远程服务调用相关的知识。 RPC 远程服务调用是分布式服务架构的基础,无论微服务设计上层如何发展,讨论服务治理都绕不开远程服务调用,那么如何理解 RPC、有哪些常见的 RPC 框架、实现一款 RPC 框架需要哪些技术呢&#xff…

3D点云广义零样本分类的递归循环对比生成网络笔记

1 Title Contrastive Generative Network with Recursive-Loop for 3D point cloud generalized zero-shot classification(Yun Hao, Yukun Su, Guosheng Lin, Hanjing Su, Qingyao Wu)【Pattern Recognition】 2 Conclusion This work aims to facilitate research on 3D poi…

web微服务规划

一、背景 通过微服务来搭建web系统,就要对微服务进行规划,包括服务的划分,每个服务和数据库的命名规则,服务用到的端口等。 二、微服务划分 1、根据业务进行拆分 如: 一个购物系统可以将微服务拆分为基础中心、会员…

卸载Postman?这款IDEA插件真可以!

Postman是大家最常用的API调试工具,那么有没有一种方法可以不用手动写入接口到Postman,即可进行接口调试操作?今天给大家推荐一款IDEA插件:Apipost Helper,写完代码就可以调试接口并一键生成接口文档!而且还…

群晖7.2使用Docker安装容器魔方结合内网穿透实现远程访问

最近,我发现了一个超级强大的人工智能学习网站。它以通俗易懂的方式呈现复杂的概念,而且内容风趣幽默。我觉得它对大家可能会有所帮助,所以我在此分享。点击这里跳转到网站。 文章目录 1. 拉取容器魔方镜像2. 运行容器魔方3. 本地访问容器魔…

注意std::shared_ptr的循环引用

指针智能是RAII的思想的具体体现。利用对象生命周期来管理资源。 在C11中,引入shared_ptr、weak_ptr和unique_ptr。 share_ptr是一个能有效解决赋值和拷贝构造的引用技术。 std::shared_ptr通过引用计数的方式来管理对象的生命周期,但是如果两个对象互…

老卫带你学---leetcode刷题(29. 两数相除)

29. 两数相除 问题 给你两个整数,被除数 dividend 和除数 divisor。将两数相除,要求 不使用 乘法、除法和取余运算。 整数除法应该向零截断,也就是截去(truncate)其小数部分。例如,8.345 将被截断为 8 &…

动态面板简介以及ERP原型图案列

动态面板简介以及ERP原型图案列 1.Axure动态面板简介2.使用Axure制作ERP登录界面3.使用Asure完成左侧菜单栏4.使用Axuer完成公告栏5.使用Axuer完成左边侧边栏 1.Axure动态面板简介 在Axure RP中,动态面板是一种强大的交互设计工具,它允许你创建可交互的…