热门标签 | 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
推荐阅读
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • 开发笔记:计网局域网:NAT 是如何工作的?
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了计网-局域网:NAT是如何工作的?相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 服务器上的操作系统有哪些,如何选择适合的操作系统?
    本文介绍了服务器上常见的操作系统,包括系统盘镜像、数据盘镜像和整机镜像的数量。同时,还介绍了共享镜像的限制和使用方法。此外,还提供了关于华为云服务的帮助中心,其中包括产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题和视频帮助等技术文档。对于裸金属服务器的远程登录,本文介绍了使用密钥对登录的方法,并提供了部分操作系统配置示例。最后,还提到了SUSE云耀云服务器的特点和快速搭建方法。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
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社区 版权所有