我正在尝试从包装器模板创建GCE图像。
以下是我为此目的使用的部分。
"builders": [
...
{
"type": "googlecompute",
"account_file": "foo",
"project_id": "bar",
"source_image": "centos-6-v20160711",
"zone": "us-central1-a",
"instance_name": "packer-building-image-centos6-baz",
"machine_type": "n1-standard-1",
"image_name": "centos6-some-box-name",
"ssh_username": "my_username",
"metadata": {
"startup-script-log-dest": "/opt/script.log",
"startup-script": "/opt/startup.sh",
"some_other_custom_metadata_key": "some_value"
},
"ssh_pty": true
}
],
...
我还创建了所需的文件。这是那部分
"provisioners": [
...
{
"type": "file",
"source": "{{user `files_path`}}/startup.sh",
"destination": "/opt/startup.sh"
},
...
{
"type": "shell",
"execute_command": "sudo sh '{{.Path}}'",
"inline": [
...
"chmod ugo+x /opt/startup.sh"
]
}
...
没有“元数据”字段,一切都适合我。我可以使用提供的参数创建图像/实例。但是当我尝试从图像创建实例时,我找不到提供的元数据,而且我无法分别运行启动脚本,设置日志文件和其他自定义元数据。 以下是我使用https://www.packer.io/docs/builders/googlecompute.html#metadata的来源。
任何建议都会有所帮助。
提前致谢
答案 0 :(得分:0)
元数据标记startup-script
应包含actuall脚本而不是路径。配置程序在执行启动脚本(至少启动)后运行。
而是在Packer中使用startup_script_file
并提供启动脚本的路径。