Condividi tramite


Ambiente

L'ambiente è al rango 1. Un ambiente corrisponde a una distribuzione di Resource Manager.

CycleCloud può ora gestire le distribuzioni di Azure Resource Manager con i modelli ARM. È possibile fare riferimento a questi ambienti dall'interno di oggetti modello CycleCloud.

Mentre l'ambiente è di rango 1, è necessario un oggetto cluster nel file del modello di cluster.

Esempio

[environment vnet]
  ManagedLifecycle=true
  TemplateURL = az://mystorageaccount/mycontainer/${ProjectVersion}/vnet.json
  ParameterValues.backendIpAddress1 = 10.0.1.4
  VariableOverrides.virtualNetworkName = azure-vnet

[environment appgateway]
  TemplateURL = https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-application-gateway-waf/azuredeploy.json
  ParameterValues.virtualNetworkName = ${vnet.Parameters.virtualNetworkName}

[environment existing]
  Azure.ResourceGroup = existingrg
  ManagedLifecycle = false

[cluster my-cluster]

$ è un riferimento a un nome di parametro. ${} è un altro modo per fare riferimento a un nome di parametro e consente il riferimento a un ambiente.

Questo esempio avvia il modello ARM esistente in az://mystorageaccount/mycontainer/${ProjectVersion}/vnet.json come distribuzione ARM e fornisce le Risorse e gli Output come dati annidati all'interno della variabile vnet.

Informazioni di riferimento sugli attributi

Attributo TIPO Definizione
Credenziali string Nome dell'account del provider di servizi cloud
Area geografica string Località di Azure, ad esempio westus2
TemplateURL string URL valido per il percorso del modello ARM sul Web. Usare un solo attributo Template*.
ContenutiDelModello string Il codice JSON del modello viene letto come stringa con riferimento @parametername. Usare un solo attributo Template*.
TemplatePath string Per l'uso con Locker. Aggiunge il percorso alla casella di sicurezza per il percorso del modello di ARM. Usare un solo attributo Template*.
Casella di sicurezza string Per l'uso con TemplatePath. Supporta il pull del modello di ARM dalla casella di sicurezza.
ParameterValues. Parametro ARM ParameterValues.my-parameter dove my-parameter è un parametro. I parametri nei modelli arm supportano stringhe, elenco, numeri interi, booleani.
VariableOverrides. Variabile ARM VariableOverrides.my-variable, dove my-variable è il nome di una variabile nel template ARM. Le variabili nei modelli arm supportano stringhe, elenco, numeri interi, booleani.
ParameterizeVariables Boolean Usare con VariableValues. Esporre le variabili del modello ARM nel menu dell'interfaccia utente del cluster e nel modello di cluster.
VariableValues Variabile ARM Usa VariableValues.my-variable. Alternativa a VariableOverrides. Usare con ParameterizeVariables.
Azure.ResourceGroup string Nome del gruppo di risorse di Azure per la distribuzione.
ManagedLifecycle Boolean Usare con la distribuzione esistente. Il valore predefinito è vero.
Name string Nome del gruppo di risorse precedente all'uscita.
Tags string Usare tags.my-tag = my-tag-value per aggiungere tag al gruppo di risorse che possiedono la distribuzione oltre ai tag assegnati da CycleCloud per impostazione predefinita.

Per le distribuzioni preesistenti, il nome dell'oggetto ambiente fa riferimento al nome della distribuzione ARM.

Uso di risorse e output dell'ambiente

[environment vnet]
  ManagedLifecycle=true
  TemplateURL = az://mystorageaccount/mycontainer/${ProjectVersion}/vnet.json

[cluster my-cluster]
    [[node proxy]]
        IsReturnProxy = True
        SubnetId = ${vnet.resources.'azure-vnet/ProxySubnet'.id}

Seguendo il modello di distribuzione ARM, gli ambienti creano risorse ed espongono tali risorse agli altri oggetti Modello di cluster da usare.

Usando la notazione ${}, è possibile fare riferimento alle risorse ARM create nel relativo schema nativo.

Attributo Definizione
Outputs Usare come ${environment-name.Outputs.my-output} nel modello dove my-output è il nome di un output nel modello di ARM.
Risorse. Usare come ${environment-name.Resources.my-resource-name.key1.key2} nel modello dove my-resource-name è il nome di una risorsa nel modello ARM e key1, key2 sono chiavi correlate nell'oggetto risorsa.

Riferimento alle risorse nidificate

CycleCloud rappresenta gli ambienti con una struttura di dati annidata. Spesso è necessario fare riferimento ai dati all'interno di questa struttura.

[environment db]
TemplateContents = @raw-db-json
ParameterValues.DBName = @DBNameParameter

[cluster my-cluster]
  [[node my-node]]

     SubnetId = ${network.resources.'vnet/ComputeSubnet'.id}

     [[[configuration database]]]
        connection_string = ${db.Outputs.JDBCConnectionString}
        database_id = ${db.resources[ClusterName].id}

Gli indici delle variabili annidate possono dipendere dal tipo di risorsa ARM che si sta creando. I formati seguenti sono tutti validi per i riferimenti alle variabili annidate: env.resources.my-resource-name.id, env.resources['my-resource-name'].ide env.resources[MyResourceParam].