Creare ambienti con più macchine virtuali e risorse PaaS con i modelli di Azure Resource ManagerCreate multi-VM environments and PaaS resources with Azure Resource Manager templates

Il portale di Azure consente di creare e aggiungere una macchina virtuale a un lab.The Azure portal enables you to easily create and add a VM to a lab. Ciò vale per la creazione di una macchina virtuale alla volta.This works well for creating one VM at a time. Tuttavia, se l'ambiente contiene più macchine virtuali, ogni macchina deve essere creata individualmente.However, if the environment contains multiple VMs, each VM must be individually created. Per scenari quali app Web multilivello o farm di SharePoint, è necessario un meccanismo che consenta la creazione di più macchine virtuali in un unico passaggio.For scenarios such as a multi-tier Web app or a SharePoint farm, a mechanism is needed to allow for the creation of multiple VMs in a single step. I modelli di Azure Resource Manager consentono di definire l'infrastruttura e la configurazione della soluzione di Azure e di distribuire ripetutamente più macchine virtuali in modo coerente.By using Azure Resource Manager templates, you can now define the infrastructure and configuration of your Azure solution and repeatedly deploy multiple VMs in a consistent state. Ciò offre i vantaggi seguenti:This feature provides the following benefits:

  • I modelli di Azure Resource Manager vengono caricati direttamente dal repository di controllo del codice sorgente (GitHub o Team Services Git).Azure Resource Manager templates are loaded directly from your source control repository (GitHub or Team Services Git).
  • Al termine della configurazione, gli utenti possono creare un ambiente scegliendo un modello di Azure Resource Manager dal portale di Azure, come avviene con altri tipi di basi per macchine virtuali.Once configured, your users can create an environment by picking an Azure Resource Manager template from the Azure portal, just as they do with other types of VM bases.
  • È possibile eseguire il provisioning delle risorse di Azure PaaS in un ambiente usando un modello di Azure Resource Manager oltre che le macchine virtuali IaaS.Azure PaaS resources can be provisioned in an environment from an Azure Resource Manager template in addition to IaaS VMs.
  • È possibile tenere traccia del costo dell'ambiente insieme alle singole VM create da altri tipi di base.The cost of environments can be tracked in the lab in addition to individual VMs created by other types of bases.
  • Le risorse di PaaS vengono create e visualizzate nella verifica dei costi. Tuttavia, l'arresto automatico della macchina virtuale non si applica alle risorse di PaaS.PaaS resources are created and will appear in cost tracking; however, VM auto shutdown does not apply to PaaS resources.
  • Gli utenti hanno lo stesso controllo dei criteri delle macchine virtuali per gli ambienti di quello che hanno per le macchine virtuali di un singolo lab.Users have the same VM policy control for environments as they have for single-lab VMs.

Altre informazioni sui numerosi vantaggi offerti dai modelli di Resource Manager per distribuire, aggiornare o eliminare tutte le risorse del lab con una sola operazione.Learn more about the many benefits of using Resource Manager templates to deploy, update, or delete all of your lab resources in a single operation.

Nota

Quando si usa un modello di Resource Manager come base per creare più macchine virtuali lab, occorre tenere presente che ci sono alcune differenze tra la creazione di più macchine virtuali e una singola macchina virtuale.When you use a Resource Manager template as a basis to create more lab VMs, there are some differences to keep in mind whether you are creating Multi-VMs or single-VMs. Nell'articolo Use a virtual machine's Azure Resource Manager template (Usare un modello di Azure Resource Manager di una macchina virtuale) queste differenze sono illustrate con maggiori dettagli.Use a virtual machine's Azure Resource Manager template explains these differences in greater detail.

Configurare i repository del modello di Azure Resource ManagerConfigure Azure Resource Manager template repositories

Come procedura consigliata nei casi di infrastruttura come codice e configurazione come codice, i modelli di ambiente devono essere gestiti nel controllo del codice sorgente.As one of the best practices with infrastructure-as-code and configuration-as-code, environment templates should be managed in source control. Azure Labs DevTest applica questa procedura e carica tutti i modelli Azure Resource Manager direttamente dai repository VSTS Git o GitHub.Azure DevTest Labs follows this practice and loads all Azure Resource Manager templates directly from your GitHub or VSTS Git repositories. Di conseguenza, i modelli di Resource Manager possono essere usati in tutto il ciclo di rilascio, dall'ambiente di test a quello di produzione.As a result, Resource Manager templates can be used across the entire release cycle, from the test environment to the production environment.

