CN111552542B - 一种自动化构建虚机镜像的方法 - Google Patents
一种自动化构建虚机镜像的方法 Download PDFInfo
- Publication number
- CN111552542B CN111552542B CN202010370608.9A CN202010370608A CN111552542B CN 111552542 B CN111552542 B CN 111552542B CN 202010370608 A CN202010370608 A CN 202010370608A CN 111552542 B CN111552542 B CN 111552542B
- Authority
- CN
- China
- Prior art keywords
- mirror image
- virtual machine
- template
- packer
- ssh
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及云计算技术领域,具体提供了一种自动化构建虚机镜像的方法。与现有技术相比,本发明的一种自动化构建虚机镜像的方法,分为以下步骤,S01、用户提交Packer虚机镜像定义模板到Gitlab仓库,S02、触发Jenkins构建镜像流程,根据需要设置手动触发或提交代码触发,S03、Jenkins使用Packer按照模板构建虚机镜像,S04、Jenkins推送制作好的镜像到镜像仓库。本发明开发人员只需要操作Packer模板文件,简化了操作流程,节省了时间和人力成本,极大的提高了工作效率,具有良好的推广价值。
Description
技术领域
本发明涉及云计算技术领域,具体提供一种自动化构建虚机镜像的方法。
背景技术
近年来云计算技术发展迅速,越来越多的企业、团体及个人选择将自己的服务或应用部署到云平台上。虚拟化技术作为云计算核心技术之一,为云计算的发展做出了强有力的支撑。云平台中的虚拟机节点通常使用虚拟机镜像文件进行实例化。针对不同功能的虚机节点,往往需要对虚机镜像进行一系列修改。
在使用图形界面手动构建虚拟机镜像主要包含以下过程:
1)下载需要的操作***iso文件;
2)使用iso文件创建虚拟机,并在虚拟机中根据需要进行创建用户,安装软件等操作;
3)保存修改后的虚机镜像文件;
4)上传虚机镜像文件到镜像仓库。
在得到需要的虚机镜像文件后,开发人员往往还需要对镜像文件进行版本管理,整个操作过程十分耗费时间和经历。
发明内容
本发明是针对上述现有技术的不足,提供一种实用性强的自动化构建虚机镜像的方法。
本发明解决其技术问题所采用的技术方案是:
一种自动化构建虚机镜像的方法,分为以下步骤,
S01、用户提交Packer虚机镜像定义模板到Gitlab仓库,
S02、触发Jenkins构建镜像流程,根据需要设置手动触发或提交代码触发;
S03、Jenkins使用Packer按照模板构建虚机镜像,
S04、Jenkins推送制作好的镜像到镜像仓库。
进一步的,在Gitlab仓库中,创建一个代码仓库作为Packer的模板仓库,按照镜像制作需要编写的Packer模板,并提交代码到镜像仓库。
进一步的,在Jenkins配置中,首先创建一个新的Jenkins Pipeline,设置源码拉取URL为虚机镜像Gitlab项目地址,设置拉取分支为所需代码分支;
然后,设置触发方式为提交代码触发,如不设置触发方式则取默认方式手动触发,提供虚机源镜像地址以及镜像仓库地址,编写构建脚本命令;
最后,若构建出现问题,开发人员可在Jenkins构建的控制台输出查看日志,进行Debug。
进一步的,在Packer进行配置时,首先,使用Packer的JSON模板定义所需的虚机镜像,然后,在模板的builders模块中设置SSH连接,同时设置暴露VNC端口以及输出镜像的相关信息,或在此模块中设置***的启动命令,最后,在模板的provisioners模块中定义虚机镜像启动后需要安装的软件、需要下载的包以及需要创建的用户。
进一步的,所述的Packer模板为JSON格式,主要分为两部:builers部分和provisioners部分。
进一步的,所述的builers部分为创建虚机主要配置,负载创建虚机并生成镜像,并含有以下标签:
type:虚机种类,常用的有qemu、vmware-iso或virtualbox-iso,
iso_url:iso格式源镜像加载地址,
iso_checksum_type:iso格式源镜像校验码校验种类,
iso_checksum:iso格式源镜像校验码,
output_directory:镜像输出文件夹,
shutdown_command:镜像关机命令,
disk_size:硬盘大小,若未指定单位,则默认值为兆字节,
format:输出镜像格式,
accelerator:加速器类型,
http_directory:使用HTTP服务器提供服务的目录的路径,
ssh_port:SSH连接端口,
ssh_username:SSH用户名,
ssh_password:SSH密码,
ssh_wait_timeout:SSH等待超时时间,
vm_name:虚机名称,
net_device:网络设备接口的驱动程序,
disk_interface:磁盘接口,
vnc_bind_address:VNC绑定地址,
qemuargs:QEMU配置参数,
boot_wait:启动虚机之后键入boot_command的等待时间,
boot_command:虚机启动后需要键入的命令。
作为优选,所述builers部分支持Vmware、VirtualBox或QEMU平台。
进一步的,Provisioners部分主要用于虚机启动后镜像的定制化操作,主要用到的provisioners类型为shell和file,用type标签指定类型。
进一步的,Shell类型的provisioner为开机后要执行的脚本程序,用户可以用这些脚本下载程序,创建用户。
进一步的,File类型的provisioenr为开机后要上传的文件。常用的方式为上传用户自己打包的程序安装包,之后用shell类型provisioner安装程序。
本发明的自动化构建虚机镜像的方法和现有技术相比,具有以下突出的有益效果:
通过使用本发明,可以实现虚拟镜像的自动化构建,并实现了镜像的版本管理和自动化发布。开发人员只需要操作Packer模板文件,简化了操作流程,节省了时间和人力成本,极大的提高了工作效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
附图1是一种自动化构建虚机镜像的方法的流程图;
附图2是本发明中Jenkins配置样例图。
具体实施方式
为了使本技术领域的人员更好的理解本发明的方案,下面结合具体的实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例都属于本发明保护的范围。
下面给出一个最佳实施例:
如图1、2所示,本实施例中的自动化构建虚机镜像的方法,分为以下步骤,
S01、用户提交Packer虚机镜像定义模板到Gitlab仓库,
S02、触发Jenkins构建镜像流程,根据需要设置手动触发或提交代码触发。
S03、Jenkins使用Packer按照模板构建虚机镜像,
S04、Jenkins推送制作好的镜像到镜像仓库。
其中,在Gitlab仓库中,创建一个代码仓库作为Packer的模板仓库,按照镜像制作需要编写的Packer模板,并提交代码到镜像仓库。
在Jenkins配置中,首先创建一个新的Jenkins Pipeline,设置源码拉取URL为虚机镜像Gitlab项目地址,设置拉取分支为所需代码分支;
然后,设置触发方式为提交代码触发,如不设置触发方式则取默认方式手动触发,提供虚机源镜像地址以及镜像仓库地址,编写构建脚本命令;
最后,若构建出现问题,开发人员可在Jenkins构建的控制台输出查看日志,进行Debug。
在Packer进行配置时,首先,使用Packer的JSON模板定义所需的虚机镜像,然后,在模板的builders模块中设置SSH连接,同时设置暴露VNC端口以及输出镜像的相关信息,或在此模块中设置***的启动命令,最后,在模板的provisioners模块中定义虚机镜像启动后需要安装的软件、需要下载的包以及需要创建的用户。
Packer模板为JSON格式,主要分为两部:builers部分和provisioners部分。
Builders部分为创建虚机主要配置,负责创建虚机并生成镜像。其支持多种平台,如VMware,VirtualBox和QEMU。这部分主要包括以下标签:
1.type:虚机种类,常用的有qemu,vmware-iso,virtualbox-iso
2.iso_url:iso格式源镜像加载地址
3.iso_checksum_type:iso格式源镜像校验码校验种类
4.iso_checksum:iso格式源镜像校验码
5.output_directory:镜像输出文件夹
6.shutdown_command:镜像关机命令
7.disk_size:硬盘大小,若未指定单位,则默认值为兆字节
8.format:输出镜像格式
9.accelerator:加速器类型
10.http_directory:使用HTTP服务器提供服务的目录的路径
11.ssh_port:SSH连接端口
12.ssh_username:SSH用户名
13.ssh_password:SSH密码
14.ssh_wait_timeout:SSH等待超时时间
15.vm_name:虚机名称
16.net_device:网络设备接口的驱动程序
17.disk_interface:磁盘接口
18.vnc_bind_address:VNC绑定地址
19.qemuargs:QEMU配置参数
20.boot_wait:启动虚机之后键入boot_command的等待时间
21.boot_command:虚机启动后需要键入的命令
Provisioners部分主要用于虚机启动后镜像的定制化操作,如安装第三方软件,配置虚机创建用户等。主要用到的provisioners类型为shell和file,用type标签指定类型。
Shell类型的provisioner为开机后要执行的脚本程序,用户可以用这些脚本下载程序,创建用户等。
File类型的provisioenr为开机后要上传的文件。常用的方式为上传用户自己打包的程序安装包,之后用shell类型provisioner安装程序。
代码为:
上述具体的实施方式仅是本发明具体的个案,本发明的专利保护范围包括但不限于上述具体的实施方式,任何符合本发明的一种自动化构建虚机镜像的方法权利要求书的且任何所述技术领域普通技术人员对其做出的适当变化或者替换,皆应落入本发明的专利保护范围。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
Claims (1)
1.一种自动化构建虚机镜像的方法,其特征在于,分为以下步骤,
S01、用户提交Packer虚机镜像定义模板到Gitlab仓库,
S02、触发Jenkins构建镜像流程,根据需要设置手动触发或提交代码触发;
S03、Jenkins使用Packer按照模板构建虚机镜像,
S04、Jenkins推送制作好的镜像到镜像仓库;
在Gitlab仓库中,创建一个代码仓库作为Packer的模板仓库,按照镜像制作需要编写的Packer模板,并提交代码到镜像仓库;
在Jenkins配置中,首先创建一个新的Jenkins Pipeline,设置源码拉取URL为虚机镜像Gitlab项目地址,设置拉取分支为所需代码分支;
然后,设置触发方式为提交代码触发,如不设置触发方式则取默认方式手动触发,提供虚机源镜像地址以及镜像仓库地址,编写构建脚本命令;
最后,若构建出现问题,开发人员可在Jenkins构建的控制台输出查看日志,进行Debug;
在Packer进行配置时,首先,使用Packer的JSON模板定义所需的虚机镜像,然后,在模板的builders模块中设置SSH连接,同时设置暴露VNC端口以及输出镜像的相关信息,或在此模块中设置***的启动命令,最后,在模板的provisioners模块中定义虚机镜像启动后需要安装的软件、需要下载的包以及需要创建的用户;
所述的Packer模板为JSON格式,主要分为两部:builers部分和provisioners部分;
所述的builers部分为创建虚机主要配置,负责创建虚机并生成镜像,并含有以下标签:
type:虚机种类,常用的有qemu、vmware-iso或virtualbox-iso,
iso_url:iso格式源镜像加载地址,
iso_checksum_type:iso格式源镜像校验码校验种类,
iso_checksum:iso格式源镜像校验码,
output_directory:镜像输出文件夹,
shutdown_command:镜像关机命令,
disk_size:硬盘大小,若未指定单位,则默认值为兆字节,
format:输出镜像格式,
accelerator:加速器类型,
http_directory:使用HTTP服务器提供服务的目录的路径,
ssh_port:SSH连接端口,
ssh_username:SSH用户名,
ssh_password:SSH密码,
ssh_wait_timeout:SSH等待超时时间,
vm_name:虚机名称,
net_device:网络设备接口的驱动程序,
disk_interface:磁盘接口,
vnc_bind_address:VNC绑定地址,
qemuargs:QEMU配置参数,
boot_wait:启动虚机之后键入boot_command的等待时间,
boot_command:虚机启动后需要键入的命令;
所述builers部分支持Vmware、VirtualBox或QEMU平台;
Provisioners部分主要用于虚机启动后镜像的定制化操作,主要用到的provisioners类型为shell和file,用type标签指定类型;
Shell类型的provisioner为开机后要执行的脚本程序,用户可以用这些脚本下载程序,创建用户;
File类型的provisioner为开机后要上传的文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010370608.9A CN111552542B (zh) | 2020-05-06 | 2020-05-06 | 一种自动化构建虚机镜像的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010370608.9A CN111552542B (zh) | 2020-05-06 | 2020-05-06 | 一种自动化构建虚机镜像的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111552542A CN111552542A (zh) | 2020-08-18 |
CN111552542B true CN111552542B (zh) | 2023-03-31 |
Family
ID=72007876
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010370608.9A Active CN111552542B (zh) | 2020-05-06 | 2020-05-06 | 一种自动化构建虚机镜像的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111552542B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112486631B (zh) * | 2020-12-04 | 2023-03-24 | 浪潮云信息技术股份公司 | 一种构建虚拟机镜像的方法 |
CN112558930B (zh) * | 2020-12-09 | 2022-02-08 | 苏州空天信息研究院 | 一种面向容器服务的软件生成***及方法 |
CN116339761B (zh) * | 2023-05-29 | 2024-03-08 | 天翼云科技有限公司 | 一种自动化构建镜像模板的方法、***、存储介质、设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109933408A (zh) * | 2019-03-15 | 2019-06-25 | 山东浪潮云信息技术有限公司 | 一种云计算环境下的虚拟机镜像自动化制作的装置和方法 |
CN110297659A (zh) * | 2018-03-21 | 2019-10-01 | 北京京东尚科信息技术有限公司 | 算法模型部署上线方法和装置 |
-
2020
- 2020-05-06 CN CN202010370608.9A patent/CN111552542B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110297659A (zh) * | 2018-03-21 | 2019-10-01 | 北京京东尚科信息技术有限公司 | 算法模型部署上线方法和装置 |
CN109933408A (zh) * | 2019-03-15 | 2019-06-25 | 山东浪潮云信息技术有限公司 | 一种云计算环境下的虚拟机镜像自动化制作的装置和方法 |
Non-Patent Citations (1)
Title |
---|
10倍效率提升!Packer 解决 UCloud 罗马跨云商镜像复制问题;何宁;《UCloud技术》;20191105;第1-10页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111552542A (zh) | 2020-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111552542B (zh) | 一种自动化构建虚机镜像的方法 | |
US9519472B2 (en) | Automation of virtual machine installation by splitting an installation into a minimal installation and customization | |
US8799893B2 (en) | Method, system and computer program product for solution replication | |
CN112416524A (zh) | 基于docker和kubernetes离线的跨平台的CI/CD的实现方法及装置 | |
US8776038B2 (en) | Method and system for configuration of virtualized software applications | |
US8990809B1 (en) | Creating a virtual appliance using existing installation manifest | |
US11086662B2 (en) | Method and system of migrating applications to a cloud-computing environment | |
CN107733985B (zh) | 一种云计算***功能组件部署方法及装置 | |
CN102567051A (zh) | 一种制备龙芯平台图形化安装***的方法及装置 | |
CN108616384B (zh) | 一种集中式的服务管理部署工具及方法 | |
CN111580926A (zh) | 模型发布方法、模型部署方法、装置、设备及存储介质 | |
CN113064595A (zh) | 一种基于Docker镜像的QT应用程序编译方法和装置 | |
CN111459606A (zh) | 一种虚拟化下快速创建虚拟机的方法及服务器 | |
CN111427624A (zh) | 一种服务器批量自动部署配置的方法、装置及*** | |
CN114297056A (zh) | 一种自动化测试方法及*** | |
CN102053848A (zh) | Linux操作***的自动安装方法 | |
CN112631915B (zh) | 一种pcie设备软件仿真的方法、***、设备及介质 | |
CN115357258B (zh) | 应用的部署方法、装置、存储介质及电子装置 | |
US20150212866A1 (en) | Management system for service of multiple operating environments, and methods thereof | |
US11675601B2 (en) | Systems and methods to control software version when deploying OS application software from the boot firmware | |
Sethi et al. | Rapid deployment of SOA solutions via automated image replication and reconfiguration | |
CN112463173B (zh) | 裸机服务器远程安装定制化web应用的方法、装置及介质 | |
US20220012036A1 (en) | System and method for modularizing update environment in life cycle manager | |
CN112286568A (zh) | 一种Android***多版本兼容方法 | |
CN111708553A (zh) | 一种后台更新桌面镜像的终端及*** |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |