Implementación de Start/Stop VMs v2 en una suscripción de Azure
Siga la secuencia de pasos que aparecen en este tema para instalar la característica Start/Stop VMs v2. Después de completar el proceso de instalación, configure las programaciones para personalizar esta característica según sus necesidades.
Permisos y consideraciones sobre la directiva
Tenga en cuenta las siguientes consideraciones antes y durante la implementación:
La solución permite a los usuarios con los permisos de control de acceso basado en rol (RBAC) adecuados en la implementación de Start/Stop v2 agregar, quitar y administrar programaciones para máquinas virtuales en el ámbito de Start/Stop v2. Este comportamiento es así por diseño. En la práctica, esto significa que un usuario que no tiene permisos explícitos en una máquina virtual podría crear operaciones de inicio, detención y detención automática en esa máquina virtual cuando tengan permisos para modificar la solución Start/Stop v2 que la administra.
Cualquier usuario con acceso a la solución Start/Stop v2 podría descubrir el costo, los ahorros, el historial de operaciones y otros datos almacenados en la instancia de Application Insights usada por la aplicación Start/Stop v2.
Al administrar una solución Start/Stop v2, debe tener en cuenta los permisos de los usuarios para la solución Start/Stop v2, especialmente cuando no tiene permiso para modificar directamente las máquinas virtuales de destino.
Al implementar la solución Start/Stop v2 en un grupo de recursos nuevo o existente, se agrega una etiqueta denominada SolutionName con el valor StartStopV2 al grupo de recursos y a los recursos implementados por Start/Stop v2. Se elimina cualquier otra etiqueta de estos recursos. Si tiene una directiva de Azure que deniega las operaciones de administración basadas en etiquetas de recursos, debe permitir operaciones de administración para recursos que contengan solo esta etiqueta.
Implementación de la característica
La implementación se inicia desde la organización de GitHub Start/Stop VMs v2. Si bien esta característica está pensada para administrar todas las máquinas virtuales de su suscripción en todos los grupos de recursos desde una implementación única dentro de la suscripción, puede instalar otra instancia de ella en función del modelo de operaciones o de los requisitos de su organización. También se puede configurar para administrar de forma centralizada las máquinas virtuales de varias suscripciones.
Para simplificar su administración y eliminación, se recomienda implementar la característica Start/Stop VMs v2 en un grupo de recursos dedicado.
Nota
Actualmente esta solución no permite especificar una cuenta de almacenamiento ni un recurso de Application Insights existentes.
Nota
El formato de nomenclatura de la aplicación de funciones y la cuenta de almacenamiento ha cambiado. Para garantizar la unicidad global, ahora se anexa una cadena aleatoria y única a los nombres de estos recursos.
Abra el explorador y vaya a la organización de GitHub Start/Stop VMs v2.
Seleccione la opción de implementación correspondiente al entorno de nube de Azure en el que se crean las máquinas virtuales de Azure.
Si se le solicita hacerlo, inicie sesión en Azure Portal.
Elija el Plan adecuado en la lista desplegable. Al elegir un plan con redundancia de zona (Start/StopV2-AZ), debe crear la implementación en una de las siguientes regiones:
- Este de Australia
- Sur de Brasil
- Centro de Canadá
- Centro de EE. UU.
- Este de EE. UU.
- Este de EE. UU. 2
- Centro de Francia
- Centro-oeste de Alemania
- Japón Oriental
- Norte de Europa
- Sudeste de Asia
- Sur de Reino Unido 2
- Oeste de Europa
- Oeste de EE. UU. 2
- Oeste de EE. UU. 3
Seleccione Crear, que abre la página de implementación de Azure Resource Manager personalizada en Azure Portal.
Escriba los siguientes valores:
Nombre Value Region Seleccione una región cerca de usted para los recursos nuevos. Nombre del grupo de recursos Especifique el nombre del grupo de recursos que contendrá los recursos individuales para Start/Stop VMs. Región del grupo de recursos Especifique la región del grupo de recursos. Por ejemplo, Centro de EE. UU. Nombre de la aplicación de funciones de Azure Escriba un nombre que sea válido en una ruta de acceso de la dirección URL. El nombre que escriba se valida para asegurarse de que es único en Azure Functions. Nombre de Application Insights Especifique el nombre de la instancia de Application Insights que contendrá el análisis para Start/Stop VMs. Región de Application Insights Especifique la región de la instancia de Application Insights. Nombre de la cuenta de almacenamiento Especifique el nombre de la cuenta de Azure Storage para almacenar la telemetría de ejecución de Start/Stop VMs. Dirección de correo electrónico Especifique una o varias direcciones de correo electrónico para recibir notificaciones de estado, separadas por una coma (,). Seleccione Revisar y crear en la parte inferior de la página.
Seleccione Crear para iniciar la implementación.
Seleccione el icono de campana (notificaciones) en la parte superior de la pantalla para ver el estado de implementación. Verá Implementación en curso. Espere hasta que se complete la implementación.
Seleccione Ir al grupo de recursos desde el panel de notificación. Debería ver una pantalla parecida a:
Nota
Recopilamos datos de telemetría de operaciones y latidos para ofrecerle una asistencia mayor cuando se ponga en contacto con el equipo de soporte técnico para solucionar problemas. También recopilamos el historial de eventos de la máquina virtual para comprobar cuándo ha actuado el servicio en una máquina virtual y cuánto tiempo se ha pospuesto una máquina virtual para determinar la eficacia del servicio.
Habilitación de varias suscripciones
Una vez finalizada la implementación de Start/Stop, siga estos pasos para habilitar Start/Stop VMs v2 y realizar acciones en varias suscripciones.
Copie el valor del nombre de la aplicación de Azure Functions que especificó durante la implementación.
En Azure Portal, vaya a la suscripción secundaria.
Seleccione Access Control (IAM) .
Seleccione Agregar>Agregar asignación de roles para abrir la página Agregar asignación de roles.
Asigne el siguiente rol. Para asignar roles, consulte Asignación de roles de Azure mediante Azure Portal.
Configuración Valor Role Colaborador Asignar acceso a Usuario, grupo o entidad de servicio Miembros <Nombre de la aplicación de Azure Functions>
Información general sobre la configuración de programaciones
Para administrar el método de automatización a fin de controlar el inicio y la detención de las máquinas virtuales, puede configurar una o varias de las aplicaciones lógicas incluidas según sus requisitos.
Programado: las acciones de inicio y detención se basan en una programación que se especifica en las máquinas virtuales de Azure Resource Manager y clásicas. ststv2_vms_Scheduled_start y ststv2_vms_Scheduled_stop configuran el inicio y la detención programados.
Secuenciado: las acciones de inicio y detención se basan en una programación dirigida a las máquinas virtuales con etiquetas de secuencia predefinidas. Solo se admiten dos etiquetas con nombre: sequencestart y sequencestop. ststv2_vms_Sequenced_start y ststv2_vms_Sequenced_stop configuran el inicio y la detención secuenciados.
Nota:
En este escenario solo se admiten las máquinas virtuales de Azure Resource Manager.
AutoStop: esta funcionalidad solo se usa para realizar una acción de detención en máquinas virtuales de Azure Resource Manager y clásicas en función de su uso de CPU. También puede ser una acción programada, que crea alertas en las máquinas virtuales y, en función de la condición, la alerta se desencadena para realizar la acción de detención.ststv2_vms_AutoStop configura la funcionalidad de detención automática.
Si necesita programaciones adicionales, puede duplicar una de las instancias de Logic Apps proporcionadas mediante la opción Clonar de Azure Portal.
Escenario de inicio y detención programados
Siga los pasos que se indican a continuación a fin de configurar la acción de inicio y detención programada para máquinas virtuales de Azure Resource Manager y clásicas. Por ejemplo, puede configurar la programación ststv2_vms_Scheduled_start para que se inicien en la mañana, cuando esté en la oficina, y para detener todas las máquinas virtuales de una suscripción cuando salga de trabajo por la tarde, según la programación ststv2_vms_Scheduled_stop.
Es posible configurar la aplicación lógica para que solo inicie las máquinas virtuales.
En cada escenario, puede dirigir la acción a una o varias suscripciones, a uno o varios grupos de recursos y especificar una o varias máquinas virtuales en una lista de inclusión o de exclusión. No puede especificarlas todas en la misma aplicación lógica.
Inicie sesión en Azure Portal y vaya a Aplicaciones lógicas.
En la lista de aplicaciones lógicas, seleccione ststv2_vms_Scheduled_start para configurar el inicio programado. Si desea configurar la detención programada, seleccione ststv2_vms_Scheduled_stop.
En el panel de la izquierda, seleccione Diseñador de aplicaciones lógicas.
Cuando aparezca el Diseñador de aplicaciones lógicas, en el panel del diseñador, seleccione Periodicidad para configurar la programación de las aplicaciones lógicas. Para información sobre las opciones de periodicidad específicas, consulte Programación de tareas periódicas.
Nota:
Si no proporciona una fecha y hora de inicio para la primera periodicidad, se ejecutará inmediatamente una periodicidad al guardar la aplicación lógica, lo que podría hacer que las máquinas virtuales se inicien o detengan antes de la ejecución programada.
En el panel del diseñador, seleccione Try de función para configurar los valores de destino. En el cuerpo de la solicitud, si quiere administrar las máquinas virtuales en todos los grupos de recursos de la suscripción, modifíquelo tal como se muestra en el ejemplo siguiente.
{ "Action": "start", "EnableClassic": false, "RequestScopes": { "ExcludedVMLists": [], "Subscriptions": [ "/subscriptions/12345678-1234-5678-1234-123456781234/" ] } }
Especifique varias suscripciones en la matriz
subscriptions
con cada valor separado con una coma, tal como se indica en el ejemplo siguiente."Subscriptions": [ "/subscriptions/12345678-1234-5678-1234-123456781234/", "/subscriptions/11111111-0000-1111-2222-444444444444/" ]
En el cuerpo de la solicitud, si quiere administrar las máquinas virtuales de grupos de recursos específicos, modifíquelo tal como se muestra en el ejemplo siguiente. Cada ruta de acceso a recurso especificada se debe separar con una coma. Si es necesario, puede especificar uno o varios grupos de recursos.
En este ejemplo también se muestra cómo excluir una máquina virtual. Si desea excluir la máquina virtual, especifique la ruta de acceso al recurso de máquinas virtuales o use un carácter comodín.
{ "Action": "start", "EnableClassic": false, "RequestScopes": { "Subscriptions": [ "/subscriptions/12345678-1234-5678-1234-123456781234/", "/subscriptions/11111111-0000-1111-2222-444444444444/" ], "ResourceGroups": [ "/subscriptions/12345678-1234-5678-1234-123456781234/resourceGroups/rg1/", "/subscriptions/11111111-0000-1111-2222-444444444444/resourceGroups/rg2/" ], "ExcludedVMLists": [ "/subscriptions/12345678-1234-5678-1234-123456781234/resourceGroups/vmrg1/providers/Microsoft.Compute/virtualMachines/vm1" ] } }
Aquí, la acción se hará en todas las máquinas virtuales, excepto en aquellas cuyo nombre empieza con Az y Bz en ambas suscripciones.
{ "Action": "start", "EnableClassic": false, "RequestScopes": { "ExcludedVMLists": [“Az*”,“Bz*”], "Subscriptions": [ "/subscriptions/12345678-1234-5678-1234-123456781234/", "/subscriptions/11111111-0000-1111-2222-444444444444/" ] } }
En el cuerpo de la solicitud, si quiere administrar un conjunto específico de máquinas virtuales dentro de la suscripción, modifique el cuerpo de la solicitud tal como se muestra en el ejemplo siguiente. Cada ruta de acceso a recurso especificada se debe separar con una coma. Si es necesario, puede especificar una máquina virtual.
{ "Action": "start", "EnableClassic": false, "RequestScopes": { "ExcludedVMLists": [], "VMLists": [ "/subscriptions/12345678-1234-5678-1234-123456781234/resourceGroups/rg1/providers/Microsoft.Compute/virtualMachines/vm1", "/subscriptions/12345678-1234-5678-1234-123456781234/resourceGroups/rg3/providers/Microsoft.Compute/virtualMachines/vm2", "/subscriptions/11111111-0000-1111-2222-444444444444/resourceGroups/rg2/providers/Microsoft.ClassicCompute/virtualMachines/vm30" ] } }
En el panel de información general de la aplicación lógica, seleccione Habilitar.
Escenario de inicio y detención secuenciados
En un entorno que incluye dos o más componentes en varias máquinas virtuales de Azure Resource Manager de una arquitectura de aplicación distribuida, es importante que se pueda decidir la secuencia en que los componentes se inician o detienen en orden. Asegúrese de que ha aplicado las etiquetas sequencestart y sequencestop a las máquinas virtuales de destino, como se describe en la página de información general antes de configurar este escenario.
En la lista de aplicaciones lógicas, seleccione ststv2_vms_Sequenced_start para configurar el inicio secuenciado. Si desea configurar la detención secuenciada, seleccione ststv2_vms_Sequenced_stop.
En el panel de la izquierda, seleccione Diseñador de aplicaciones lógicas.
Cuando aparezca el Diseñador de aplicaciones lógicas, en el panel del diseñador, seleccione Periodicidad para configurar la programación de las aplicaciones lógicas. Para información sobre las opciones de periodicidad específicas, consulte Programación de tareas periódicas.
Nota:
Si no proporciona una fecha y hora de inicio para la primera periodicidad, se ejecutará inmediatamente una periodicidad al guardar la aplicación lógica, lo que podría hacer que las máquinas virtuales se inicien o detengan antes de la ejecución programada.
En el panel del diseñador, seleccione Function-Try para configurar los valores de destino y, a continuación, seleccione el <botón > Vista Código en el menú superior para editar el código del elemento Function-Try. En el cuerpo de la solicitud, si quiere administrar las máquinas virtuales en todos los grupos de recursos de la suscripción, modifíquelo tal como se muestra en el ejemplo siguiente.
{ "Action": "start", "EnableClassic": false, "RequestScopes": { "ExcludedVMLists": [], "Subscriptions": [ "/subscriptions/12345678-1234-5678-1234-123456781234/" ] }, "Sequenced": true }
Especifique varias suscripciones en la matriz
subscriptions
con cada valor separado con una coma, tal como se indica en el ejemplo siguiente."Subscriptions": [ "/subscriptions/12345678-1234-5678-1234-123456781234/", "/subscriptions/11111111-0000-1111-2222-444444444444/" ]
En el cuerpo de la solicitud, si quiere administrar las máquinas virtuales de grupos de recursos específicos, modifíquelo tal como se muestra en el ejemplo siguiente. Cada ruta de acceso a recurso especificada se debe separar con una coma. Si es necesario, puede especificar un grupo de recursos.
En este ejemplo también se muestra cómo excluir una máquina virtual mediante la ruta de acceso al recurso en comparación con el ejemplo del inicio o detención programados, que usaba caracteres comodín.
{ "Action": "start", "EnableClassic": false, "RequestScopes": { "Subscriptions":[ "/subscriptions/12345678-1234-5678-1234-123456781234/", "/subscriptions/11111111-0000-1111-2222-444444444444/" ], "ResourceGroups": [ "/subscriptions/12345678-1234-5678-1234-123456781234/resourceGroups/rg1/", "/subscriptions/11111111-0000-1111-2222-444444444444/resourceGroups/rg2/" ], "ExcludedVMLists": [ "/subscriptions/12345678-1234-5678-1234-123456781234/resourceGroups/vmrg1/providers/Microsoft.Compute/virtualMachines/vm1" ] }, "Sequenced": true }
En el cuerpo de la solicitud, si quiere administrar un conjunto específico de máquinas virtuales dentro de una suscripción, modifique el cuerpo de la solicitud tal como se muestra en el ejemplo siguiente. Cada ruta de acceso a recurso especificada se debe separar con una coma. Si es necesario, puede especificar una máquina virtual.
{ "Action": "start", "EnableClassic": false, "RequestScopes": { "ExcludedVMLists": [], "VMLists": [ "/subscriptions/12345678-1234-5678-1234-123456781234/resourceGroups/rg1/providers/Microsoft.Compute/virtualMachines/vm1", "/subscriptions/12345678-1234-5678-1234-123456781234/resourceGroups/rg2/providers/Microsoft.ClassicCompute/virtualMachines/vm2", "/subscriptions/11111111-0000-1111-2222-444444444444/resourceGroups/rg2/providers/Microsoft.ClassicCompute/virtualMachines/vm30" ] }, "Sequenced": true }
Escenario de detención automática
La característica Start/Stop VMs v2 ayuda a administrar el costo de la ejecución de máquinas virtuales de Azure Resource Manager y clásicas en su suscripción mediante la evaluación de las máquinas virtuales de Azure que no se utilizan durante los períodos de poca actividad, por ejemplo, las horas no laborables, y el apagado automático si el uso del procesador es menor de un porcentaje especificado.
Las propiedades de alerta de métricas siguientes en el cuerpo de la solicitud admiten la personalización:
- AutoStop_MetricName
- AutoStop_Condition
- AutoStop_Threshold
- AutoStop_Description
- AutoStop_Frequency
- AutoStop_Severity
- AutoStop_Threshold
- AutoStop_TimeAggregationOperator
- AutoStop_TimeWindow
Para más información sobre cómo funcionan las alertas de métricas de Azure Monitor y cómo configurarlas, consulte Alertas de métricas en Azure Monitor.
En la lista de aplicaciones lógicas, seleccione ststv2_vms_AutoStop para configurar la detención automática.
En el panel de la izquierda, seleccione Diseñador de aplicaciones lógicas.
Cuando aparezca el Diseñador de aplicaciones lógicas, en el panel del diseñador, seleccione Periodicidad para configurar la programación de las aplicaciones lógicas. Para información sobre las opciones de periodicidad específicas, consulte Programación de tareas periódicas.
En el panel del diseñador, seleccione Try de función para configurar los valores de destino. En el cuerpo de la solicitud, si quiere administrar las máquinas virtuales en todos los grupos de recursos de la suscripción, modifíquelo tal como se muestra en el ejemplo siguiente.
{ "Action": "stop", "EnableClassic": false, "AutoStop_MetricName": "Percentage CPU", "AutoStop_Condition": "LessThan", "AutoStop_Description": "Alert to stop the VM if the CPU % falls below the threshold", "AutoStop_Frequency": "00:05:00", "AutoStop_Severity": "2", "AutoStop_Threshold": "5", "AutoStop_TimeAggregationOperator": "Average", "AutoStop_TimeWindow": "06:00:00", "RequestScopes":{ "Subscriptions":[ "/subscriptions/12345678-1111-2222-3333-1234567891234/", "/subscriptions/12345678-2222-4444-5555-1234567891234/" ], "ExcludedVMLists":[] } }
En el cuerpo de la solicitud, si quiere administrar las máquinas virtuales de grupos de recursos específicos, modifíquelo tal como se muestra en el ejemplo siguiente. Cada ruta de acceso a recurso especificada se debe separar con una coma. Si es necesario, puede especificar un grupo de recursos.
{ "Action": "stop", "AutoStop_Condition": "LessThan", "AutoStop_Description": "Alert to stop the VM if the CPU % falls below the threshold", "AutoStop_Frequency": "00:05:00", "AutoStop_MetricName": "Percentage CPU", "AutoStop_Severity": "2", "AutoStop_Threshold": "5", "AutoStop_TimeAggregationOperator": "Average", "AutoStop_TimeWindow": "06:00:00", "EnableClassic": false, "RequestScopes": { "ExcludedVMLists": [], "ResourceGroups": [ "/subscriptions/12345678-1111-2222-3333-1234567891234/resourceGroups/vmrg1/", "/subscriptions/12345678-1111-2222-3333-1234567891234/resourceGroupsvmrg2/", "/subscriptions/12345678-2222-4444-5555-1234567891234/resourceGroups/VMHostingRG/" ] } }
En el cuerpo de la solicitud, si quiere administrar un conjunto específico de máquinas virtuales dentro de la suscripción, modifique el cuerpo de la solicitud tal como se muestra en el ejemplo siguiente. Cada ruta de acceso a recurso especificada se debe separar con una coma. Si es necesario, puede especificar una máquina virtual.
{ "Action": "stop", "AutoStop_Condition": "LessThan", "AutoStop_Description": "Alert to stop the VM if the CPU % falls below the threshold", "AutoStop_Frequency": "00:05:00", "AutoStop_MetricName": "Percentage CPU", "AutoStop_Severity": "2", "AutoStop_Threshold": "5", "AutoStop_TimeAggregationOperator": "Average", "AutoStop_TimeWindow": "06:00:00", "EnableClassic": false, "RequestScopes": { "ExcludedVMLists": [], "VMLists": [ "/subscriptions/12345678-1111-2222-3333-1234567891234/resourceGroups/rg3/providers/Microsoft.ClassicCompute/virtualMachines/Clasyvm11", "/subscriptions/12345678-1111-2222-3333-1234567891234/resourceGroups/vmrg1/providers/Microsoft.Compute/virtualMachines/vm1" ] } }
Etiquetas de máquina virtual
También puede incluir o excluir máquinas virtuales específicas de las acciones de inicio y detención mediante etiquetas de configuración en las propias máquinas virtuales. Para agregar una etiqueta, vaya a la máquina virtual específica, seleccione Etiquetas en el menú de la izquierda y agregue una etiqueta denominada ssv2excludevm
. Para excluir esta máquina virtual de la acción de inicio o detención, establezca el valor de esta nueva etiqueta en true
. Para incluir la máquina virtual en la acción, establezca el valor en false
. Esto le proporciona una manera de excluir máquinas virtuales específicas sin tener que actualizar ExcludedVMLists
en la configuración de carga.
Pasos siguientes
Si desea aprender a supervisar el estado de las máquinas virtuales de Azure administradas por la característica Start/Stop VMs v2 y realizar otras tareas de administración, consulte el artículo Administración de Start/Stop VMs.