Ci sono un paio di regole da seguire per organizzare i modelli di Azure Resource Manager in un repository:There are a couple of rules to follow to organize your Azure Resource Manager templates in a repository:

  • Il nome del file del modello master deve essere azuredeploy.json.The master template file must be named azuredeploy.json.

    File principali del modello di Azure Resource Manager

  • Se si intende usare valori di parametro definiti in un file di parametri, il nome di tale file deve essere azuredeploy.parameters.json.If you want to use parameter values defined in a parameter file, the parameter file must be named azuredeploy.parameters.json.

  • È possibile usare i parametri _artifactsLocation e _artifactsLocationSasToken per costruire il valori URI parametersLink e consentire a DevTest Labs di gestire automaticamente i modelli nidificati.You can use the parameters _artifactsLocation and _artifactsLocationSasToken to construct the parametersLink URI value, allowing DevTest Labs to automatically manage nested templates. Per altre informazioni, vedere How Azure DevTest Labs makes nested Resource Manager template deployments easier for testing environments (Come Azure DevTest Labs semplifica le distribuzioni di modelli di Resource Manager nidificati negli ambienti di test).See How Azure DevTest Labs makes nested Resource Manager template deployments easier for testing environments for more information.
  • È possibile definire metadati per specificare il nome e la descrizione visualizzati del modello.Metadata can be defined to specify the template display name and description. I metadati deve essere contenuti in un file denominato metadata.json.This metadata must be in a file named metadata.json. Il file di metadati di esempio seguente mostra come specificare il nome e la descrizione visualizzati:The following example metadata file illustrates how to specify the display name and description:
{

"itemDisplayName": "<your template name>",

"description": "<description of the template>"

}

La procedura seguente consente di aggiungere un repository nel lab tramite il portale di Azure.The following steps guide you through adding a repository to your lab using the Azure portal.

  1. Accedere al portale di Azure.Sign in to the Azure portal.
  2. Selezionare Tutti i servizi e quindi DevTest Labs nell'elenco.Select All Services, and then select DevTest Labs from the list.
  3. Nell'elenco dei lab selezionare il lab desiderato.From the list of labs, select the desired lab.
  4. Nel riquadro Panoramica del lab selezionare Configurazione e criteri.On the lab's Overview pane, select Configuration and Policies.

    Configurazione e criteri

  5. Nell'elenco delle impostazioni Configuration and Policies (Configurazione e criteri) Repository.From the Configuration and Policies settings list, select Repositories. Nel riquadro Repository sono elencati i repository aggiunti al lab.The Repositories pane lists the repositories that have been added to the lab. Per tutti i lab viene automaticamente generato un repository denominato Public Repo, che si connette al repository DevTest Labs di GitHub, che contiene diversi elementi di macchina virtuale utilizzabili.A repository named Public Repo is automatically generated for all labs, and connects to the DevTest Labs GitHub repo that contains several VM artifacts for your use.

    Repository pubblico

  6. Selezionare Aggiungi + per aggiungere il repository di modelli di Azure Resource Manager.Select Add+ to add your Azure Resource Manager template repository.

  7. Quando si apre il secondo riquadro Repository, immettere le informazioni necessarie, come indicato di seguito:When the second Repositories pane opens, enter the necessary information as follows:

    • Nome: immettere il nome del repository usato nel lab.Name - Enter the repository name that is used in the lab.
    • URL clone Git: immettere l'URL del clone Git HTTPS copiato in precedenza da GitHub o da Visual Studio Team Services.Git clone URL - Enter the GIT HTTPS clone URL from GitHub or Visual Studio Team Services.
    • Ramo: immettere il nome del ramo per accedere alle definizioni dei modelli di Azure Resource Manager.Branch - Enter the branch name to access your Azure Resource Manager template definitions.
    • Token di accesso personale: il token di accesso personale usato per accedere in modo sicuro al repository.Personal access token - The personal access token is used to securely access your repository. Per ottenere il token da Visual Studio Team Services, selezionare <YourName> > My profile > Security > Public access token (NomeUtente > Profilo personale > Sicurezza > Token di accesso pubblico).To get your token from Visual Studio Team Services, select <YourName> > My profile > Security > Public access token. Per ottenere il token da GitHub, selezionare l'avatar e quindi selezionare Settings > Public access token (Impostazioni > Token di accesso pubblico).To get your token from GitHub, select your avatar followed by selecting Settings > Public access token.
    • Percorsi delle cartelle: usando uno dei due campi di input, immettere il percorso della cartella che inizia con la barra rovesciata - / - ed è relativo all'URI del clone Git delle definizioni di elemento (primo campo di input) o delle definizioni di modello di Azure Resource Manager.Folder paths - Using one of the two input fields, enter the folder path that starts with a forward slash - / - and is relative to your Git clone URI to either your artifact definitions (first input field) or your Azure Resource Manager template definitions.

      Repository pubblico

  8. Quando tutti i campi obbligatori sono stati immessi e hanno superato la verifica, selezionare Salva.Once all the required fields are entered and pass the validation, select Save.

