GCP VM 启动和关闭脚本复制到哪里?

Posted

技术标签:

【中文标题】GCP VM 启动和关闭脚本复制到哪里?【英文标题】:Where are GCP VM startup and shutdown scripts copied to? 【发布时间】:2021-12-30 02:14:14 【问题描述】:

我正在通过 Terraform 创建 GCP VM 实例,并通过元数据提供启动和关闭脚本。我可以看出启动脚本有效,但是当terraform apply 要求销毁实例时,关闭脚本没有运行。

我想检查关闭脚本是否实际复制到服务器,如果我需要调试模板,还可以检查启动和关闭脚本的内容。

在 AWS 上,它们被复制到 /var/lib/cloud/instance 但在我的 GCP 虚拟机上的同一位置下,我在那里看不到我的脚本。还有其他我应该搜索的位置吗?

【问题讨论】:

【参考方案1】:

不保证 Compute Engine 关闭脚本会运行。

Compute Engine 仅尽最大努力执行关闭脚本。 在极少数情况下,Compute Engine 无法保证关闭 脚本将完成。

Shutdown Script Limitations

您可以手动执行关闭脚本来验证/调试执行:

google_metadata_script_runner shutdown

启动和关闭脚本存储在元数据中。元数据可能表明启动脚本位于 URL(例如 Cloud Storage)。元数据被复制到本地文件以供执行。文件名没有记录。

提示:通过实例的串口连接,您可以看到 shutdown GCEMetadataScripts 事件启动关闭脚本并在执行时查看结果。

【讨论】:

好的,这有助于验证至少有一个脚本......但是如果我想验证内容,磁盘上的脚本在哪里?还是不是以文本格式在磁盘上,而是复制成二进制文件到服务器上? @RCross 该位置未记录。另外,我认为关闭脚本文件是在事件时间而不是提前创建的。但是,我可能是错的。连接到串口并观看。然后关闭实例。 顺便说一句,上面的命令抛出了一个错误...我不得不运行google_metadata_script_runner shutdown @RCross - 谢谢。我更新了我的答案。我使用的是旧的命令语法。 @RCross 如果您发现提供的答案对您的问题有帮助,请接受答案

以上是关于GCP VM 启动和关闭脚本复制到哪里?的主要内容,如果未能解决你的问题,请参考以下文章

Terraform GCP 启动脚本本地文件而不是内联文件

zabbix的启动和关闭脚本

系统日志监控脚本,程序关闭和启动功能

Svn服务启动关闭脚本

Ops:jar包启动关闭脚本

自动执行 GCP 永久性磁盘初始化