Inserimento di dati personalizzati in una macchina virtuale di AzureInjecting custom data into an Azure virtual machine

Importante

Azure offre due diversi modelli di distribuzione per creare e usare le risorse: Gestione risorse e la distribuzione classica.Azure has two different deployment models for creating and working with resources: Resource Manager and Classic. Questo articolo illustra l'uso del modello di distribuzione classica.This article covers using the Classic deployment model. Microsoft consiglia di usare il modello di Gestione risorse per le distribuzioni più recenti.Microsoft recommends that most new deployments use the Resource Manager model. Per informazioni sull'uso dell'estensione script personalizzata con il modello di Resource Manager, vedere qui.For information about using the Custom Script Extension with the Resource Manager model, see here.

In questo argomento viene spiegato come:This topic describes how to:

  • Inserire dati in una macchina virtuale (VM) di Azure durante il provisioning.Inject data into an Azure virtual machine (VM) when it is being provisioned.
  • Recuperare i dati sia in Windows che in Linux.Retrieve it for both Windows and Linux.
  • Usare strumenti speciali disponibili in alcuni sistemi per rilevare e gestire automaticamente i dati personalizzati.Use special tools available on some systems to detect and handle custom data automatically.

Nota

In questo articolo viene descritto in che modo i dati personalizzati possono essere inseriti utilizzando una macchina virtuale creata con il servizio di gestione API Azure.This article describes how custom data can be injected by using a VM created with the Azure Service Management API. Per scoprire come utilizzare la Gestione delle risorse API di Azure, vedere il modello di esempio qui.To see how to use the Azure Resource Management API, see the example template.

Inserimento di dati personalizzati nella macchina virtuale di AzureInjecting custom data into your Azure virtual machine

Questa funzionalità è attualmente supportata solo nell' interfaccia della riga di comando di Azure.This feature is currently supported only in the Azure Command-Line Interface. È necessario creare un file custom-data.txt contenente i dati e quindi inserirlo nella VM durante il provisioning.Here we create a custom-data.txt file that contains our data, then inject that in to the VM during provisioning. Anche se è possibile usare una delle numerose opzioni per il comando azure vm create , di seguito è illustrato un approccio molto semplice:Although you may use any of the options for the azure vm create command, the following demonstrates one very basic approach:

    azure vm create <vmname> <vmimage> <username> <password> \  
    --location "West US" --ssh 22 \  
    --custom-data ./custom-data.txt  

Uso di dati personalizzati nella macchina virtualeUsing custom data in the virtual machine

  • Se la VM di Azure è una macchina virtuale basata su Windows, il file di dati personalizzato viene salvato in %SYSTEMDRIVE%\AzureData\CustomData.bin.If your Azure VM is a Windows-based VM, then the custom data file is saved to %SYSTEMDRIVE%\AzureData\CustomData.bin. Anche se si tratta di un file con codifica Base 64 per il trasferimento dal computer locale alla nuova VM, viene decodificato automaticamente e può essere aperto o usato immediatamente.Although it was base64-encoded to transfer from the local computer to the new VM, it is automatically decoded and can be opened or used immediately.

    Nota

    Se il file esiste viene sovrascritto.If the file exists, it is overwritten. La sicurezza nella directory viene impostata su System:Full Control e Administrators:Full Control.The security on the directory is set to System:Full Control and Administrators:Full Control.

  • Se la VM di Azure è una macchina virtuale basata su Linux, il file di dati personalizzato sarà disponibile in una delle posizioni seguenti, a seconda della distribuzione locale.If your Azure VM is a Linux-based VM, then the custom data file will be located in one of the following places depending on your distro. È possibile che i dati siano con codifica Base 64, quindi prima potrebbe essere necessario decodificarli:The data may be base64-encoded, so you may need to decode the data first:

    • /var/lib/waagent/ovf-env.xml
    • /var/lib/waagent/CustomData
    • /var/lib/cloud/instance/user-data.txt

Inizializzazione cloud di AzureCloud-init on Azure

Se la VM di Azure proviene da un'immagine Ubuntu o CoreOS, è possibile usare CustomData per inviare un file cloud-config a cloud-init.If your Azure VM is from an Ubuntu or CoreOS image, then you can use CustomData to send a cloud-config to cloud-init. Se il file di dati personalizzato è uno script, cloud-init può semplicemente eseguirlo.Or if your custom data file is a script, then cloud-init can simply execute it.

Immagini di Ubuntu CloudUbuntu Cloud Images

Nella maggior parte delle immagini Linux di Azure occorre modificare "/ /etc/waagent.conf" per configurare disco temporaneo di risorse e file di scambio.In most Azure Linux images, you would edit "/etc/waagent.conf" to configure the temporary resource disk and swap file. Per altre informazioni, vedere Guida dell'utente dell'agente Linux di Azure.See Azure Linux Agent user guide for more information.

Tuttavia, nelle immagini di Ubuntu Cloud è necessario utilizzare cloud-init per configurare il disco delle risorse (noto anche come disco "temporaneo") e la partizione di scambio.However, on the Ubuntu Cloud Images, you must use cloud-init to configure the resource disk (that is, the "ephemeral" disk) and swap partition. Per ulteriori informazioni, vedere la pagina seguente del wiki di Ubuntu: AzureSwapPartitions.See the following page on the Ubuntu wiki for more details: AzureSwapPartitions.

Passaggi successivi: Utilizzo cloud-initNext steps: Using cloud-init

Per altre informazioni, vedere la documentazione su cloud-init per Ubuntu.For further information, see the cloud-init documentation for Ubuntu.

Aggiungere il riferimento all'API REST di gestione del servizio ruoloAdd Role Service Management REST API Reference

Interfaccia della riga di comando di AzureAzure Command-line Interface