CN110704168A - 一种基于Terraform管理OpenStack虚机的方法及装置 - Google Patents
一种基于Terraform管理OpenStack虚机的方法及装置 Download PDFInfo
- Publication number
- CN110704168A CN110704168A CN201910978841.2A CN201910978841A CN110704168A CN 110704168 A CN110704168 A CN 110704168A CN 201910978841 A CN201910978841 A CN 201910978841A CN 110704168 A CN110704168 A CN 110704168A
- Authority
- CN
- China
- Prior art keywords
- openstack
- terraform
- virtual machine
- managing
- 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.)
- Pending
Links
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
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种基于Terraform管理OpenStack虚机的方法及装置,属于云计算和虚拟化技术领域。本发明的基于Terraform管理OpenStack虚机的方法,该方法中页面创建虚机,后台应用,利用Terraform provider插件,调用OpenStack API,完成虚机的创建。该发明的基于Terraform管理OpenStack虚机的方法能够适应云计算发展,具有很好的推广应用价值。
Description
技术领域
本发明涉及云计算和虚拟化技术领域,具体提供一种基于Terraform管理OpenStack虚机的方法及装置。
背景技术
随着云计算技术的快速发展,越来越多的政府和企业正在打造与云计算相关的应用,云计算已经作为下一代计算模式全面进入实践应用阶段,各国政府纷纷推动主要厂商围绕云计算重新布局,创新平台、产品与应用不断涌现,越来越多的数据和应用在向云计算迁移。在云计算技术中一个重要领域就是虚拟化,而虚拟化的核心就是虚拟机。
发明内容
本发明的技术任务是针对上述存在的问题,提供一种能够适应云计算发展的基于Terraform管理OpenStack虚机的方法。
本发明进一步的技术任务是提供一种基于Terraform管理OpenStack虚机的装置。
为实现上述目的,本发明提供了如下技术方案:
一种基于Terraform管理OpenStack虚机的方法,该方法中页面创建虚机,后台应用,利用Terraform provider插件,调用OpenStack API,完成虚机的创建。
作为优选,该方法具体包括以下步骤:
S1、检查OpenStack部署环境,部署OpenStack;
S2、编写Terraform provider插件;
S3、编写web应用和后台应用。
作为优选,步骤S1中,检查OpenStack部署环境,具体为检查是否禁用selinux,检查主机网络参数,公钥是否导入,相关软件包是否已安装,按照OpenStack官方文档安装部署。
作为优选,步骤S2中编写Terraform provider插件具体包括以下过程:1)安装go语言环境;2)Resource开发;3)配置tf文件;4)编译成go二进制文件。
Terraform是用来安全有效的生成、改变、版本化基础设施的工具。Terraform是一个IT基础设施自动化编排工具,它的口号是“Write,Plan,and create Infra-structureas Code”,基础设施即代码。Terraform主要的功能有:①基础设施即代码(IaC)。用一种高级配置语法来描述基础设施,数据中心蓝图可以被版本管理,就像其他代码一样。此外,基础设施可以被分享和重用;②执行计划。Terraform有一个Planning步骤可以产生执行计划。执行计划可以显示当执行Terraform apply的时候Terraform要做什么改变,避免维护基础设施时的意外发生;③资源图。Terraform产生一个资源图,然后并行建立和修改没有依赖的资源。因此,Terraform可以有效的构建基础设施;④自动化改变。复杂的改变可以应用到基础设施上,同时最小的人为干预,也避免了尽可能多的人为错误。
作为优选,所述Resource开发包括调用OpenStack创建API接口、调用OpenStack查询API接口、调用OpenStack修改API接口和调用OpenStack删除API接口,调用OpenStack创建API接口,实现对虚机的创建;调用OpenStack查询API接口实现对虚机的查询;调用OpenStack修改API接口实现对当前虚拟的信息修改;调用OpenStack删除API接口实现对指定虚机的删除。
调用OpenStack创建API接口实现对虚机的创建,并将Resource id写入到state文件中,OpenStack创建API接口后调用查询和修改来完成更多功能。
调用OpenStack查询API接口实现对虚机的查询,并将虚拟的信息写入state文件中,若查询不到虚拟信息,就将Resource id标记为“”,以便告知Terraform虚机已经不存在了。
调用OpenStack修改API接口实现对当前虚拟的信息修改,在修改之前要先打开Partial,d.Partial(true),每次修改完成之后进行更新,如d.SetPartial(“image”),以保证后边的每一步更改都能成功的写入到state文件中。在修改之后要调用查询方法来查询最新的虚机信息,以便保存到state文件中。
调用OpenStack删除API接口实现对指定虚机的删除,在删除后要调用查询方法以验证虚机是否删除成功。
作为优选,配置tf文件包括配置main.tf文件、variables.tf文件、outputs.tf文件,main.tf文件即虚机参数的定义模板,variables.tf文件即模板所依赖的虚机参数定义,outputs.tf文件即虚机信息的输出值。
作为优选,编写Web应用和后台应用中,Web应用展示虚机的列表和详情信息以及对虚机的增删改操作,后台应用编写基本逻辑处理和Provider执行器,后台应用中基本逻辑处理,接收Web应用的请求,根据不同的请求调用Provider执行器,Provider执行器中利用java的命令行执行terraform命令。
Terraform执行命令:terraform init初始化模板信息variables.tf等几个tf文件,terraform plan查看Terraform执行计划,terraform apply执行模板信息,terraformoutput输出terraform执行结果。
一种基于Terraform管理OpenStack虚机的装置,包括OpenStack部署模块,用于负责检查OpenStack部署环境,部署OpenStack;
Terraform provider插件编写模块,用于编写Terraform provider插件;
web应用和后台应用编写模块,用于编写web应用和后台应用。
作为优选,OpenStack部署模块负责检查OpenStack部署环境,具体为检查是否禁用selinux,检查主机网络参数,公钥是否导入,相关软件包是否已安装,按照OpenStack官方文档安装部署。
作为优选,Terraform provider插件编写模块,编写Terraform provider插件具体包括以下过程:1)安装go语言环境;2)Resource开发;3)配置tf文件;4)编译成go二进制文件;web应用和后台应用编写模块在编写Web应用和后台应用中,Web应用展示虚机的列表和详情信息以及对虚机的增删改操作,后台应用编写基本逻辑处理和Provider执行器,后台应用中基本逻辑处理,接收Web应用的请求,根据不同的请求调用Provider执行器,Provider执行器中利用java的命令行执行terraform命令。
与现有技术相比,本发明的基于Terraform管理OpenStack虚机的方法具有以下突出的有益效果:所述基于Terraform管理OpenStack虚机的方法结合虚拟和云计算技术,能够适应云计算发展,具有良好的推广应用价值。
具体实施方式
下面将结合实施例,对本发明的基于Terraform管理OpenStack虚机的方法及装置作进一步详细说明。
实施例
本发明的基于Terraform管理OpenStack虚机的方法页面创建虚机,后台应用,利用Terraform provider插件,调用OpenStack API,完成虚机的创建。
具体包括以下步骤:
S1、检查OpenStack部署环境,部署OpenStack。
检查OpenStack部署环境,具体为检查是否禁用selinux,检查主机网络参数,公钥是否导入,相关软件包是否已安装,按照OpenStack官方文档安装部署。
S2、编写Terraform provider插件。
具体包括以下过程:1)安装go语言环境;2)Resource开发;3)配置tf文件;4)编译成go二进制文件。
其中,Resource开发包括调用OpenStack创建API接口、调用OpenStack查询API接口、调用OpenStack修改API接口和调用OpenStack删除API接口,调用OpenStack创建API接口,实现对虚机的创建;调用OpenStack查询API接口实现对虚机的查询;调用OpenStack修改API接口实现对当前虚拟的信息修改;调用OpenStack删除API接口实现对指定虚机的删除。
调用OpenStack创建API接口实现对虚机的创建,并将Resource id写入到state文件中,OpenStack创建API接口后调用查询和修改来完成更多功能。
调用OpenStack查询API接口实现对虚机的查询,并将虚拟的信息写入state文件中,若查询不到虚拟信息,就将Resource id标记为“”,以便告知Terraform虚机已经不存在了。
调用OpenStack修改API接口实现对当前虚拟的信息修改,在修改之前要先打开Partial,d.Partial(true),每次修改完成之后进行更新,如d.SetPartial(“image”),以保证后边的每一步更改都能成功的写入到state文件中。在修改之后要调用查询方法来查询最新的虚机信息,以便保存到state文件中。
调用OpenStack删除API接口实现对指定虚机的删除,在删除后要调用查询方法以验证虚机是否删除成功。
配置tf文件包括配置main.tf文件、variables.tf文件、outputs.tf文件,main.tf文件即虚机参数的定义模板,variables.tf文件即模板所依赖的虚机参数定义,outputs.tf文件即虚机信息的输出值。
S3、编写web应用和后台应用。
编写Web应用和后台应用中,Web应用展示虚机的列表和详情信息以及对虚机的增删改操作,后台应用编写基本逻辑处理和Provider执行器,后台应用中基本逻辑处理,接收Web应用的请求,根据不同的请求调用Provider执行器,Provider执行器中利用java的命令行执行terraform命令。
Terraform执行命令:terraform init初始化模板信息variables.tf等几个tf文件,terraform plan查看Terraform执行计划,terraform apply执行模板信息,terraformoutput输出terraform执行结果。
本发明的基于Terraform管理OpenStack虚机的装置,包括OpenStack部署模块,用于负责检查OpenStack部署环境,部署OpenStack。
OpenStack部署模块负责检查OpenStack部署环境,具体为检查是否禁用selinux,检查主机网络参数,公钥是否导入,相关软件包是否已安装,按照OpenStack官方文档安装部署。
Terraform provider插件编写模块,用于编写Terraform provider插件。
Terraform provider插件编写模块,编写Terraform provider插件具体包括以下过程:1)安装go语言环境;2)Resource开发;3)配置tf文件;4)编译成go二进制文件。
其中,Resource开发包括调用OpenStack创建API接口、调用OpenStack查询API接口、调用OpenStack修改API接口和调用OpenStack删除API接口,调用OpenStack创建API接口,实现对虚机的创建;调用OpenStack查询API接口实现对虚机的查询;调用OpenStack修改API接口实现对当前虚拟的信息修改;调用OpenStack删除API接口实现对指定虚机的删除。
web应用和后台应用编写模块,用于编写web应用和后台应用。
web应用和后台应用编写模块在编写Web应用和后台应用中,Web应用展示虚机的列表和详情信息以及对虚机的增删改操作,后台应用编写基本逻辑处理和Provider执行器,后台应用中基本逻辑处理,接收Web应用的请求,根据不同的请求调用Provider执行器,Provider执行器中利用java的命令行执行terraform命令。
以上所述的实施例,只是本发明较优选的具体实施方式,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。
Claims (10)
1.一种基于Terraform管理OpenStack虚机的方法,其特征在于:该方法中页面创建虚机,后台应用,利用Terraform provider插件,调用OpenStackAPI,完成虚机的创建。
2.根据权利要求1所述的基于Terraform管理OpenStack虚机的方法,其特征在于:该方法具体包括以下步骤:
S1、检查OpenStack部署环境,部署OpenStack;
S2、编写Terraformprovider插件;
S3、编写web应用和后台应用。
3.根据权利要求2所述的基于Terraform管理OpenStack虚机的方法,其特征在于:步骤S1中,检查OpenStack部署环境,具体为检查是否禁用selinux,检查主机网络参数,公钥是否导入,相关软件包是否已安装,按照OpenStack官方文档安装部署。
4.根据权利要求3所述的基于Terraform管理OpenStack虚机的方法,其特征在于:步骤S2中编写Terraformprovider插件具体包括以下过程:1)安装go语言环境;2)Resource开发;3)配置tf文件;4)编译成go二进制文件。
5.根据权利要求4所述的基于Terraform管理OpenStack虚机的方法,其特征在于:所述Resource开发包括调用OpenStack创建API接口、调用OpenStack查询API接口、调用OpenStack修改API接口和调用OpenStack删除API接口,调用OpenStack创建API接口,实现对虚机的创建;调用OpenStack查询API接口实现对虚机的查询;调用OpenStack修改API接口实现对当前虚拟的信息修改;调用OpenStack删除API接口实现对指定虚机的删除。
6.根据权利要求5所述的基于Terraform管理OpenStack虚机的方法,其特征在于:配置tf文件包括配置main.tf文件、variables.tf文件、outputs.tf文件,main.tf文件即虚机参数的定义模板,variables.tf文件即模板所依赖的虚机参数定义,outputs.tf文件即虚机信息的输出值。
7.根据权利要求6所述的基于Terraform管理OpenStack虚机的方法,其特征在于:编写Web应用和后台应用中,Web应用展示虚机的列表和详情信息以及对虚机的增删改操作,后台应用编写基本逻辑处理和Provider执行器,后台应用中基本逻辑处理,接收Web应用的请求,根据不同的请求调用Provider执行器,Provider执行器中利用java的命令行执行terraform命令。
8.一种基于Terraform管理OpenStack虚机的装置,其特征在于:包括OpenStack部署模块,用于负责检查OpenStack部署环境,部署OpenStack;
Terraformprovider插件编写模块,用于编写Terraformprovider插件;
web应用和后台应用编写模块,用于编写web应用和后台应用。
9.根据权利要求8所述的基于Terraform管理OpenStack虚机的装置,其特征在于:OpenStack部署模块负责检查OpenStack部署环境,具体为检查是否禁用selinux,检查主机网络参数,公钥是否导入,相关软件包是否已安装,按照OpenStack官方文档安装部署。
10.根据权利要求9所述的基于Terraform管理OpenStack虚机的装置,其特征在于:Terraformprovider插件编写模块,编写Terraformprovider插件具体包括以下过程:1)安装go语言环境;2)Resource开发;3)配置tf文件;4)编译成go二进制文件;web应用和后台应用编写模块在编写Web应用和后台应用中,Web应用展示虚机的列表和详情信息以及对虚机的增删改操作,后台应用编写基本逻辑处理和Provider执行器,后台应用中基本逻辑处理,接收Web应用的请求,根据不同的请求调用Provider执行器,Provider执行器中利用java的命令行执行terraform命令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910978841.2A CN110704168A (zh) | 2019-10-15 | 2019-10-15 | 一种基于Terraform管理OpenStack虚机的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910978841.2A CN110704168A (zh) | 2019-10-15 | 2019-10-15 | 一种基于Terraform管理OpenStack虚机的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110704168A true CN110704168A (zh) | 2020-01-17 |
Family
ID=69200213
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910978841.2A Pending CN110704168A (zh) | 2019-10-15 | 2019-10-15 | 一种基于Terraform管理OpenStack虚机的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110704168A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113472745A (zh) * | 2021-05-31 | 2021-10-01 | 山东英信计算机技术有限公司 | 一种基于selinux的openstack公有云多租户隔离方法、***及终端 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190122156A1 (en) * | 2017-10-20 | 2019-04-25 | International Business Machines Corporation | Orchestration Engine Blueprint Milestones |
CN109947537A (zh) * | 2019-03-28 | 2019-06-28 | 山东浪潮云信息技术有限公司 | 创建云容器服务的***及方法 |
CN110096258A (zh) * | 2019-04-30 | 2019-08-06 | 山东浪潮云信息技术有限公司 | 一种基于Terraform的OpenStack基础设施架构管理的方法 |
-
2019
- 2019-10-15 CN CN201910978841.2A patent/CN110704168A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190122156A1 (en) * | 2017-10-20 | 2019-04-25 | International Business Machines Corporation | Orchestration Engine Blueprint Milestones |
CN109947537A (zh) * | 2019-03-28 | 2019-06-28 | 山东浪潮云信息技术有限公司 | 创建云容器服务的***及方法 |
CN110096258A (zh) * | 2019-04-30 | 2019-08-06 | 山东浪潮云信息技术有限公司 | 一种基于Terraform的OpenStack基础设施架构管理的方法 |
Non-Patent Citations (3)
Title |
---|
KARIM ELATOV: "Deploying an OpenStack Instance with Terraform", 《HTTPS://ELATOV.GITHUB.IO/2018/09/DEPLOYING-AN-OPENSTACK-INSTANCE-WITH-TERRAFORM/》 * |
WEIXIN_34393428: "Terraform Provider 开发指南", 《HTTPS://BLOG.CSDN.NET/WEIXIN_34393428/ARTICLE/DETAILS/89656300》 * |
马江的博客: "opstack概述 部署安装环境 部署Opstack Opstack操作基础", 《HTTPS://BLOG.CSDN.NET/MAJIANGNB/ARTICLE/DETAILS/81735920》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113472745A (zh) * | 2021-05-31 | 2021-10-01 | 山东英信计算机技术有限公司 | 一种基于selinux的openstack公有云多租户隔离方法、***及终端 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111147555B (zh) | 一种异构资源混合编排的方法 | |
US11099823B2 (en) | Systems and methods for transformation of reporting schema | |
US8739150B2 (en) | Systems and methods for dynamically replacing code objects via conditional pattern templates | |
US11429365B2 (en) | Systems and methods for automated retrofitting of customized code objects | |
US8898627B2 (en) | Systems and methods for applying rules to transform objects of an application | |
US8572566B2 (en) | Systems and methods for analyzing changes in application code from a previous instance of the application code | |
US8706771B2 (en) | Systems and methods for analyzing and transforming an application from a source installation to a target installation | |
US20110282995A1 (en) | Systems and methods for dynamically deploying an application transformation tool over a network | |
CN111241454A (zh) | 一种生成网页代码的方法、***和装置 | |
CN103593456A (zh) | 表单自定义设计方法及装置 | |
WO2024060725A1 (zh) | 一种飞机工装变更方法、装置、设备及存储介质 | |
CN115756451A (zh) | 一种多项目代码文件重用的方法、装置、设备、存储介质 | |
CN110704168A (zh) | 一种基于Terraform管理OpenStack虚机的方法及装置 | |
CN109614682B (zh) | 一种基于Expedition PCB的FPGA管脚交换的方法、装置及存储介质 | |
CN110795431A (zh) | 环境监测数据处理方法、装置、设备及存储介质 | |
CN113609101A (zh) | 实时数据任务的发布方法、装置、电子设备及存储介质 | |
CN110377298B (zh) | 一种分布式集群升级方法及分布式集群 | |
CN110908694A (zh) | 一种电子招投标客户端应用的热更新***及方法 | |
CN102314495A (zh) | 一种数据库对象的维护方法 | |
WO2011041246A1 (en) | Systems and methods for analyzing and transforming an application from a source installation to a target installation | |
CN114064218A (zh) | 用于机器学习组件中的镜像生成方法、***、介质及应用 | |
CN110532000B (zh) | 一种用于运营发布的kbroker分布式操作***和运营发布*** | |
CN112416305A (zh) | 一种基于VisualStudio的快速开发方法 | |
CN107844639B (zh) | 一种项目标准结构自动生成方法及*** | |
CN102566993B (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200117 |