热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

系统架构师从入门到精通1.0网络引导批量安装CentOS7系统

前言老黑十余年IT从业经历中,对于安装操作系统是深恶痛绝的,一路从windowsserver安装、rhel安装,centos安装走来,从起初的自己

前言

老黑十余年IT从业经历中,对于安装操作系统是深恶痛绝的,一路从windows server安装、rhel安装,centos安装走来,从起初的自己摸索,再到后来阅读和参考网络上的资料,总结并运用到实际工作中的安装方法还真是多种多样呀,有光盘,U盘,硬盘,网络,各种引导,鼠标一路点点点,再到鼠标加键盘,慢慢越装越专业了。老黑在互联网上各位网友的专业安装参考文章里,收获很多呀,那么今天还有什么问题困扰老黑在安装操作系统这件事情上呢,答案就是时间,毕竟老黑也是老大不小了,不能总是安逸于徒手安装吧,所以便有了今天要聊的话题,自动安装操作系统。


一、自动安装操作系统是什么技术?

手工安装操作系统的时候,老黑会先把系统引导U盘插到服务器上,然后开机,设置RAID磁盘阵列,接着设置从U盘引起启动,接着在图形化界面鼠标一路点点点,来完成CentOS7的安装设置。

自动安装操作系统解放了老黑的双手,试想一下这样的场景,在一个新项目中,老黑打开笔记本电脑,启动自动安装操作系统程序,服务器接上电源鼠标键盘,开机,配置RAID,重启,默认情况下服务器是从网卡引导启动的,接下来就交给自动安装程序吧,喝上一杯茶的时间,一台服务器操作系统就按照老黑的需要,自动安装完成了,接着老黑只要再运行优化脚本,运行基础软件安装脚本,一台服务器就安装妥当了,是不是很惬意呀。

二、哪些工程师需要

1.企业网络管理员

老黑第一份工作也和企业网络管理员类似,在一家计算机集成公司,给客户组装电脑,给电脑安装windows系统,再安装常用软件等等这些都是老黑的工作范围。其中安装操作系统接触比较多,给电脑装系统,给服务器装系统,老黑用过各种方法,光盘安装,U盘安装,硬盘相互克隆,服务器虚拟化用模板快速安装系统...等等,所以说呢,安装系统的方法有多种不同的选择。

2.企业网络工程师

老黑第二份工作是在企业里面担任网络工程师,在那几年里,接触最多的是各种交换机,各种路由器,各种安全设备,不过呢,老黑还是要偶尔给新项目采购回来的服务器安装windows server 2008呀,windows server 2012呀,centos 6.8呀等等的操作系统,使用的安装方法也不外乎之前提到的那几种咯。

3.企业系统运维工程师

老黑第三份工作是在企业的研发中心担任运维组长,这个时候,老黑还要使用手工安装系统嘛,显然这种方法的工作效率着实比较低呀,所以呢,老黑开始学习自动安装操作系统了,以前在学习Linux运维技术的时候,就接触过无人值守安装CentOS7系统,接下就来试试吧。

4.其他工程师

信息化发展不断加速的今天,各行各业都在使用计算机技术提高工作效率,解决社会问题,所以呢计算机领域的工程师们,必然会专研更加智能的技术,使用自动化技术来代替重复性的人力作业。

三、哪些场景需要

1、客户机房单次需要调试几十台服务器

2、虚拟化平台单次需要创建几十台虚拟机

四、为什么需要

1、简化重复又繁琐的安装操作

2、节省大量的时间,投入到研究前沿技术中

3、提高多款软件互相配合完成实际问题的能力,提高解决复杂问题的能力

五、如何搭建实验环境并验证

1、需要用到的软件

Apache、TFTP、DHCP、CentOS 7.8、Kickstart、VMware Workstation 12 pro

2、虚拟机的资源配置

Server虚拟机:1vCPU、1G内存、50G硬盘、外网、内网:10.0.0.99

Client虚拟机:1vCPU、2G内存、50G硬盘、内网

3、Server虚拟机上的设置步骤

apache服务器设置

#安装apache软件
yum install -y httpd
#启动apache服务
systemctl start httpd
#设置开机启动
systemctl enable httpd

系统镜像文件拷贝