La sezione successiva illustra come creare ambienti da un modello di Azure Resource Manager.The next section will walk you through creating environments from an Azure Resource Manager template.

Creare un ambiente da un modello di Resource Manager usando il portale di AzureCreate an environment from a Resource Manager template using the Azure portal

Dopo aver configurato un repository di modelli di Azure Resource Manager nel laboratorio, gli utenti del laboratorio possono creare un ambiente usando il portale di Azure, seguendo questa procedura:Once an Azure Resource Manager template repository has been configured in the lab, your lab users can create an environment using Azure portal with the following steps:

  1. Accedere al portale di Azure.Sign in to the Azure portal.
  2. Selezionare Tutti i servizi e quindi DevTest Labs nell'elenco.Select All Services, and then select DevTest Labs from the list.
  3. Nell'elenco dei lab selezionare il lab desiderato.From the list of labs, select the desired lab.
  4. Nel riquadro del lab selezionare Aggiungi+.On the lab's pane, select Add+.
  5. Nel riquadro Scegli una base vengono visualizzate le immagini di base che è possibile usare con i modelli di Azure Resource Manager prima elencati.The Choose a base pane displays the base images you can use with the Azure Resource Manager templates listed first. Selezionare il modello di Azure Resource Manager desiderato.Select the desired Azure Resource Manager template.

    Scegli una base

  6. Nel riquadro Aggiungi immettere un valore in Nome ambiente.On the Add pane, enter the Environment name value. Il nome dell'ambiente è quello visualizzato agli utenti nel laboratorio.The environment name is what is displayed to your users in the lab. I campi di input rimanenti vengono definiti nel modello di Azure Resource Manager.The remaining input fields are defined in the Azure Resource Manager template. Se i valori predefiniti sono definiti nel modello o se è presente il file azuredeploy.parameter.json, i valori predefiniti vengono visualizzati in tali campi di input.If default values are defined in the template or the azuredeploy.parameter.json file is present, default values are displayed in those input fields. Per i parametri di tipo stringa protetta, è possibile usare i segreti archiviati nell'archivio segreto personale del lab.For parameters of type secure string, you can use the secrets stored in the lab’s personal secret store.

    Riquadro Aggiungi

    Nota

    Esistono diversi valori di parametro che, anche se specificati, vengono visualizzati come valori vuoti.There are several parameter values that - even if specified - are displayed as empty values. Se quindi tali valori vengono assegnati ai parametri in un modello di Azure Resource Manager, non vengono visualizzati in DevTest Labs.Therefore, if users assign those values to parameters in an Azure Resource Manager template, DevTest Labs does not display the values. Vengono invece visualizzati i campi di input vuoti nell'area in cui è necessario immettere un valore quando si crea l'ambiente.Instead, blank input fields are shown where lab users must enter a value when creating the environment.

    • GEN-UNIQUEGEN-UNIQUE
    • GEN-UNIQUE-[N]GEN-UNIQUE-[N]
    • GEN-SSH-PUB-KEYGEN-SSH-PUB-KEY
    • GEN-PASSWORDGEN-PASSWORD
  7. Selezionare Aggiungi per creare l'ambiente.Select Add to create the environment. L'ambiente avvia immediatamente il provisioning con lo stato visualizzato nell'elenco Macchine virtuali.The environment starts provisioning immediately with the status displaying in the My virtual machines list. Un nuovo gruppo di risorse viene creato automaticamente dal lab per eseguire il provisioning di tutte le risorse definite nel modello di Azure Resource Manager.A new resource group is automatically created by the lab to provision all the resources defined in the Azure Resource Manager template.

  8. Dopo aver creato l'ambiente, selezionarlo nell'elenco Macchine virtuali personali per aprire il riquadro del gruppo di risorse e cercare tutte le risorse di cui è stato eseguito il provisioning nell'ambiente.Once the environment is created, select the environment in the My virtual machines list to open the resource group pane and browse all of the resources provisioned in the environment.

    Elenco delle macchine virtuali

    È possibile anche espandere l'ambiente per visualizzare solo l'elenco di macchine virtuali oggetto del provisioning nell'ambiente.You can also expand the environment to view just the list of VMs that are provisioned in the environment.

    Elenco delle macchine virtuali

  9. Fare clic su uno degli ambienti per visualizzare le azioni disponibili, quali l'applicazione di elementi, il collegamento di dischi dati, la modifica dell'ora di arresto automatico e altro.Click any of the environments to view the available actions - such as applying artifacts, attaching data disks, changing auto-shutdown time, and more.

    Azioni dell'ambiente

