openstack组件容器化的构建方法与流程

文档序号:12664309阅读:938来源:国知局
openstack组件容器化的构建方法与流程

本发明涉及一种构建方法,特别是涉及一种openstack组件容器化的构建方法。



背景技术:

由于云计算技术的兴起,带动了云计算平台openstack(开源的云计算管理平台项目)的飞速发展,使之成为了目前非常流行的开源云管理平台。openstack平台每半年更新一个版本,几百家公司,几万人加入其中为其贡献代码,使之功能越来越强大,支持的组件越来越多。随之而来的问题就是openstack配置复杂、组件与组件之间紧密联系、组件与操作系统紧耦合,版本与版本之间变动大,没法平滑过渡升级。



技术实现要素:

本发明所要解决的技术问题是提供一种openstack组件容器化的构建方法,其能够降低操作系统升级对openstack组件工作影响,操作简单,实用方便。

本发明是通过下述技术方案来解决上述技术问题的:一种openstack组件容器化的构建方法,其特征在于,其包括以下步骤:

步骤一,openstack组件docker镜像生成;

步骤二,部署节点运行环境配置;

步骤三,部署节点本地registry服务配置;

步骤四,导入openstack组件docker镜像,该步骤通过docker client端命令行工具和导入脚本完成;

步骤五,推送openstack组件docker镜像到本地registry保存,该步骤通过docker client端命令行工具和自动化脚本完成;

步骤六,将openstack组件部署到服务器;

步骤七,升级已经部署的openstack组件。

优选地,所述步骤一包括以下步骤:

步骤十,编写Jinja2模板文件;

步骤十一,ansible工具通过Jinja2模板文件和生成docker镜像所需配置文件,生成Dockerfile文件;

步骤十二,ansible工具通过docker.py模块调用docker执行Dockerfile文件指定的一系列命令和参数进行openstack组件镜像构建;

步骤十三,openstack组件镜像构建完成,根据配置文件将镜像推送到指定的Registry服务器保存或者将生成的openstack组件镜像保存为归档压缩文件。

优选地,所述步骤二包括以下步骤:

步骤二十,部署节点和被部署节点之间通信是通过ssh协议,首先配置主机之间ssh无密码登录;

步骤二十一,配置主机名和ip地址之间映射关系;

步骤二十二,配置ntp server服务;

步骤二十三,安装部署模块和相关依赖包。

优选地,所述步骤三包括以下步骤:

步骤三十,registry软件是以docker镜像方式发布,配置registry首先配置docker deamon;

步骤三十一,docker deamon运行正常,导入registry docker镜像;

步骤三十二,运行registry容器实例。

优选地,所述步骤六包括以下步骤:

步骤六十,编写ansible playbook容器部署代码;

步骤六十一,用户在部署节点上执行部署命令,该命令调用自动化运维工具ansible playbook部署代码,部署代码通过docker.py调用docker运行openstack组件容器实例。

优选地,所述步骤七包括以下步骤:

步骤七十,用户准备升级使用的openstack组件docker镜像,更新到原来部署节点;

步骤七十一,修改全局配置文件openstack组件docker镜像tag参数为新镜像tag;

步骤七十二,用户在部署节点上执行升级命令,该命令调用自动化运维工具ansible playbook升级代码,升级代码通过docker.py调用docker完成openstack组件镜像比较,如果镜像与原来镜像不同,则删除原来运行的容器实例,使用指定的新镜像创建容器实例,完成组件升级。

本发明的积极进步效果在于:本发明能够解决openstack组件与操作系统之间的紧耦合问题,操作系统升级更新软件包对openstack组件工作影响降到了最低可控范围;解决了openstack组件之间共用库文件,一个组件改变其中文件影响其他组件问题;解决了openstack版本升级问题,由一个版本升级到另一个版本变的更简单;对于openstack问题定位也是很好的改进,问题定位范围缩小到一个容器内;对于openstack组件部署时间改善明显,原来一个个包安装、配置、运行,现在通过自动化运维工具ansible启动一个个docker容器。

附图说明

图1为本发明的openstack组件镜像制作流程图。

图2为本发明的openstack组件部署流程图。

图3为本发明的openstack组件升级流程图。

具体实施方式

下面结合附图给出本发明较佳实施例,以详细说明本发明的技术方案。

如图1至图3所示,本发明openstack组件容器化的构建方法包括以下步骤:

步骤一,openstack组件docker(开源的应用容器引擎)镜像生成;

步骤二,部署节点运行环境配置;

步骤三,部署节点本地registry(registry是docker镜像管理软件)服务配置;

步骤四,导入openstack组件docker镜像,该步骤通过docker client端命令行工具和导入脚本完成;

步骤五,推送openstack组件docker镜像到本地registry保存,该步骤通过docker client端命令行工具和自动化脚本完成;

步骤六,将openstack组件部署到服务器;

步骤七,升级已经部署的openstack组件。

所述步骤一包括以下步骤:

步骤十,编写Jinja2(基于python的模板引擎)模板文件;

步骤十一,ansible(基于python开发的自动化运维工具)工具通过Jinja2模板文件和生成docker镜像所需配置文件,生成Dockerfile(Dockerfile是由一系列命令和参数构成的脚本)文件;

步骤十二,ansible工具通过docker.py模块调用docker执行Dockerfile文件指定的一系列命令和参数进行openstack组件镜像构建;

步骤十三,openstack组件镜像构建完成,根据配置文件将镜像推送到指定的Registry服务器保存或者将生成的openstack组件镜像保存为归档压缩文件。

所述步骤二包括以下步骤:

步骤二十,部署节点和被部署节点之间通信是通过ssh协议,首先配置主机之间ssh无密码登录;

步骤二十一,配置主机名和ip地址之间映射关系;

步骤二十二,配置ntp server服务(平台各组件之间工作正常,要求严格时间同步);

步骤二十三,安装部署模块和相关依赖包。

所述步骤三包括以下步骤:

步骤三十,registry软件是以docker镜像方式发布,配置registry首先配置docker deamon;

步骤三十一,docker deamon运行正常,导入registry docker镜像;

步骤三十二,运行registry容器实例。

所述步骤六包括以下步骤:

步骤六十,编写ansible playbook(ansible使用一种比较易于理解的方法来描述自己的任务配置文件。ansible的任务配置文件被称之为“playbook”)容器部署代码;

步骤六十一,用户在部署节点上执行deploy(部署)命令,该命令调用自动化运维工具ansible playbook部署代码,部署代码通过docker.py调用docker运行openstack组件容器实例。

所述步骤七包括以下步骤:

步骤七十,用户准备升级使用的openstack组件docker镜像,更新到原来部署节点;

步骤七十一,修改全局配置文件openstack组件docker镜像tag参数为新镜像tag;

步骤七十二,用户在部署节点上执行upgrade(升级)命令,该命令调用自动化运维工具ansible playbook升级代码,升级代码通过docker.py调用docker完成openstack组件镜像比较,如果镜像与原来镜像不同,则删除原来运行的容器实例,使用指定的新镜像创建容器实例,完成组件升级。

以上所述的具体实施例,对本发明的解决的技术问题、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1