Compartir a través de


Entorno

El entorno es el rango 1. Un entorno corresponde a una implementación de Resource Manager.

CycleCloud ahora puede administrar implementaciones de Azure Resource Manager con plantillas de ARM. Estos entornos se pueden hacer referencia desde dentro de los objetos de plantilla cycleCloud.

Aunque el entorno es el rango 1, se requiere un objeto de clúster en el archivo de plantilla de clúster.

Ejemplo

[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]

$ es una referencia a un nombre de parámetro. ${} Es otra forma de hacer referencia a un nombre de parámetro y permite hacer referencia a un entorno.

En este ejemplo se iniciará la plantilla de ARM existente en az://mystorageaccount/mycontainer/${ProjectVersion}/vnet.json como implementación de ARM y se proporcionarán losrecursos y salidas como datos anidados dentro de la vnet variable.

Referencia de atributo

Atributo Tipo Definición
Credenciales String Nombre de la cuenta del proveedor de nube
Region String Ubicación de Azure, por ejemplo, westus2
TemplateURL String Dirección URL válida para la ubicación de la plantilla de ARM en la web. Use solo un atributo Template*.
TemplateContents String Lea en el json de plantilla como una cadena con @parametername referencia. Use solo un atributo Template*.
TemplatePath String Para su uso con Locker. Anexa la ruta de acceso a la caja de seguridad para la ubicación de la plantilla de arm. Use solo un atributo Template*.
Armario String Para su uso con TemplatePath. Admite la extracción de la plantilla de brazo de locker.
ParameterValues. Parámetro de ARM ParameterValues.my-parameter donde my-parameter es un parámetro. Los parámetros de las plantillas de ARM admiten cadenas, listas, enteros, booleanos.
VariableOverrides. ARM Variable VariableOverrides.my variable donde my-variable es un nombre de variable en la plantilla de ARM. Las variables de las plantillas de ARM admiten cadenas, listas, enteros, booleanos.
ParameterizeVariables Boolean Use con VariableValues. Exponga variables de plantilla de ARM en el menú de la interfaz de usuario del clúster y la plantilla de clúster.
VariableValues. ARM Variable VariableValues.my variable. Alternativa a VariableOverrides. Use con ParameterizeVariables.
Azure.ResourceGroup String Nombre del grupo de recursos de Azure para la implementación.
ManagedLifecycle Boolean Para su uso con la implementación existente. El valor predeterminado es true.
Nombre String Nombre del grupo de recursos que sale previamente.
Etiquetas. String Use tags.my-tag = my-tag-value para agregar etiquetas al grupo de recursos que posee la implementación, además de las etiquetas asignadas por CycleCloud de forma predeterminada.

En el caso de las implementaciones preexistentes, el nombre del objeto de entorno hace referencia al nombre de la implementación de ARM.

Uso de recursos y salidas de entorno

[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}

Después del modelo de implementación de ARM, los entornos crearán recursos y expondrán esos recursos a los demás objetos de plantilla de clúster para su uso.

Con la ${} notación, puede hacer referencia a los recursos de ARM creados en su esquema nativo.

Atributo Definición
Salidas. Use como ${environment-name.Outputs.my-output} en la plantilla donde my-output es el nombre de una salida en la plantilla de ARM.
Recursos. Use como ${environment-name.Resources.my-resource-name.key1.key2} en la plantilla donde my-resource-name es el nombre de un recurso de la plantilla de ARM y key1, key2 son claves relacionadas en el objeto de recurso.

Referencia a recursos anidados

Los entornos administrados por CycleCloud se representan mediante una estructura de datos anidada. A menudo resulta útil hacer referencia a datos dentro de esta estructura.

[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}

Los índices de variables anidadas pueden depender del tipo de recurso arm que se va a crear. env.resources.my-resource-name.id, env.resources['my-resource-name'].id, env.resources[MyResourceParam] son todos los formatos válidos para las referencias a variables anidadas.