我有一个有关启动后如何从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
答案 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