gpt4 book ai didi

azure - 从 azure Linux VM 检索自定义数据

转载 作者:行者123 更新时间:2023-12-02 23:44:58 25 4
gpt4 key购买 nike

我有一个关于启动后从 Azure Linux VM 访问自定义数据的问题。我目前正在使用 Azure GO SDK 以编程方式创建基于 CentOS Linux 7.5 的 VM。对于每个虚拟机,我附加了一组唯一的环境变量,以便启动服务脚本可以访问该环境。自定义数据只是一组环境变量,没有实际的脚本。

在操作系统配置文件中,我填写了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))),
},

我不清楚如何从虚拟机内部访问自定义数据。

在 AWS 案例中,我们使用实例用户数据并从 EC2 实例访问数据,如下所示:

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html

http://169.254.169.254/latest/user-data

最佳答案

Azure 实例元数据服务现在允许 VM 访问其自定义数据。二进制数据必须小于 64KB,并以 Base64 编码形式提供给 VM。有关如何使用自定义数据创建虚拟机的详细信息,请参阅使用自定义数据部署虚拟机。

检索虚拟机中的自定义数据实例元数据服务以 Base64 编码形式向 VM 提供自定义数据。以下示例对 Base64 编码的字符串进行解码。

curl -H "Metadata:true" "http://169.254.169.254/metadata/instance/compute/customData?api-version=2019-02-01&&format=text" | base64 --decode

引用文档:https://learn.microsoft.com/en-us/azure/virtual-machines/windows/instance-metadata-service#custom-data

关于azure - 从 azure Linux VM 检索自定义数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52920746/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com