利用environment文件配置heat模板参数
来源:互联网 发布:linux怎么退出全屏 编辑:程序博客网 时间:2024/04/30 10:45
使用heat client命令创建或者更新stack,其中有一个可选选项-e/--environment-file,用于指定环境文件。
目前环境文件主要有两个方面的作用:
- 配置模板需要的参数值
- 资源注册
environment文件内容格式可以参考heat源码包中的environment.rst文件,其中有详细描述。
这篇文章就先来探讨一下怎么利用environment文件来配置参数。
我们知道在heat模板中可以通过parameters字段配置模板的输入参数,例如下面的模板文件mytemplate.yaml:
heat_template_version: 2013-05-23description: create cinder volumeparameters: volsize: type: number description: Size of volume to createresources: myres: type: OS::Cinder::Volume properties: name: volname size: { get_param: volsize }其中volsize就是一个可定制的输入参数,比较常用的方式是在创建stack命令行中通过-P选项输入,例如:
heat stack-create -f mytemplate.yaml -P vol_size=1 mystack
通过environment文件也能达到指定参数值的目的,编写myenv.yaml文件,设置parameters配置段,内容如下:
parameters: volsize: 2
heat stack-create -f mytemplate.yaml -e myenv.yaml mystack效果跟前面通过-P选项指定参数值是一样的。
通过environment文件来配置参数值,个人觉得主要是针对参数较多,或者需要创建的多个stack具有类似参数的场景。
想想如果参数较多,在命令行上一个一个敲还是很费劲的。
除了parameters配置段,还有一个parameter_defaults配置段也可以用来指定参数值,如下:
parameter_defaults: volsize: 2效果跟parameters一样。
那么问题来了,既然最终的效果一样,为什么heat要设计这两种方式呢?
这个问题我也有一些困惑。看了help的提示信息,有一些个人看法。
-e/--environment-file选项的帮助信息如下:
-e <FILE or URL>, --environment-file <FILE or URL> Path to the environment, it can be specified multiple times.可以看到,environment文件可以被指定多次。
那么在创建多个类似stack的时候,就可以把默认的参数配置到一个environment文件的parameter_defaults段。
而如果某些stack需要特殊的参数配置,就可以配置在另外一个environment文件的parameters段中。
这样的好处就是,公共参数不需要在每个stack的环境文件中重复配置。
还是用前面的模板为例,增加一个参数volname:
parameters: volname: type: string description: Name of volume to create volsize type: number description: Size of volume to create
配置一个默认参数环境文件default.yaml如下:
parameter_defaults: volname: MyVolName volsize: 2
heat stack-create -f mytemplate.yaml -e default.yaml defaultstack
这时候如果需要创建另一个stack,而stack的卷名字想改为NewName,就可以另外编写一个定制环境文件custom.yaml:
parameters: volname: NewName然后使用如下命令创建:
heat stack-create -f mytemplate.yaml -e default.yaml -e custom.yaml customstack
如果参数很多的话,就更能够体现出以上方式的好处。
最后,还有一个问题,现在知道参数可以通过parameter_defaults和parameters来指定,也可以通过命令行-p选项指定。
那如果一个参数通过上面三种方式都指定了,最终会用哪个方式指定的值呢?
优先级如下:
-P选项配置 > parameters配置 > parameter_defaults配置
例如,如果myenv.yaml文件内容如下:
parameters: volsize: 1parameter_defaults: volsize: 2
使用如下命令行创建stack:
heat stack-create -f mytemplate.yaml -e myenv.yaml -P volsize=3 mystack最后创建出来的卷大小会是3GB,因为实际使用的是优先级最高的-P选项指定的值。
- 利用environment文件配置heat模板参数
- 利用environment文件实现heat资源注册
- 配置heat AutoScalingMultiAZSample.template 模板
- Heat Environment详解
- Heat模板
- Heat 模板示例
- OpenStack Heat模板详解
- Heat服务安装配置
- 利用模板判断模板参数类型
- Heat
- Heat 模板 搭建集群初探
- Openstack Heat Template 模板定义说明(一)
- hibernate.cfg.xml文件的配置模板和不同数据库的配置参数
- Spring文件配置模板
- 利用SQL Server 2005中的模板参数
- 利用可变模板参数实现log功能
- 如何利用 AVDictionary 配置参数
- 如何利用AVDictionary配置参数
- iOS UIScrollView实现无限滚动,思路与代码
- ActiveAndroid入门简介
- Celery、flower和celery-redis 的安装与使用
- TCP建立连接的三次握手
- oracle 表空间不足解决办法大全
- 利用environment文件配置heat模板参数
- 黑马程序员-----基本语法(2)
- http下载文件,中文文件名在firefox下编码问题
- 5款免费Windows远程连接Linux桌面软件(VNC客户端)
- 黑马程序员—其他类
- hdu1599
- java集合深入学习--并发集合
- Introduction to Java Programming编程题5.14<计算数列>
- 递归和迭代的区别