我正在尝试使用 HEAT 模板自定义在 openstack mikata 中创建的新实例。在 user_data 中使用带有脚本的 OS::Nova::Server 可以正常工作。
接下来的想法是通过 OS::Heat::SoftwareConfig 执行其他步骤。配置是:
type: OS::Nova::Server
....
user_data_format: SOFTWARE_CONFIG
user_data:
str_replace:
template:
get_file: vm_init1.sh
config1:
type: OS::Heat::SoftwareConfig
depends_on: vm
properties:
group: script
config: |
#!/bin/bash
echo "Running $0 OS::Heat::SoftwareConfig look in /var/tmp/test_script.log" | tee /var/tmp/test_script.log
deploy:
type: OS::Heat::SoftwareDeployment
properties:
config:
get_resource: config1
server:
get_resource: vm
该实例设置得很好(上面的脚本 vm_init1.sh 运行良好)并且可以登录,但是上面的“config1”示例永远不会执行。
分析 - 基础映像是 Ubuntu 16.04,使用 disk-image-create 创建并包括“vm ubuntu os-collect-config os-refresh-config os-apply-config heat-config heat-config-script” - 来自“openstack stack资源列表 $vm" 看到部署永远不会失败,OS::Heat::SoftwareDeployment status=CREATE_IN_PROGRESS - "openstack stack resource show $vm config1" 显示 resource_status=CREATE_COMPLETE - 在 vm 中,/var/log/cloud-init -output.log 显示脚本 vm_init1.sh 的输出,但没有“config1”脚本的痕迹。日志 os-apply-config.log 是空的,这正常吗?
如何对 OS::Heat::SoftwareDeployment 配置进行故障排除?