簡體   English   中英

從Azure Linux VM檢索自定義數據

[英]Retrieve custom data from azure linux VM

我有一個有關啟動后從Azure Linux VM訪問自定義數據的問題。 我目前正在使用Azure GO SDK以編程方式創建基於CentOS Linux 7.5的VM。 對於每個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))), }, 

我不清楚如何從VM內部訪問自定義數據。

在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。 有關如何使用自定義數據創建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/zh-cn/azure/virtual-machines/windows/instance-metadata-service#custom-data

確定找到了答案。 沒有很好的記錄。

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

在/ var / lib中/ waagent /的CustomData

Azure實例元數據服務提供了有關正在運行的虛擬機實例的信息,這些信息可用於管理和配置虛擬機。 其中包括諸如SKU,網絡配置和即將發生的維護事件之類的信息。 有關可用的信息類型的更多信息,請參見元數據類別。

Azure的實例元數據服務是一個REST端點,可通過Azure資源管理器創建的IaaS VM訪問。 終結點可通過只能從VM內部訪問的眾所周知的不可路由IP地址(169.254.169.254)獲得。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM