CN110825392B - 操作系统的定制方法、批量部署方法以及批量部署系统 - Google Patents

操作系统的定制方法、批量部署方法以及批量部署系统 Download PDF

Info

Publication number
CN110825392B
CN110825392B CN201911055324.4A CN201911055324A CN110825392B CN 110825392 B CN110825392 B CN 110825392B CN 201911055324 A CN201911055324 A CN 201911055324A CN 110825392 B CN110825392 B CN 110825392B
Authority
CN
China
Prior art keywords
operating system
software
target
server
file
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201911055324.4A
Other languages
English (en)
Other versions
CN110825392A (zh
Inventor
周威
洪浩
王磊
陈林
杨昆
刘瑰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
56th Research Institute Of Strategic Support Force Of Chinese Pla
Wuhan Deepin Technology Co ltd
Original Assignee
Wuhan Deepin Technology Co ltd
56th Research Institute Of Strategic Support Force Of Chinese Pla
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuhan Deepin Technology Co ltd, 56th Research Institute Of Strategic Support Force Of Chinese Pla filed Critical Wuhan Deepin Technology Co ltd
Priority to CN201911055324.4A priority Critical patent/CN110825392B/zh
Publication of CN110825392A publication Critical patent/CN110825392A/zh
Application granted granted Critical
Publication of CN110825392B publication Critical patent/CN110825392B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files

Abstract

本发明公开了一种操作系统定制方法,在样本设备中执行,适于生成适用于目标服务器的目标操作系统,其中,样本设备与目标服务器的硬件环境的相似度大于阈值,该方法包括步骤:在指定目录下创建指定版本的最小化系统;根据目标服务器的应用场景确定最小化系统的目标软件集,并分别安装该各目标软件;根据样本设备的运行环境精简该最小化系统的内核和文件;将经过上述处理所得到的目标操作系统打包生成镜像文件。本发明一并公开了相应的操作系统批量部署方法和批量部署系统。

Description

操作系统的定制方法、批量部署方法以及批量部署系统
技术领域
本发明涉及服务器操作系统技术领域,尤其涉及一种服务器操作系统的定制方法、批量部署方法以及批量部署系统。
背景技术
通用Linux操作系统可以满足大部分服务器的应用场景需求。为了满足大部分应用场景的使用需求,通用的操作系统会提供尽可能多且全的功能,而有些功能在某些特定的应用场景中并不需要。例如,对于数据库服务器、网络服务器等专门用途的服务器,其通常不需要图形应用、显卡驱动、蓝牙驱动等模块。针对这些特定应用场景中的服务器,通常会提供一种特殊定制的Linux操作系统版本。这类定制化的操作系统通常是基于通用操作系统进行裁剪,去除不必要的软件与驱动,使得定制化得到的操作系统尽可能地小而精。
上述通过对通用操作系统进行裁剪来得到定制化操作系统的方式严重依赖开发者的经验,容易造成软件或驱动的漏删、错删等问题,效率较低,灵活性较差。
发明内容
为此,本发明提供一种操作系统的定制方法、批量部署方法以及批量部署系统,以力图解决或至少缓解上面存在的问题。
根据本发明的第一个方面,提供一种操作系统定制方法,在样本设备中执行,适于生成适用于目标服务器的目标操作系统,其中,所述样本设备与所述目标服务器的硬件环境的相似度大于阈值,所述方法包括步骤:在指定目录下创建指定版本的最小化系统;根据目标服务器的应用场景确定最小化系统的目标软件集,并分别安装所述目标软件;根据样本设备的运行环境精简所述最小化系统的内核和文件;将经过上述处理所得到的目标操作系统打包生成镜像文件。
可选地,在根据本发明的操作系统定制方法中,在指定目录下创建指定版本的最小化系统的步骤包括:在当前操作系统中安装用于创建根文件系统的引导工具debootstrap,所述当前操作系统为所述样本设备当前已安装的操作系统;运行所述引导工具debootstrap,在指定目录下生成根文件系统rootfs;通过根目录转换命令chroot来进入所述根文件系统。
可选地,在根据本发明的操作系统定制方法中,在所述创建指定版本的最小化系统的步骤之后,还包括步骤:关闭软件包的可选和推荐自动安装。
可选地,在根据本发明的操作系统定制方法中,最小化系统包括软件包管理软件,所述安装所述目标软件的步骤包括:通过所述软件包管理软件来安装所述目标软件。
可选地,在根据本发明的操作系统定制方法中,按照以下步骤来精简所述最小化系统的内核:根据样本设备的硬件信息来确定所述最小化系统中的冗余内核模块;根据当前实际加载的内核模块、内核模块的输出的文件访问信息、以及文件引用情况,来确定所述最小化系统中的冗余固件;以及删除所述冗余内核模块和冗余固件。
可选地,在根据本发明的操作系统定制方法中,按照以下步骤来精简所述最小化系统的文件:根据当前内核模块输出的文件访问信息场景和目标服务器的应用场景来确定冗余文件,并删除所述冗余文件。
可选地,在根据本发明的操作系统定制方法中,还包括步骤:获取已安装的各软件包之间的依赖关系,删除由依赖关系所引入的不必要的软件包。
可选地,在根据本发明的操作系统定制方法中,还包括步骤:通过修改相应的配置文件来调整内核运行参数,以优化目标操作系统的性能。
可选地,在根据本发明的操作系统定制方法中,还包括步骤:将所述镜像文件上传至镜像分发服务器,以便所述目标服务器从所述镜像分发服务器处获取所述镜像文件。
可选地,在根据本发明的操作系统定制方法中,还包括步骤:搭建目标操作系统的软件仓库,所述软件仓库中的软件的种类和数量根据所述目标服务器的应用场景来确定。
可选地,在根据本发明的操作系统定制方法中,所述软件仓库包括软件包仓库和容器镜像仓库。
根据本发明的第二个方面,提供一种操作系统的批量部署方法,在服务器集群的各个节点服务器中执行,所述方法包括:向镜像分发服务器发起获取目标操作系统镜像文件的请求;接收镜像分发服务器返回的所述镜像文件和网络安装配置文件,所述网络安装配置文件根据所述节点服务器的应用场景生成;根据所述网络安装配置文件来安装所述目标操作系统。
可选地,在根据本发明的操作系统的批量部署方法中,网络安装配置文件包括预装软件信息,所述根据所述网络安装配置文件来安装所述目标操作系统的步骤包括:根据所述预装软件信息,从预设的软件仓库获取预装软件并进行安装。
可选地,再根据本发明的操作系统的批量部署方法中,网络安装配置文件还包括磁盘分区信息、系统配置信息和合规化检测脚本,所述根据所述网络安装配置文件来安装所述目标操作系统的步骤包括:根据所述磁盘分区信息来划分存储区域;根据所述系统配置信息来设置系统配置项;以及执行所述合规化检测脚本,以对安装后的目标操作系统进行合规化检测。
根据本发明的第三个方面,提供一种操作系统的批量部署系统,包括镜像分发服务器和待部署的服务器集群,所述服务器集群包括多个节点服务器;所述镜像分发服务器中存储有目标操作系统的镜像文件以及所述服务器集群的网络安装配置文件;所述服务器集群中的每一个节点服务器适于:向所述镜像分发服务器发起获取目标操作系统的镜像文件的请求;接收所述镜像分发服务器返回的所述镜像文件和所述网络安装配置文件;以及根据所述网络安装配置文件来安装所述目标操作系统。
可选地,在根据本发明的操作系统的批量部署系统中,还包括软件仓库,所述软件仓库中存储有适用于所述目标操作系统的软件;所述网络安装配置文件包括预装软件信息,所述服务器集群中的每一个节点服务器还适于:根据所述预装软件信息,从所述软件仓库获取预装软件并进行安装。
本发明的操作系统定制方案不是像现有技术一样对通用操作系统进行裁剪,而是从基础系统(即最小化系统)开始,根据目标服务器的应用场景来定制软件、内核及系统服务,最终生成目标操作系统,避免了系统模块的漏删、错删等问题,降低了定制复杂度,提高了定制效率。此外,本发明进一步针对目标服务器的应用场景,搭建了目标操作系统的软件仓库,以便实现目标操作系统的批量、灵活部署。
基于本发明的操作系统定制方案,本发明还提供了一种操作系统的批量部署方案。该方案采用网络部署方式,根据预先配置的网络安装配置文件,将定制好的目标操作系统批量、自动化地部署至服务器集群中的各个节点服务器(即目标服务器)中。该部署过程无须人工干预,且可以根据网络安装配置文件从软件仓库中灵活地获取并安装预装软件,实现了操作系统的快速部署,满足了现代云平台的运行需求。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
图1示出了根据本发明一个实施例的操作系统定制方法100的流程图;
图2示出了根据本发明一个实施例的操作系统的批量部署系统200的示意图;以及
图3示出了根据本发明一个实施例的操作系统的批量部署方法300的流程图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
针对现有技术中存在的问题,本发明提供一种操作系统定制方法、批量部署方法和批量部署系统,能够针对特定的服务器应用场景,实现操作系统的快速定制和批量部署。
图1示出了根据本发明一个实施例的操作系统定制方法100的流程图。方法100在样本设备中执行,适于生成适用于目标服务器的目标操作系统。
在本发明的实施例中,目标服务器为应用于特定场景中的、需要安装定制化操作系统的服务器。目标操作系统为针对目标服务器的应用场景而定制开发的操作系统。
由于目标服务器通常部署在远离操作系统开发者的云端或其他位置,因此开发者难以直接在目标服务器上进行操作来生成目标操作系统。为了便于定制操作系统,本发明在开发者可以触及的样本设备上执行本发明的操作系统定制方法100,以生成定制化的目标操作系统。样本设备为与目标服务器的硬件环境相同或相似的设备,这样可以在提高操作系统定制的灵活性、便捷性的基础上,保证在样本设备上定制出的目标操作系统能够良好地适用于目标服务器。
为了执行本发明的操作系统定制方法100,首先需要从多个候选设备中,确定硬件环境与目标服务器相同或相似的样本设备。根据一种实施例,可以分别计算各候选设备与目标服务器的硬件环境的相似度,然后将相似度大于阈值的候选设备作为样本设备,即,样本设备与目标服务器的硬件环境的相似度大于阈值。
需要说明的是,本发明不限制硬件环境的相似度的具体计算方法,任意能够判定候选设备与目标服务器的硬件环境的相似度的算法均在本发明的保护范围之内。例如,可以分别确定候选设备与目标服务器的各个硬件指标(例如CPU核数、CPU频率、内存容量、磁盘容量等)的相似度,并根据目标服务器的应用场景来确定各指标的权重,将各硬件指标的相似度的加权求和结果作为候选设备与目标服务器的整个硬件环境的相似度;又例如,可以设定一个包括多个硬件指标的硬件指标集,将候选设备与目标服务器相同的硬件指标的数量与硬件指标总数量的比值作为候选设备与目标服务器的硬件环境相似度;等等。
此外,需要说明的是,硬件环境相似度的阈值可以由本领域技术人员自行设置,本发明对此不做限制。
如图1所示,本发明的操作系统定制方法100始于步骤S110。
在步骤S110中,在指定目录下创建指定版本的最小化系统。最小化系统即基础系统,其中仅包含指定版本操作系统的关键组件,不包括扩展软件或其他不必要的组件,例如图形应用、打印机驱动、声卡驱动等。最小化系统比发行版本的操作系统体积小很多,且功能更少。
根据一种实施例,步骤S110进一步包括以下步骤:首先,在当前操作系统中安装用于创建根文件系统的引导工具debootstrap,其中,当前操作系统为样本设备当前已安装的操作系统,例如,可以在当前操作系统中运行apt-get命令来获取debootstrap安装包并进行安装。随后,运行引导工具debootstrap,在指定目录下生成最小化系统的根文件系统rootfs。随后,通过根目录转换命令chroot来进入根文件系统。
根据一种实施例,在步骤S110之后,还包括步骤S112(步骤S112未在图1中示出)。在步骤S115中,关闭软件包的可选和推荐自动安装。
在某些操作系统中,可能会自动安装推荐的或可选的软件包,但这些推荐的软件包对用户来说不一定是必须的,徒增了操作系统的体积。因此,在本发明的实施例中,通过对软件安装配置文件/etc/apt/apt.conf进行配置(若无此文件需新建),向该配置文件中添加APT::Install-Recommends"0"和APT::Install-Suggests"0"配置项,来关闭软件包的可选和推荐自动安装,避免引入不必要的软件包。
随后,在步骤S120中,根据目标服务器的应用场景确定最小化系统的目标软件集,并分别安装各目标软件。目标软件为目标服务器的应用场景中所必备的软件,例如,若目标服务器为数据库服务器,则其目标软件为数据库管理软件。
根据一种实施例,最小化系统包括软件包管理软件apt,相应地,可以通过软件包管理软件来安装目标软件。
随后,在步骤S130中,根据样本设备的运行环境精简最小化系统的内核和文件。
目标服务器的目标运行环境决定了它可以删除那些不必要的内核模块与固件。样本设备与目标服务器的硬件环境相似,因此,可以根据样本设备的运行环境来精简内核模块和固件。
根据一种实施例,可以采用诸如lspci、lshw等命令来检索样本设备的硬件信息,在此基础上不断调整内核的基础配置,确定系统中的冗余内核模块,并删除这些冗余内核模块。冗余内核模块例如包括当前运行环境中不需要的(即没有用到的)内核驱动、特定、协议等内核配置项,通过删除这些冗余内核模块,可以达到较为理想的内核精简效果。举例来说,该步骤可以保留目标服务本身需要的Raid卡驱动、网卡驱动等必要驱动,裁剪不需要的无线网卡驱动、蓝牙驱动、摄像头驱动等。
此外,根据一种实施例,还可以根据当前实际加载的内核模块、内核模块的输出的文件访问信息、以及文件引用情况(文件引用情况例如可以通过lsof命令查看),来确定所述最小化系统中的冗余固件,并删除这些冗余固件。该步骤可以将目标运行环境中不需要的固件删除,从而进一步精简操作系统。
需要说明的是,由于服务器的硬件配置在采购的时候可以做到很好的统一,以上过程可通过脚本和配置固化下来,保存在配置库中,为后期其他类似硬件环境和应用场景的定制提供参考。也可抽取多种应用场景共性部分,作为公开的模版使用。
根据一种实施例,可以根据当前内核模块输出的文件访问信息场景和目标服务器的应用场景来确定冗余文件,并删除所述冗余文件。冗余文件为操作系统中不需要的文件,例如,绝大部分不需要的locale语言包、geoip/zoneinfo等地理信息数据,以及不需要的man、info手册等文件均为冗余文件,需要进行删除。此外,可以通过诸如journalctl、dmesg等命令来浏览内核模块输出的文件访问信息,通过此动态使用到的文件列表来保留必要的文件,并确定没有被内核使用到的冗余文件,将这些没有用到的冗余文件删除,从而进一步精简操作系统。
根据一种实施例,在步骤S130之后,还包括步骤S132(步骤S132未在图1中示出)。在步骤S132中,获取已安装的各软件包之间的依赖关系,删除由依赖关系所引入的不必要的软件包。例如,可以通过软件包管理器提供的诸如apt-cache rdepends、apt-cachedepends命令来分析占据较大存储空间的软件包的依赖情况,并进行依赖分析,解决弱依赖导致的不必要的软件安装问题。此外,在该步骤中,也可以通过对源码包的构建依赖和构建参数进行调整,来打破不必要的软件依赖的引入。
根据一种实施例,在步骤S130之后,还包括步骤S134(步骤S134未在图1中示出)。在步骤S134中,通过修改相应的配置文件来调整内核运行参数,以优化目标操作系统的性能。例如,可以通过ulimit–n命令来增加打开文件数,从而提高系统的并行处理能力;又例如,可以通过编辑sysctl.conf文件来调整内核运行参数,优化目标操作系统的性能。
在按照上述步骤S110~S130完成目标操作系统的定制后,执行步骤S140,将经过上述处理所得到的目标操作系统打包生成镜像文件。
根据一种实施例,在生成目标操作系统的镜像文件之后,将该镜像文件上传至镜像分发服务器,以便目标服务器后续从镜像分发服务器处获取该镜像文件。
基于上述步骤S110~S140,完成了基础操作系统的定制。根据一种实施例,进一步搭建定制好的目标操作系统的软件仓库,软件仓库中的软件的种类和数量根据目标服务器的应用场景来确定。
根据一种实施例,软件仓库进一步包括软件包仓库和容器镜像仓库。根据不同的应用场景可以定义软件包仓库中的软件和容器镜像仓库中的容器镜像的种类与数量。定制的软件仓库用于为后续目标操作系统的批量部署做准备。软件仓库定制的主要包括以下两个步骤:
1、通过预先调研客户的需求,决定操作系统软件包仓库内需要包含所需的软件,通过使用nginx搭建独立的软件包服务器或者使用安全可靠的云服务,并在此基础上使用aptly软件管理软件仓库;
2、与操作系统软件包仓库定制类似,根据定制需求,通过使用harbor可以架设独立的镜像服务器或者使用主流云服务,管理容器镜像仓库。容器镜像仓库的软件集根据定制需求来定义。
以下给出两种服务器应用场景的软件仓库的示例。
示例1:Kubernetes集群
该应用场景下,需定制一个包含docker、kubeadmin以及kubelet等基础容器应用的软件包仓库以及一个包含kubernetes组件的容器仓库。通过限定软件包仓库和容器仓库中软件包和容器的种类和数量,从而确保集群内的服务器都用在选定用途。软件包仓库中的核心软件以及容器仓库中的主要容器镜像附表如下:
表1
Figure BDA0002256395430000091
示例2:企业级Java应用集群
此场景可以定制如下表2所示的软件包仓库:
表2
Figure BDA0002256395430000101
参见以上描述,本发明的操作系统定制方法100不是像现有技术一样对通用操作系统进行裁剪,而是从基础系统(即最小化系统)开始,根据目标服务器的应用场景来定制软件、内核及系统服务,最终生成目标操作系统,避免了系统模块的漏删、错删等问题,降低了定制复杂度,提高了定制效率。此外,本发明进一步针对目标服务器的应用场景,搭建了目标操作系统的软件仓库,以便实现目标操作系统的批量、灵活部署。
基于方法100所定制的目标操作系统和软件仓库,本发明还提供一种操作系统的批量部署方案。该方案采用网络部署方式,根据预先配置的网络安装配置文件,将定制好的目标操作系统批量、自动化地部署至服务器集群中的各个节点服务器(即目标服务器)中。该部署过程无须人工干预,且可以根据网络安装配置文件从软件仓库中灵活地获取并安装预装软件,实现了操作系统的快速部署,满足了现代云平台的运行需求。
图2示出了根据本发明一个实施例的操作系统的批量部署系统200的示意图。如图2所示,系统200包括待部署的服务器集群210、镜像分发服务器220和软件仓库230。其中,服务器集群210进一步包括多个节点服务器212,通常地,集群中的各个节点服务器212硬件配置相同。软件仓库230进一步包括软件包仓库232和容器镜像仓库234。
系统200采用可配置的网络部署方式(PXE,preboot execute environment),对集群中的节点服务器212部署目标操作系统,在部署之前根据用户需求进行定制安装选项,生成网络安装配置文件(或称应答文件),存储至镜像分发服务器220中。此外,在前述方法100中,在样本设备110处生成的定制化的目标操作系统镜像也上传至镜像分发服务器220中进行存储。这样,镜像分发服务器220中便存储有目标操作系统的镜像文件以及服务器集群210的网络安装配置文件。
软件仓库230中存储有与服务器集群210的应用场景相匹配的软件包和容器镜像。
在图2所示的部署系统中,各节点服务器212分别向镜像分发服务器220发起获取目标操作系统的镜像文件的请求。基于该请求,镜像分发服务器220向节点服务器212返回镜像文件和网络安装配置文件。节点服务器212接收到服务器220返回的镜像文件和网络安装配置文件后,基于该配置文件来安装目标操作系统,从而完成系统部署。
网络安装配置文件中记录有操作系统安装过程中的各个配置项。各节点服务器212可以根据网络安装配置文件中的配置项高效、自动化地完成目标操作系统的安装,全程无需人工进行干预。
具体地,网络安装配置文件包括磁盘分区信息、预装软件信息、系统配置信息合规化检测脚本等配置信息,相应地,节点服务器212在目标操作系统的安装过程中,根据磁盘分区信息来划分存储区域;根据系统配置信息来设置系统配置项;根据预装软件信息,从预设的软件仓库230获取预装软件并进行安装;以及在安装完成后执行合规化检测脚本,以对安装后的目标操作系统进行合规化检测。
具体地,网络安装配置文件中可以按照以下配置原则来设置分区、预装软件等配置项:
1、分区定制:针对用户的应用场景,服务器分区按需定制。
2、操作系统的重要目录(usr、boot等)单独分区,其文件系统可配置只读方式。
3、容器默认存储在/var/lib/目录下,配置单独分区方便采取进一步的数据保护措施,可采用docker内置的备份和恢复机制或传统基础文件的备份和恢复方式或储存快照技术及云备份和恢复技术等。
4、应用和数据分离,建议数据划分单独的存储区域进行存储。这样当应用乃至系统出现问题时,可以重新部署,利用独立存储的数据快速恢复业务。
5、软件预装定制。根据应用的具体场景,定制操作系统预装软件与容器应用。
7、根据服务器集群用途进行适配,如数据库集群可预装数据库镜像,网络服务器可以预装网络应用镜像。在批量操作系统安装阶段就可定制策略,从第一阶段定制的软件仓库和容器镜像仓库中拉取所需要的软件和镜像,同时部署不同需求的集群节点。
8、系统启动项定制。根据业务场景定制操作系统启动服务,如配置自动加入容器集群或者主动被集群管理平台托管,配置系统日志管理,配置审计组件等。系统启动项定制通过配置自启动服务方式,例如配置systemd的自启动服务,配置rclocal等方法。
基于系统200,服务器集群210中的各个节点服务器212可以从镜像分发服务器中获取目标操作系统的镜像文件和网络安装配置文件,并根据网络安装配置文件,从定制的软件仓库中获取预装软件,完成目标操作系统和预装软件的安装,根据用户需求大批量部署目标操作系统到集群节点。
仍以上文中提到的Kubernetes集群、企业级Java应用集群两种应用场景为例,来说明批量部署阶段的定制工作,即网络安装配置文件的定制工作。定制好的网络安装配置文件存放在镜像分发服务器(PXE服务器)处,作为安装器的自动应答文件。合规化脚本作为安装结束后最后执行的系统修改和配置检测脚本。
示例1:Kubernetes集群
Kubernetes集群的网络安装配置文件中包括以下配置信息:
表3
Figure BDA0002256395430000131
示例2:企业级Java应用集群
企业级Java应用集群的网络安装配置文件中包括以下配置信息:
表4
Figure BDA0002256395430000132
图3示出了根据本发明一个实施例的操作系统的批量部署方法300的流程图。方法300在前述批量部署系统200中执行,具体地,在服务器集群210的各个节点服务器212中执行,用于将前述方法100所生成的目标操作系统快速、批量、自动化地部署至集群的各个节点服务器中。如图3所示,方法300始于步骤S310。
在步骤S310中,各节点服务器分别向镜像分发服务器发起获取目标操作系统镜像文件的请求。
随后,在步骤S320中,接收镜像分发服务器返回的镜像文件和网络安装配置文件,其中,网络安装配置文件根据节点服务器的应用场景生成。
随后,在步骤S330中,根据网络安装配置文件来安装目标操作系统。
根据一种实施例,网络安装配置文件包括预装软件信息,相应地,步骤S330包括:根据预装软件信息,从预设的软件仓库获取预装软件并进行安装。
根据一种实施例,网络安装配置文件还包括磁盘分区信息、系统配置信息和合规化检测脚本,相应地,步骤S330包括:根据磁盘分区信息来划分存储区域;根据系统配置信息来设置系统配置项;以及执行合规化检测脚本,以对安装后的目标操作系统进行合规化检测。
本发明的操作系统定制方法采用网络部署方式,根据预先配置的网络安装配置文件,将定制好的目标操作系统批量、自动化地部署至服务器集群中的各个节点服务器(即目标服务器)中。该部署过程无须人工干预,且可以根据网络安装配置文件从软件仓库中灵活地获取并安装预装软件,实现了操作系统的快速部署,满足了现代云平台的运行需求。
为了更好地说明本发明的技术方案,以下以一个应用场景为例,来介绍本发明的操作系统定制和批量部署方案。该应用场景为现有的集群扩展节点,部署定制的操作系统并接入高可用集群,其流程如下:
步骤1:定制基于ARM平台的基础操作系统,利用debootstrap创建一个最小系统,,定制精简内核与文件系统,调整操作系统进程数上限,预装开源的高可用集群软件。
步骤2:构建操作系统软件仓库,能提供corosync,pacemaker,heartbeat等高可用集群搭建所需要的软件包。
步骤3:在需要部署操作系统的节点服务器的网络中配置网络安装服务器,配置所有节点为网络启动。其中需要配置网络安装服务器上的DHCP服务与tftp服务,并部署操作系统安装所需的文件。
步骤4:定制所有节点的分区方案:在网络安装配置文件中设置LVM逻辑卷,并按照应用需求配置相应的存储方案。
步骤5:定制软件预装方案:在网络安装配置文件中,配置每个节点预装审计软件,防火墙软件,系统备份软件等。
步骤6:定制系统启动项:配置系统启动后的运行服务,例如配置启动corosync,启动pacemaker服务。
步骤7:部署操作系统:根据网络安装配置方案,启动每个节点服务器的网络安装,批量部署操作系统到每个节点服务器上。通过上述步骤,预期可以达到操作系统可以根据应用场景的具体需求来定制系统组件,实现节点快速部署与服务上线。
A11、如权利要求10所述的方法,其中,所述软件仓库包括软件包仓库和容器镜像仓库。
A12、一种操作系统的批量部署方法,在服务器集群的各个节点服务器中执行,所述方法包括:
向镜像分发服务器发起获取目标操作系统镜像文件的请求;
接收镜像分发服务器返回的所述镜像文件和网络安装配置文件,所述网络安装配置文件根据所述节点服务器的应用场景生成;
根据所述网络安装配置文件来安装所述目标操作系统。
A13、如权利要求12所述的方法,其中,所述网络安装配置文件包括预装软件信息,所述根据所述网络安装配置文件来安装所述目标操作系统的步骤包括:
根据所述预装软件信息,从预设的软件仓库获取预装软件并进行安装。
A14、如权利要求12或13所述的方法,其中,所述网络安装配置文件还包括磁盘分区信息、系统配置信息和合规化检测脚本,所述根据所述网络安装配置文件来安装所述目标操作系统的步骤包括:
根据所述磁盘分区信息来划分存储区域;
根据所述系统配置信息来设置系统配置项;以及
执行所述合规化检测脚本,以对安装后的目标操作系统进行合规化检测。
A15、一种操作系统的批量部署系统,包括镜像分发服务器和待部署的服务器集群,所述服务器集群包括多个节点服务器;
所述镜像分发服务器中存储有目标操作系统的镜像文件以及所述服务器集群的网络安装配置文件;
所述服务器集群中的每一个节点服务器适于:
向所述镜像分发服务器发起获取目标操作系统的镜像文件的请求;
接收所述镜像分发服务器返回的所述镜像文件和所述网络安装配置文件;以及
根据所述网络安装配置文件来安装所述目标操作系统。
A16、如权利要求15所述的系统,还包括软件仓库,所述软件仓库中存储有适用于所述目标操作系统的软件;
所述网络安装配置文件包括预装软件信息,所述服务器集群中的每一个节点服务器还适于:
根据所述预装软件信息,从所述软件仓库获取预装软件并进行安装。
这里描述的各种技术可结合硬件或软件,或者它们的组合一起实现。从而,本发明的方法和设备,或者本发明的方法和设备的某些方面或部分可采取嵌入有形媒介,例如可移动硬盘、U盘、软盘、CD-ROM或者其它任意机器可读的存储介质中的程序代码(即指令)的形式,其中当程序被载入诸如计算机之类的机器,并被所述机器执行时,所述机器变成实践本发明的设备。
在程序代码在可编程计算机上执行的情况下,计算设备一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件),至少一个输入装置,和至少一个输出装置。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器中存储的所述程序代码中的指令,执行本发明的操作系统定制方法或操作系统批量部署方法。
以示例而非限制的方式,可读介质包括可读存储介质和通信介质。可读存储介质存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。以上的任一种的组合也包括在可读介质的范围之内。
在此处所提供的说明书中,算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与本发明的示例一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的而非限制性的,本发明的范围由所附权利要求书限定。

