从Azure Linux VM检索自定义数据

时间:2018-10-21 23:23:23

标签: azure azure-virtual-machine azure-sdk

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

在OS配置文件中,我按如下所示填充base64编码的字符串:

INDIRECT(A4&"!")A1:Z40

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

在AWS情况下,我们使用实例用户数据并按如下方式从EC2实例访问数据:

https://drive.google.com/open?id=1RsuiznRMbJNpNsrQeXEunvVsWZJ0tL2d

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

3 个答案:

答案 0 :(得分:0)

确定了答案。没有很好的记录。

https://azure.microsoft.com/en-us/blog/custom-data-and-cloud-init-on-windows-azure/

/ var / lib / waagent / CustomData

答案 1 :(得分:0)

Azure Instance Metadata Service提供了有关正在运行的虚拟机实例的信息,这些实例可用于管理和配置虚拟机。其中包括诸如SKU,网络配置和即将发生的维护事件之类的信息。有关可用的信息类型的更多信息,请参见元数据类别。

Azure的实例元数据服务是REST端点,可通过Azure资源管理器创建的IaaS VM访问。该终结点可通过只能从VM内部访问的众所周知的不可路由IP地址(169.254.169.254)获得。

答案 2 :(得分:0)

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

在虚拟机中检索自定义数据 实例元数据服务以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://docs.microsoft.com/en-us/azure/virtual-machines/windows/instance-metadata-service#custom-data