创建你的第一个堆栈

确认你可以访问 Heat 端点

在运行任何 Heat 命令之前,需要先配置你的云凭证

$ source openrc

你可以使用以下命令确认 Heat 是否可用

$ openstack stack list

这应该返回一个空行

准备创建堆栈

下载并注册镜像

$ wget https://download.fedoraproject.org/pub/fedora/linux/releases/37/Cloud/x86_64/images/Fedora-Cloud-Base-37-1.7.x86_64.qcow2
$ openstack image create \
                      --disk-format=qcow2 \
                      --container-format=bare \
                      --file=Fedora-Cloud-Base-37-1.7.x86_64.qcow2 \
                      my-fedora-image

你的云将提供不同的风味和镜像来启动实例,你可以通过运行以下命令来发现可用的内容

$ openstack flavor list
$ openstack image list

为了允许你通过 SSH 访问 Heat 启动的实例,将生成一个密钥对

$ openstack keypair create heat_key > heat_key.priv
$ chmod 600 heat_key.priv

启动堆栈

现在让我们启动一个堆栈,使用 heat-templates 仓库中的示例模板

$ openstack stack create -t https://opendev.org/openstack/heat-templates/src/branch/2025.2/hot/F20/WordPress_Native.yaml --parameter key_name=heat_key --parameter image_id=my-fedora-image --parameter instance_type=m1.small teststack

它将响应

+--------------------------------------+-----------+--------------------+----------------------+
| ID                                   | Name      | Status             | Created              |
+--------------------------------------+-----------+--------------------+----------------------+
| 718a712a-2571-4eac-aa03-426de00ecb43 | teststack | CREATE_IN_PROGRESS | 2017-04-11T03:06:24Z |
+--------------------------------------+-----------+--------------------+----------------------+

注意

上述命令中呈现的 Heat 模板链接应引用 RAW 模板。如果它是一个包含模板的“html”页面,Heat 将返回一个错误。

注意

堆栈启动后,你将无法重命名它。

列出堆栈

列出你的租户中的堆栈

$ openstack stack list

列出堆栈事件

列出与特定堆栈相关的事件

$ openstack stack event list teststack

描述 wordpress 堆栈

显示堆栈的详细状态

$ openstack stack show teststack

注意:几秒钟后,stack_status 应该从 IN_PROGRESS 变为 CREATE_COMPLETE

验证实例创建

由于软件需要一些时间从仓库安装,Wordpress 实例进入运行状态可能需要几分钟。

将 Web 浏览器指向 WebsiteURL 输出中给出的位置,如 openstack stack output show 所示

$ WebsiteURL=$(openstack stack output show teststack WebsiteURL -c output_value -f value)
$ curl $WebsiteURL

完成时删除实例

注意:list 操作将显示没有正在运行的堆栈。

$ openstack stack delete teststack
$ openstack stack list

你可以通过参考 Heat 命令参考 来探索其他 Heat 命令,用于 OpenStack 命令行界面;然后阅读 模板指南 并开始编写你自己的模板。