#挂载系统镜像光盘
mount /dev/cdrom /mnt
#拷贝系统镜像文件
mkdir -p /var/www/html/os
cp -r /mnt/* /var/www/html/os

tftp服务器设置

#安装tftp软件
yum install -y tftp-server xinetd
#xinetd是tftp的管理程序,修改配置
vim /etc/xinetd.d/tftp
disable =yes修改成disable =no
#启动xinted服务
systemctl start xinetd

pxe有关文件拷贝

#切换到tftp的传输目录
cd /var/lib/tftpboot/
#拷贝虚拟的内核文件
cp /var/www/html/os/images/pxeboot/vmlinuz ./
#拷贝虚拟的根文件系统
cp /var/www/html/os/images/pxeboot/initrd.img ./
#拷贝菜单样式文件
cp /var/www/html/os/isolinux/vesamenu.c32 ./
#拷贝背景图片文件
cp /var/www/html/os/isolinux/splash.png ./
#拷贝提示信息文件
cp /var/www/html/os/isolinux/boot.* ./

pxelinux.0引导文件拷贝

#安装syslinux微型系统
yum install -y syslinux
#拷贝引导运行的微型系统
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

引导程序的配置文件拷贝与自定义修改

#创建引导程序配置文件的目录
mkdir /var/lib/tftpboot/pxelinux.cfg
#拷贝引导程序默认的配置文件
cp /var/www/html/os/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
#修改几处参数
600毫秒修改成60毫秒
label linux下面添加default linux
label check下面删除default linux
label linux下面修改append的参数
改成 append initrd=initrd.img ks=http://10.0.0.99/ks.cfg
修改的部分配置如下:
===========================================================================================
default vesamenu.c32
timeout 60
label linux
menu label ^Install CentOS 7
menu default
kernel vmlinuz
append initrd=initrd.img ks=http://10.0.0.99/ks.cfg quiet
label check
menu label Test this ^media & install CentOS 7
kernel vmlinuz
append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 rd.live.check quiet
===========================================================================================

dhcp服务器设置

#安装软件
yum install -y dhcp
#修改配置文件
cat > /etc/dhcp/dhcpd.conf <subnet 10.0.0.0 netmask 255.255.255.0 { # 配置给客户端分配的IP段
range 10.0.0.150 10.0.0.200; # 指定IP地址池
option domain-name-servers 10.0.0.99; # 指定DNS服务器
#option routers 10.0.0.254; # 指定网关(路由出口)
default-lease-time 600; # 给客户机分配IP的默认时长
max-lease-time 7200; # 给客户机分配IP的最大时长
next-server 10.0.0.99; # 网络的下一跳路由(这里指向,我们的服务器)
filename "pxelinux.0"; # 在下一跳路由要访问的文件,这里是pxelinux的启动菜单文件
}
EOF
#确保用于dhcp分发IP的内网网卡已经配置正确的IP
#启动服务
systemctl start dhcpd
#自动启动服务
systemctl enable dhcpd

ks.cfg文件编写与放置

#本次实验使用的ks.cfg
=========================================================================================
#platform=x86, AMD64, 或 Intel EM64T
#version=DEVEL
# Install OS instead of upgrade 安装或升级
install
# Keyboard layouts 键盘方案
keyboard 'us'
# Root password 管理员密码
rootpw --iscrypted $1$.ChAZ1cm$yiJfatBsd2.6QekuOzEb7/
# 上面的.ChAZ1cm$yiJfatBsd2.6QekuOzEb7/是密文密码,替换成自己需要的即可
# System language 安装语言
lang en_US
# System authorization information 用户密码加密方式
auth --useshadow --passalgo=sha512
# Use text mode install 安装模式,图形或文本
text
# SELinux configuration selinux配置
selinux --disabled
# Do not configure the X Window System 是否安装图形界面
skipx
# Firewall configuration 防火墙配置
firewall --disabled
# Reboot after installation 安装完成后执行重启
reboot
# System timezone 时区
timezone Asia/Shanghai
# Use network installation 采用网络安装及网络路径
url --url="http://10.0.0.99/os"
# System bootloader configuration 引导分区及方式
bootloader --location=mbr
# Clear the Master Boot Record 清除原有引导分区
zerombr
# Partition clearing information 清除分区
clearpart --all --initlabel
# Disk partitioning information 重建分区
part biosboot --fstype=biosboot --size=1 #遇到大于2T的磁盘需要GPT分区,需要配置支持
part /boot --fstype="xfs" --size=1000
part swap --fstype="swap" --size=4000
part / --fstype="xfs" --grow --size=1
# 需要安装的软件包
%packages
@^minimal
@base
@core
%end
=========================================================================================
#保存到/var/www/html目录下面
ll /var/www/html
-rw-r--r--. 1 root root 943 Dec 15 02:37 ks.cfg

如何生成一个密文密码

#创建一个普通用户
useradd one
#输出一个密文密码
openssl passwd -1 -salt 'one' '123456'
返回一段字符串
$one$.........
上面....这堆字符串就是ks.cfg文件中使用的密文密码

4、Client虚拟机上的设置步骤

检查虚拟化软件的内网设置

启动虚拟机,观察自动安装过程

六、实验中可能遇到的问题收集

1、引导安装失败:

报错关键词:

curl: (23) Failed writing body (10176 != 16176)

/lib/anaconda-lib.sh: line 110: printf: write error: No space left on device

出现这个报错的原因:

一开始老黑设置Client虚拟机的内存是1G,实际因为有一些引导文件需要装载到内存里面,1G内存是不够用的。

处理方法:

虚拟机内存调到2G以上

七、终极目标

使用最小化的系统镜像文件,结合几个服务的软件程序和配置文件,使用dockerfile,构建成一个docker镜像,这样在项目实地安装的时候,拿出笔记本启动这个docker容器,笔记本电脑连上与服务器同网络的交换机,即可实现自动安装操作系统。

总结

以上就是老黑目前应用在日常工作中的自动安装技巧,当然了,实现自动安装的方法有无数种,工作中找到最适合自己的那一种就行了,重要的是可以通过思考,主动摸索和掌握技能,运用技能,提高工作效率,为企业节省资源,因为节省员工的时间就是节省资源呀,节省下来的时间可以去维护更多的项目环境,专研更多更难的技术,这些不论是对于工程师个人,又或者是企业都是有重大而深远的意义的。至此,自动安装就写到这里,在这里希望能起到一个抛砖引玉的作用,让各位热爱技术的网友有所启发,有所收获,让工作成为一件快乐又享受的事情。


版权声明:本文为never_9give9_up原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/never_9give9_up/article/details/110947840
推荐阅读
  • 在Cisco IOS XR系统中,存在提供服务的服务器和使用这些服务的客户端。本文深入探讨了进程与线程状态转换机制,分析了其在系统性能优化中的关键作用,并提出了改进措施,以提高系统的响应速度和资源利用率。通过详细研究状态转换的各个环节,本文为开发人员和系统管理员提供了实用的指导,旨在提升整体系统效率和稳定性。 ... [详细]
  • 本指南详细介绍了在Linux环境中高效连接MySQL数据库的方法。用户可以通过安装并使用`mysql`客户端工具来实现本地连接,具体命令为:`mysql -u 用户名 -p 密码 -h 主机`。例如,使用管理员账户连接本地MySQL服务器的命令为:`mysql -u root -p pass`。此外,还提供了多种配置优化建议,以确保连接过程更加稳定和高效。 ... [详细]
  • 小王详解:内部网络中最易理解的NAT原理剖析,挑战你的认知极限
    小王详解:内部网络中最易理解的NAT原理剖析,挑战你的认知极限 ... [详细]
  • 本文详细介绍了HDFS的基础知识及其数据读写机制。首先,文章阐述了HDFS的架构,包括其核心组件及其角色和功能。特别地,对NameNode进行了深入解析,指出其主要负责在内存中存储元数据、目录结构以及文件块的映射关系,并通过持久化方案确保数据的可靠性和高可用性。此外,还探讨了DataNode的角色及其在数据存储和读取过程中的关键作用。 ... [详细]
  • 单片微机原理P3:80C51外部拓展系统
      外部拓展其实是个相对来说很好玩的章节,可以真正开始用单片机写程序了,比较重要的是外部存储器拓展,81C55拓展,矩阵键盘,动态显示,DAC和ADC。0.IO接口电路概念与存 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 使用多项式拟合分析淘宝双11销售趋势
    根据天猫官方数据,2019年双11成交额达到2684亿元,再次刷新历史记录。本文通过多项式拟合方法,分析并预测未来几年的销售趋势。 ... [详细]
  • [转]doc,ppt,xls文件格式转PDF格式http:blog.csdn.netlee353086articledetails7920355确实好用。需要注意的是#import ... [详细]
  • 微软推出Windows Terminal Preview v0.10
    微软近期发布了Windows Terminal Preview v0.10,用户可以在微软商店或GitHub上获取这一更新。该版本在2月份发布的v0.9基础上,新增了鼠标输入和复制Pane等功能。 ... [详细]
  • 从0到1搭建大数据平台
    从0到1搭建大数据平台 ... [详细]
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • Unity与MySQL连接过程中出现的新挑战及解决方案探析 ... [详细]
  • Python 伦理黑客技术:深入探讨后门攻击(第三部分)
    在《Python 伦理黑客技术:深入探讨后门攻击(第三部分)》中,作者详细分析了后门攻击中的Socket问题。由于TCP协议基于流,难以确定消息批次的结束点,这给后门攻击的实现带来了挑战。为了解决这一问题,文章提出了一系列有效的技术方案,包括使用特定的分隔符和长度前缀,以确保数据包的准确传输和解析。这些方法不仅提高了攻击的隐蔽性和可靠性,还为安全研究人员提供了宝贵的参考。 ... [详细]
  • 优化后的标题:深入探讨网关安全:将微服务升级为OAuth2资源服务器的最佳实践
    本文深入探讨了如何将微服务升级为OAuth2资源服务器,以订单服务为例,详细介绍了在POM文件中添加 `spring-cloud-starter-oauth2` 依赖,并配置Spring Security以实现对微服务的保护。通过这一过程,不仅增强了系统的安全性,还提高了资源访问的可控性和灵活性。文章还讨论了最佳实践,包括如何配置OAuth2客户端和资源服务器,以及如何处理常见的安全问题和错误。 ... [详细]
  • 深入解析OSI七层架构与TCP/IP协议体系
    本文详细探讨了OSI七层模型(Open System Interconnection,开放系统互连)及其与TCP/IP协议体系的关系。OSI模型将网络通信过程划分为七个层次,每个层次负责不同的功能,从物理层到应用层逐步实现数据传输和处理。通过对比分析,本文揭示了OSI模型与TCP/IP协议在结构和功能上的异同,为理解现代网络通信提供了全面的视角。 ... [详细]
author-avatar
航19830_811
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有