OpenStack' Heat'的编排引擎可以部署计算资源和配置软件,称为HOT模板。 github上有很多例子: https://github.com/openstack/heat-templates/tree/master/hot
热模板是用YAML编写的,我们可以用这种语法部署模板
heat stack-create my_first_stack -f heat_1a.yaml
您还可以将模板文件直接上传到OpenStack仪表板。 但是,这是我的问题,许多模板还将包括部署后运行的PowerShell脚本的shell脚本 - 我们如何将这些脚本上传到OpenStack以包含在堆栈中?
例如,这是MicroSoft SQL服务器模板的目录列表
C:\heat-templates\hot\Windows\MSSQLServer>ls
MSSQL.ps1 MSSQL.psm1 MSSQL.yaml Tests heat-powershell-utils.psm1
Heat客户端只会将YAML文件作为参数,那么我们如何以及如何处理这些脚本呢?
感谢, 罗布。
答案 0 :(得分:2)
请参阅heat的模板指南: http://docs.openstack.org/developer/heat/template_guide/software_deployment.html
基本上,yaml模板文件中定义的资源可以使用“get_file”指令,该指令从指定的文件名中读取字符串。因此,当您调用热客户端MSSQL.yaml时,您的热客户端将解析它,并且只要它以文件名作为参数看到“get_file”,它就会从该文件中读取。
使用上述链接中的“get_file”示例:
...
the_server:
type: OS::Nova::Server
properties:
# flavor, image etc
user_data:
str_replace:
template: {get_file: the_server_boot.sh}
params:
$FOO: {get_param: foo}
答案 1 :(得分:0)
有时,我们需要根据HEAT模板中提供的参数创建脚本,并在创建Stack后执行它。
对于这种要求,我们可以使用下面提到的模式。一旦VM启动并处于cloud-init阶段,这将创建并执行脚本。
{{1}}