制作支持OS::Heat::SoftwareConfig以及ansible组件的自定义centos7镜像

本文主要是介绍制作支持OS::Heat::SoftwareConfig以及ansible组件的自定义centos7镜像,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

更多资料请参考官方档:http://docs.openstack.org/developer/heat/template_guide/software_deployment.html#custom-image-script

Heat 和配置管理工具集成

随着 DevOps 的流行,大量配置管理的工具应运而生,比如 Chef、Puppet 和 Ansible,利用这些工具,用户可以轻松通过简单的配置来部署复杂的中间件或者软件应用。Heat 在基于 OS::Heat::SoftwareConfig 和 OS::Heat::SoftwareDeployment 的协同使用上,提供了对这些配置管理工具的支持。首先,对于 OS::Heat::SoftwareConfig 而言,需要其 group 定义为对应的类型。比如有 ansible、puppet、chef 和 salt 等。

1. 先将官方提供的需要的组件和包下载到本地

yum install -y git qemu-img
git clone https://git.openstack.org/openstack/diskimage-builder.git
git clone https://git.openstack.org/openstack/tripleo-image-elements.git
git clone https://git.openstack.org/openstack/heat-templates.git


我们先来看看这些文件下面有什么东西,都分别起什么作用。

先进到diskimage-builder/elements下面能看到我们常见的熟悉的一些系统文件如centos、fedora、ubuntu、debian等。我们在后面将选择centos7


进入到heat-templates/hot/software-config/elements下面能看到heat所支持的DevOps工具的组件,例如heat-config-ansible、heat-config-script等。后面制作镜像时我们会选择工具ansible,当然还有一些其他的基本部署组件如heat-config-script和heat-config。


进入到heat-templates/hot/software-config/elements下面能看到我们所需要的一些agents,例如os-apply-config,os-cloud-config,os-collect-config等。在虚拟机中的Agents会定时与Heat通信,发送脚本执行结果,方便Heat进行流程控制。要使用heat的安装配置软件和应用的框架,需要先创建出一个包含了os-*-config agents的镜像,我们这里选择使用diskimage-builder。


2. 制作镜像

然后回到这三个文件的父目录下,即/root/createimg下,先将上面三个文件下的elements放到环境变量ELEMENTS_PATH下

export ELEMENTS_PATH=tripleo-image-elements/elements:heat-templates/hot/software-config/elements:diskimage-builder/elements

然后使用diskimg-create命令:

diskimage-builder/bin/disk-image-create vm centos7 os-collect-config os-refresh-config os-apply-config heat-config heat-config-script heat-config-ansible -o centos7-software-config.qcow2


大概需要等待一段时间,稍微有点漫长。镜像创建好后如下:


然后使用glance命令上传该镜像:

glance image-create --name centos7-software-config --disk-format qcow2 --container-format bare --file centos7-software-config.qcow2 --visibility public


这就是我们制作好的镜像啦:


在下一章节我们将演示如何使用这个镜像,利用openstack heat组件来创建虚拟机,并利用OS::Heat::SoftwareConfig以及ansible为虚拟机做一些简单的配置。下一章节:使用Heat的OS::Heat::SoftwareConfig以及ansible组件对虚拟机进行安装配置






这篇关于制作支持OS::Heat::SoftwareConfig以及ansible组件的自定义centos7镜像的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/983272

相关文章

Spring Security自定义身份认证的实现方法

《SpringSecurity自定义身份认证的实现方法》:本文主要介绍SpringSecurity自定义身份认证的实现方法,下面对SpringSecurity的这三种自定义身份认证进行详细讲解,... 目录1.内存身份认证(1)创建配置类(2)验证内存身份认证2.JDBC身份认证(1)数据准备 (2)配置依

CentOS7更改默认SSH端口与配置指南

《CentOS7更改默认SSH端口与配置指南》SSH是Linux服务器远程管理的核心工具,其默认监听端口为22,由于端口22众所周知,这也使得服务器容易受到自动化扫描和暴力破解攻击,本文将系统性地介绍... 目录引言为什么要更改 SSH 默认端口?步骤详解:如何更改 Centos 7 的 SSH 默认端口1

Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案

《Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案》:本文主要介绍Vue3组件中getCurrentInstance()获取App实例,但是返回nu... 目录vue3组件中getCurrentInstajavascriptnce()获取App实例,但是返回n

使用Node.js制作图片上传服务的详细教程

《使用Node.js制作图片上传服务的详细教程》在现代Web应用开发中,图片上传是一项常见且重要的功能,借助Node.js强大的生态系统,我们可以轻松搭建高效的图片上传服务,本文将深入探讨如何使用No... 目录准备工作搭建 Express 服务器配置 multer 进行图片上传处理图片上传请求完整代码示例

SpringQuartz定时任务核心组件JobDetail与Trigger配置

《SpringQuartz定时任务核心组件JobDetail与Trigger配置》Spring框架与Quartz调度器的集成提供了强大而灵活的定时任务解决方案,本文主要介绍了SpringQuartz定... 目录引言一、Spring Quartz基础架构1.1 核心组件概述1.2 Spring集成优势二、J

Android Studio 配置国内镜像源的实现步骤

《AndroidStudio配置国内镜像源的实现步骤》本文主要介绍了AndroidStudio配置国内镜像源的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、修改 hosts,解决 SDK 下载失败的问题二、修改 gradle 地址,解决 gradle

Docker镜像修改hosts及dockerfile修改hosts文件的实现方式

《Docker镜像修改hosts及dockerfile修改hosts文件的实现方式》:本文主要介绍Docker镜像修改hosts及dockerfile修改hosts文件的实现方式,具有很好的参考价... 目录docker镜像修改hosts及dockerfile修改hosts文件准备 dockerfile 文

使用Sentinel自定义返回和实现区分来源方式

《使用Sentinel自定义返回和实现区分来源方式》:本文主要介绍使用Sentinel自定义返回和实现区分来源方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Sentinel自定义返回和实现区分来源1. 自定义错误返回2. 实现区分来源总结Sentinel自定

SpringKafka消息发布之KafkaTemplate与事务支持功能

《SpringKafka消息发布之KafkaTemplate与事务支持功能》通过本文介绍的基本用法、序列化选项、事务支持、错误处理和性能优化技术,开发者可以构建高效可靠的Kafka消息发布系统,事务支... 目录引言一、KafkaTemplate基础二、消息序列化三、事务支持机制四、错误处理与重试五、性能优

Docker镜像pull失败两种解决办法小结

《Docker镜像pull失败两种解决办法小结》有时候我们在拉取Docker镜像的过程中会遇到一些问题,:本文主要介绍Docker镜像pull失败两种解决办法的相关资料,文中通过代码介绍的非常详细... 目录docker 镜像 pull 失败解决办法1DrQwWCocker 镜像 pull 失败解决方法2总