Distribuire un modello di Resource Manager per creare una VMDeploy a Resource Manager template to create a VM

Dopo aver salvato un modello di Resource Manager e averlo personalizzato per le proprie esigenze, è possibile usarlo per automatizzare la creazione delle macchine virtuali.After you have saved a Resource Manager template and customized it for your needs, you can use it to automate VM creation.

Nota

Solo un utente con autorizzazioni di proprietario lab può creare macchine virtuali da un modello di Resource Manager usando Azure PowerShell.Only a user with lab owner permissions can create VMs from a Resource Manager template by using Azure PowerShell. Se si desidera automatizzare la creazione di VM usando un modello di Resource Manager e si dispone solo delle autorizzazioni utente, è possibile usare il comando az lab vm create nell'interfaccia della riga di comando.If you want to automate VM creation using a Resource Manager template and you only have user permissions, you can use the az lab vm create command in the CLI.

Limitazioni generaliGeneral limitations

Quando si usa un modello di Resource Manager in DevTest Labs, tenere in considerazione le limitazioni seguenti:Consider these limitations when using a Resource Manager template in DevTest Labs:

  • Un modello di Resource Manager non può fare riferimento alle risorse esistenti, ma solo a nuove risorse.Any Resource Manager template you create cannot refer to existing resources; it can only refer to new resources. Inoltre, se si dispone di un modello di Resource Manager esistente, in genere distribuito all'esterno di DevTest Labs e contenente riferimenti alle risorse esistenti, non è possibile usarlo nel lab.In addition, if you have an existing Resource Manager template that you typically deploy outside of DevTest Labs and it contains references to existing resources, it can't be used in the lab.

    L'unica eccezione è fare riferimento a una rete virtuale esistente.The only exception to this is that you can reference an existing virtual network.

  • Non è possibile creare formule da macchine virtuali del lab create da un modello di Resource Manager.Formulas can't be created from lab VMs that were created from an Resource Manager template.

  • Non è possibile creare immagini personalizzate da macchine virtuali del lab create da un modello di Resource Manager.Custom images can't be created from lab VMs that were created from an Resource Manager template.

  • Non è possibile convalidare la maggior parte dei criteri quando si distribuiscono i modelli di Resource Manager.Most policies are not evaluated when you deploy Resource Manager templates.

    Ad esempio, un criterio del lab può specificare che un utente può creare solo cinque macchine virtuali.For example, you might have a lab policy specifying that a user can only create five VMs. Se tuttavia l'utente distribuisce un modello di Resource Manager per la creazione di varie macchine virtuali, tale operazione è consentita.However, if the user deploys an Resource Manager template that creates dozens of VMs, that is allowed. Tra i criteri che non vengono convalidati sono inclusi:Policies that are not evaluated include:

    • Numero di macchine virtuali per utenteNumber of VMs per user
    • Numero di macchine virtuali premium per utente del labNumber of premium VMs per lab user
    • Numero di dischi premium per utente del labNumber of premium disks per lab user

Configurare i diritti di accesso del gruppo di risorse dell'ambiente per gli utenti del labConfigure environment resource group access rights for lab users

Gli utenti del lab possono distribuire un modello di Resource Manager.Lab users can deploy a Resource Manager template. Tuttavia, per impostazione predefinita, dispongono di diritti di accesso in lettura. Ovvero, non possono modificare le risorse in un gruppo di risorse dell'ambiente.But by default, they have Reader access rights, which means they can’t change the resources in an environment resource group. Ad esempio, non possono arrestare o avviare le proprie risorse.For example, they cannot stop or start their resources.

Per concedere diritti di accesso di tipo Collaboratore, seguire questa procedura.Follow these steps to give your lab users Contributor access rights. In questo modo, quando si distribuisce un modello di Resource Manager, sarà possibile modificare le risorse nell'ambiente.Then, when they deploy a Resource Manager template, they will be able to edit the resources in that environment.

  1. Nel riquadro Panoramica del lab selezionare Configurazione e criteri.On your lab's Overview pane, select Configuration and policies.
  2. Selezionare Impostazioni lab.Select Lab settings.
  3. Nel riquadro Impostazioni lab selezionare Collaboratore per concedere le autorizzazioni di scrittura agli utenti del lab.In the Lab Settings pane, select Contributor to grant write permissions to lab users.

    Configurare i diritti di accesso per l'utente del lab

  4. Selezionare Salva.Select Save.

Passaggi successiviNext steps