Claims (15)

1.一种操作系统定制方法,在样本设备中执行,适于生成适用于目标服务器的目标操作系统,其中,所述样本设备与所述目标服务器的硬件环境的相似度大于阈值,所述方法包括步骤:
在指定目录下创建指定版本的最小化系统;
根据目标服务器的应用场景确定最小化系统的目标软件集,并分别安装所述目标软件;
根据样本设备的运行环境精简所述最小化系统的内核和文件;
将经过上述处理所得到的目标操作系统打包生成镜像文件;
其中,按照以下步骤来精简所述最小化系统的内核:
根据样本设备的硬件信息来确定所述最小化系统中的冗余内核模块;
根据当前实际加载的内核模块、内核模块的输出的文件访问信息、以及文件引用情况,来确定所述最小化系统中的冗余固件;以及
删除所述冗余内核模块和冗余固件。
2.如权利要求1所述的方法,其中,所述在指定目录下创建指定版本的最小化系统的步骤包括:
在当前操作系统中安装用于创建根文件系统的引导工具debootstrap,所述当前操作系统为所述样本设备当前已安装的操作系统;
运行所述引导工具debootstrap,在指定目录下生成根文件系统rootfs;
通过根目录转换命令chroot来进入所述根文件系统。
3.如权利要求1或2所述的方法,在所述创建指定版本的最小化系统的步骤之后,还包括步骤:
关闭软件包的可选和推荐自动安装。
4.如权利要求1或2所述的方法,其中,所述最小化系统包括软件包管理软件,所述安装所述目标软件的步骤包括:
通过所述软件包管理软件来安装所述目标软件。
5.如权利要求1或2所述的方法,其中,按照以下步骤来精简所述最小化系统的文件:
根据当前内核模块输出的文件访问信息场景和目标服务器的应用场景来确定冗余文件,并删除所述冗余文件。
6.如权利要求1或2所述的方法,还包括步骤:
获取已安装的各软件包之间的依赖关系,删除由依赖关系所引入的不必要的软件包。
7.如权利要求1或2所述的方法,还包括步骤:
通过修改相应的配置文件来调整内核运行参数,以优化目标操作系统的性能。
8.如权利要求1或2所述的方法,还包括步骤:
将所述镜像文件上传至镜像分发服务器,以便所述目标服务器从所述镜像分发服务器处获取所述镜像文件。
9.如权利要求1或2所述的方法,还包括步骤:
搭建目标操作系统的软件仓库,所述软件仓库中的软件的种类和数量根据所述目标服务器的应用场景来确定。
10.如权利要求9所述的方法,其中,所述软件仓库包括软件包仓库和容器镜像仓库。
11.一种操作系统的批量部署方法,在服务器集群的各个节点服务器中执行,所述方法包括:
向镜像分发服务器发起获取目标操作系统镜像文件的请求,其中,所述镜像文件为由权利要求1至10中任一项所述的操作系统定制方法生成的;
接收镜像分发服务器返回的所述镜像文件和网络安装配置文件,所述网络安装配置文件根据所述节点服务器的应用场景生成;
根据所述网络安装配置文件来安装所述目标操作系统。
12.如权利要求11所述的方法,其中,所述网络安装配置文件包括预装软件信息,所述根据所述网络安装配置文件来安装所述目标操作系统的步骤包括:
根据所述预装软件信息,从预设的软件仓库获取预装软件并进行安装。
13.如权利要求11或12所述的方法,其中,所述网络安装配置文件还包括磁盘分区信息、系统配置信息和合规化检测脚本,所述根据所述网络安装配置文件来安装所述目标操作系统的步骤包括:
根据所述磁盘分区信息来划分存储区域;
根据所述系统配置信息来设置系统配置项;以及
执行所述合规化检测脚本,以对安装后的目标操作系统进行合规化检测。
14.一种操作系统的批量部署系统,包括镜像分发服务器和待部署的服务器集群,所述服务器集群包括多个节点服务器;
所述镜像分发服务器中存储有目标操作系统的镜像文件以及所述服务器集群的网络安装配置文件,其中,所述镜像文件为由权利要求1至10中任一项所述的操作系统定制方法生成的;
所述服务器集群中的每一个节点服务器适于:
向所述镜像分发服务器发起获取目标操作系统的镜像文件的请求;
接收所述镜像分发服务器返回的所述镜像文件和所述网络安装配置文件;以及
根据所述网络安装配置文件来安装所述目标操作系统。
15.如权利要求14所述的系统,还包括软件仓库,所述软件仓库中存储有适用于所述目标操作系统的软件;
所述网络安装配置文件包括预装软件信息,所述服务器集群中的每一个节点服务器还适于:
根据所述预装软件信息,从所述软件仓库获取预装软件并进行安装。
CN201911055324.4A 2019-10-31 2019-10-31 操作系统的定制方法、批量部署方法以及批量部署系统 Active CN110825392B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911055324.4A CN110825392B (zh) 2019-10-31 2019-10-31 操作系统的定制方法、批量部署方法以及批量部署系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911055324.4A CN110825392B (zh) 2019-10-31 2019-10-31 操作系统的定制方法、批量部署方法以及批量部署系统

Publications (2)

Publication Number Publication Date
CN110825392A CN110825392A (zh) 2020-02-21
CN110825392B true CN110825392B (zh) 2023-07-04

Family

ID=69552162

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911055324.4A Active CN110825392B (zh) 2019-10-31 2019-10-31 操作系统的定制方法、批量部署方法以及批量部署系统

Country Status (1)

Country Link
CN (1) CN110825392B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111399847A (zh) * 2020-03-17 2020-07-10 成都千立网络科技有限公司 一种可跨硬件平台移植的业务系统
CN111651168A (zh) * 2020-05-13 2020-09-11 无锡江南计算技术研究所 一种面向云原生应用场景的操作系统定制方法
CN112199161A (zh) * 2020-10-16 2021-01-08 济南浪潮数据技术有限公司 一种云平台服务管理方法、装置及相关组件
CN112256290B (zh) * 2020-11-02 2022-06-14 北京中宏立达信创科技有限公司 一种一体化操作系统部署的装置及方法
CN113485712A (zh) * 2021-04-23 2021-10-08 武汉深之度科技有限公司 一种内核裁剪方法及计算设备
CN113254055B (zh) * 2021-06-29 2021-09-28 中航信移动科技有限公司 无效依赖的删除方法、装置、计算机设备及存储介质
CN113867778A (zh) * 2021-09-18 2021-12-31 苏州浪潮智能科技有限公司 一种镜像文件的生成方法、装置、电子设备及存储介质
CN113849240A (zh) * 2021-09-30 2021-12-28 济南浪潮数据技术有限公司 一种操作系统确定方法、装置、电子设备及存储介质
CN114115763A (zh) * 2021-11-15 2022-03-01 上海商米科技集团股份有限公司 打印机平台化产品的配置装置及配置方法
CN114416122B (zh) * 2021-12-30 2022-11-11 山东奥邦交通设施工程有限公司 Etc门架系统软件自动批量安装的方法及系统
CN116880897B (zh) * 2023-09-06 2023-12-08 中国电子科技集团公司第十研究所 面向航天测运控信息系统的集装箱式软件包管理方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102129381A (zh) * 2011-03-14 2011-07-20 兰雨晴 一种定制linux操作系统的方法
CN103167041A (zh) * 2013-03-28 2013-06-19 广州中国科学院软件应用技术研究所 一种支持云环境应用集群自动化部署的系统及方法
CN106919432A (zh) * 2015-12-28 2017-07-04 航天信息股份有限公司 Linux操作系统的定制方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101453367B (zh) * 2007-11-30 2011-12-28 华为技术有限公司 软件部署方法和系统及软件部署服务器和用户服务器

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102129381A (zh) * 2011-03-14 2011-07-20 兰雨晴 一种定制linux操作系统的方法
CN103167041A (zh) * 2013-03-28 2013-06-19 广州中国科学院软件应用技术研究所 一种支持云环境应用集群自动化部署的系统及方法
CN106919432A (zh) * 2015-12-28 2017-07-04 航天信息股份有限公司 Linux操作系统的定制方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
"Linux操作系统的定制和精简";罗奕;《计算机时代》;20050525(第5期);第38-39页 *
"客制化嵌入式操作系统";陈伯符;《电子与电脑》;20110715(第7期);第57-60页 *
罗奕."Linux操作系统的定制和精简".《计算机时代》.2005,(第5期),第38-39页. *

