我有一个关于在启动后从 Azure Linux VM 访问自定义数据的问题。我目前正在使用 Azure GO SDK 以编程方式创建基于 CentOS Linux 7.5 的 VM。对于每个 VM,我都附加了一组唯一的环境变量,以便启动服务脚本可以访问环境。自定义数据只是一组环境变量,没有实际的脚本。
在 OS 配置文件中,我填写 base64 编码的字符串,如下所示:
OsProfile: compute.OSProfile{
ComputerName: to.StringPtr(p.InstanceName),
AdminUsername: to.StringPtr(p.UserName),
LinuxConfiguration: compute.LinuxConfiguration{
SSH: compute.SSHConfiguration{
PublicKeys: []compute.SSHPublicKey{
{
Path: to.StringPtr(
fmt.Sprintf("/home/%s/.ssh/authorized_keys",
p.UserName)),
KeyData: to.StringPtr(p.SshPublicKey),
},
},
},
},
CustomData: to.StringPtr(base64.StdEncoding.EncodeToString([]byte(p.UserData))),
},
我不清楚如何从 VM 内部访问自定义数据。
在 AWS 案例中,我们使用实例用户数据并从 EC2 实例访问数据,如下所示:
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html