OpenStack-Heat中的AWS::WaitCondition的使用

在heat中。一个instance的创建成功信号是在这个instance状态成为active之后发出的,这时候user-data可能还没有运行。可是heat已经觉得这个resource创建成功了,開始调度下一个resource的创建。

假设我们要建立一个webserver,这个webserver须要在databaseServer运行完user-data之后才開始创建,就须要使用AWS的waitcondition通讯机制。

  • 整个流程例如以下:

Create WaitHandler ->

WaitHandler Done ->

Create "Database" (Dependon WaitHandler) ->

Database Done ->

Create "WaitCondition" (Dependon Database) ->

Wait for Database signal ->

Database send signal to WaitHandler ->

WaitCondition Done ->

Create WebServer (Dependon WaitCondition)->

WebServer Done

  • Template样例

WaitHandle: {Type: ‘AWS::CloudFormation::WaitConditionHandle‘}

WaitCondition:

Type: AWS::CloudFormation::WaitCondition

DependsOn: WikiDatabase

Properties:

Handle: {Ref: WaitHandle}

Count: ‘1‘

Timeout: ‘600‘

Database:

Type: AWS::EC2::Instance

Properties:

UserData:

Fn::Base64:

Fn::Join:

- /opt/aws/bin/cfn-signal -e 0 -r "Wiki server setup complete" ‘

- {Ref: WaitHandle}

- ‘‘‘

WebServer:

Type: AWS::EC2::Instance

DependsOn: WaitCondition

时间: 2024-10-05 06:25:05

OpenStack-Heat中的AWS::WaitCondition的使用的相关文章

Heat中的AWS::WaitCondition的使用

在heat中,一个instance的创建成功信号是在这个instance状态成为active之后发出的,这时候user-data可能还没有执行.但是heat已经认为这个resource创建成功了,开始调度下一个resource的创建. 如果我们要建立一个webserver,这个webserver需要在databaseServer执行完user-data之后才开始创建,就需要使用AWS的waitcondition通讯机制. 整个流程如下: Create WaitHandler -> WaitHan

【译】OpenStack Heat基础介绍

原文:http://blog.scottlowe.org/2014/05/01/an-introduction-to-openstack-heat/ 本文将简要地介绍OpenStack Heat. Heat项目提供协作服务,允许我们可以自动地创建多个计算实例,逻辑网络,以及对其他的云服务的操作.请注意,这只是一个简要介绍—我不是Heat的专家,我只是想要分享一些基本信息以便读者可以更快的使用Heat. 为了在以下的具体的例子中不至于产生困扰,我们先从术语开始. Stack(栈): 在Heat领域

Nova和Heat中的servergroup

现在nova可以通过命令创建一个server group,在server group中的vm可以指定一些policy. 这些policy包括affinity和anti-affinity.affinity表示尽量把vm都安排到一个host上面,anti-ffinity表示尽量把vm安排到不同的host上面. 创建server-group的命令如下: nova server-group-create group_name anti-afffinity 然后创建vm的时候通过hint指定group名字

一张图理解OpenStack Heat的内部调用逻辑

OpenStack Heat是个很有前景的项目,主要负责在数据中心中利用模板来完成资源的自动化管理. 即,用户定义可读性好(json or yaml)的资源模板,heat负责将这些资源在openstack中进行部署. 其内部主要分heatclient.heatapi.heatengine三层,调用逻辑如下图所示. heat-client,接受输入命令.参数和模板(URL.文件路径或数据),处理信息后转为REST API请求发送到heat-api服务. heat-api服务接受请求,读入模板信息,

在“云基础设施即服务的魔力象限”报告中,AWS 连续三年被评为领导者

在"2014 云基础设施即服务的魔力象限"中,Gartner 将 Amazon Web Services 定位在"领导者象限"中,并评价 AWS 拥有最完整.最深刻的洞察力,以及最强大的执行能力. 凭借在全球范围内提供的一系列成熟.灵活.低成本的 IT 资源,AWS 为各行各业的客户提供更高的企业灵敏度,并显著节省成本.从 Bristol-Myers Squibb 到 Unilever,Lionsgate 到 Hess,众多客户都在使用 AWS 云广泛而细致的服务来

openstack resize 中遇到的问题

在openstack环境中更改实例的配置大小,遇到的问题这里做个记录,以便以后遇到同样的问题时查看. 确保各个主机之间能使用nova用户无密码访问,使用key 按照官方手册执行各步骤: source keystone-admin 查看需要resize实例的情况:nova show instance-name 查看云主机类型:nova flavor-list 开始resize: nova resize instance-name/instance-id flavor-name/flavor-id

OpenStack Heat template中类型定义的一个坑

最新的Heat template目前支持string | number | json | comma_delimited_list | boolean等类型. 采用默认的hot格式,yaml文件格式. 定义一个string类型的属性,内容为true或false的时候,会报错. 查看heat engine的log会发现这个属性值默认被转为了boolean类型. 这是为何呢? 查看heat的代码,heat是调用的yaml库来直接load文件的,而对于yaml语言来说,如下的字符串都会被解析为bool

Openstack liberty 中Cinder-api启动过程源码分析2

在前一篇博文中,我分析了cinder-api启动过程中WSGI应用的加载及路由的建立过程,本文将分析WSGI服务器的启动及其接收客户端请求并完成方法映射的过程,请看下文的分析内容: 创建WSGI服务器 在初始化WSGIService对象的过程中,会创建WSGI服务器,如下: #`cinder.service:WSGIService.__init__` def __init__(self, name, loader=None): """ name = `osapi_volume

在NodeJS中配置aws ec2

获取access key和secret access key 自己账户下有security credentials的选项 然后点击Access Keys 根据提示create new access key 安装SDK  npm install aws-sdk --save 在app.js中,声明引用aws-sdk  var AWS = require('aws-sdk'); 配置EC2的服务           在项目根目录下新建文件config.json,输入以下内容保存  { "access