容器操作系统元数据`用户数据`元数据

问题描述 投票:0回答:2

有没有办法将

user-data
标志作为远程脚本传递?类似于
startup-script-url

我已使用

cloud-config
配置了 yaml 文件,并使用
--metadata-from-file user-data=config-basic.yaml
标志创建具有 CoS 的新虚拟机。

我想以编程方式创建虚拟机,本地文件可能无法访问,也无法传递整个脚本内容,因为

user-data
元数据属性是可行的。

选项1)将

cloud-config
脚本编写为shell脚本? 选项 2) 查找调用
cloud-config
的逻辑并用元数据填充它并在其中插入内容。 选项3)更好的选择???

https://cloud.google.com/compute/docs/instances/startup-scripts/linux

gcloud compute instances create cos-vertex-gpu \
 --image cos-101-17162-40-34 \
--image-project cos-cloud \
--boot-disk-size 100 \
--machine-type n1-standard-4 \
--zone us-west1-a \
--metadata="google-logging-enabled=true,google-monitoring-enabled=true" \
--metadata-from-file user-data=config-basic.yaml \
--maintenance-policy=TERMINATE \
--accelerator=type=nvidia-tesla-t4,count=1
google-cloud-platform google-container-os
2个回答
2
投票

我无法找到以编程方式传递遥控器的方法:

cloud-config

我最终将

cloud-config
重写为 shell 脚本,并使用
startup-script-url

传递它

0
投票

我找到了一种为 GCP

bootcmd
操作系统设置
COS
的方法。

我找到了一种向现有虚拟机添加元数据的方法;它只需要在主机上创建一个文件,例如cloud-shell。

然后,配置将神奇地附加到虚拟机。

$ echo 'bootcmd: ...' > cloud-config.yml
$ gcloud compute instances add-metadata instance_name --metadata-from-file user-data=cloud-config.yml --zone zone-c
© www.soinside.com 2019 - 2024. All rights reserved.