Also Published As

Publication number Publication date
CN110825392A (zh) 2020-02-21

Similar Documents

Publication Publication Date Title
CN110825392B (zh) 操作系统的定制方法、批量部署方法以及批量部署系统
CN106227579B (zh) 一种Docker容器构建方法及Docker管理控制台
US9983891B1 (en) Systems and methods for distributing configuration templates with application containers
US20210406079A1 (en) Persistent Non-Homogeneous Worker Pools
US8135813B2 (en) Method, system and program product for remotely deploying and automatically customizing workstation images
CN111492347A (zh) 用于更新容器的系统和方法
US7941599B2 (en) IT automation appliance imaging system and method
CN110413288B (zh) 应用部署方法、装置、服务器及存储介质
EP3518099B1 (en) Installation of operating system
US11403146B2 (en) Method, apparatus, and server for managing image across cloud servers
US7761867B2 (en) Method and system for creation of operating system partition table
US10268628B2 (en) Method for extracting BIOS attributes for BIOS management and system therefor
CN101454765A (zh) 用补丁等来更新虚拟机
US11775475B2 (en) Deferred path resolution during container deployment
US20150149756A1 (en) System and method for setting up a bootable storage device using image
CN111651168A (zh) 一种面向云原生应用场景的操作系统定制方法
US10175886B1 (en) Systems and methods for handling missing storage image layers while provisioning containers in computer clusters
CN114579148A (zh) 操作系统的安装方法及装置
CN114385251A (zh) 基于存储器的操作系统引导方法、系统、终端及存储介质
US20200364040A1 (en) System and Method for Restoring a Previously Functional Firmware Image on a Non-Volatile Dual Inline Memory Module
US20150212866A1 (en) Management system for service of multiple operating environments, and methods thereof
CN115857968A (zh) 操作系统安装方法及装置
CN114443582B (zh) 一种操作系统上文件系统挂载方法、装置、设备及介质
US11743188B2 (en) Check-in monitoring for workflows
US20240020103A1 (en) Parallelizing data processing unit provisioning

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 17th Floor, Building 12, Yard 10, Kegu 1st Street, Beijing Economic and Technological Development Zone, Daxing District, Beijing 100176 (Beijing Pilot Free Trade Zone High-end Industry Zone Yizhuang Group)

Applicant after: Beijing Tongxin Software Technology Co.,Ltd.

Address before: 603, block B, Putian Desheng, No.28, xinjiekouwei street, Xicheng District, Beijing 100032

Applicant before: BEIJING SHENZHIDU TECHNOLOGY CO.,LTD.

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20230308

Address after: 214064 Mailbox 33, Wuxi City, Jiangsu Province

Applicant after: The 56th Research Institute of the Strategic Support Force of the Chinese PLA

Applicant after: WUHAN DEEPIN TECHNOLOGY CO.,LTD.

Address before: 17th Floor, Building 12, Yard 10, Kegu 1st Street, Beijing Economic and Technological Development Zone, Daxing District, Beijing 100176 (Beijing Pilot Free Trade Zone High-end Industry Zone Yizhuang Group)

Applicant before: Beijing Tongxin Software Technology Co.,Ltd.

CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Zhou Wei

Inventor after: Hong Hao

Inventor after: Wang Lei

Inventor after: Chen Lin

Inventor after: Yang Kun

Inventor after: Liu Gui

Inventor before: Hong Hao

GR01 Patent grant
GR01 Patent grant