我正在使用GCP部署管理器来部署VM实例。在部署过程中应执行一些初始化操作。
我已导入一个启动脚本,并在以下示例中添加了T& operator=(const T& other) // copy assignment
{
if (this != &other)
{ // self-assignment check expected
if (other.size != size)
{ // storage cannot be reused
delete[] mArray; // destroy storage in this
size = 0;
mArray = nullptr; // preserve invariants in case next line throws
mArray = new int[other.size]; // create storage in this
size = other.size;
}
std::copy(other.mArray, other.mArray + other.size, mArray);
}
return *this;
}
属性:
https://github.com/GoogleCloudPlatform/deploymentmanager-samples/blob/master/examples/v2/metadata_from_file/jinja/config.yaml
但是我看不到那些动作被执行了。还有其他方法可以将这些脚本包含在部署计划中吗?
答案 0 :(得分:1)
我建议您看一下有关在Deployment Manager中设置启动脚本的文档[1]。它规定将元数据设置为不同的格式,然后尝试一下它应该可以工作。
metadata:
items:
- key: startup-script
value: "STARTUP-SCRIPT-CONTENTS"
如果仍有问题,请在此处共享您的部署的YAML信息,不要提供敏感信息,我们将很乐意为您提供帮助。
答案 1 :(得分:1)
启动脚本文件在启动时执行虚拟机中存在的文件 。如果使用Deployment Manager部署VM,则您的VM是新的。因此,该文件必须已经存在于引导映像中。 您正在使用自定义图片吗?
如果没有,建议您使用启动脚本URL,并指定存储在Google存储器中的启动文件。确保计算引擎具有足够的权限来读取文件。 有关计算引擎启动脚本的更多详细信息,请参见: https://cloud.google.com/compute/docs/startupscript