Compartir vía


Creación y destino de entornos

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020

En este artículo se explica cómo crear y tener como destino entornos de Azure Pipelines. Un entorno es una colección de recursos a los que puede dirigirse con implementaciones de una canalización.

Un entorno representa un destino lógico donde la canalización implementa software. Los nombres de entorno típicos son Dev, Test, QA, Staging y Production.

Nota:

Los entornos de Azure DevOps no están disponibles en canalizaciones clásicas. En el caso de las canalizaciones clásicas, los grupos de implementación ofrecen una funcionalidad similar.

Los entornos proporcionan las siguientes ventajas:

  • Historial de implementación. Los detalles de nombre y ejecución de la canalización se registran para las implementaciones en un entorno y sus recursos. En el contexto de varias canalizaciones destinadas al mismo entorno o recurso, puede usar el historial de implementación de un entorno para identificar el origen de los cambios.

  • Rastreabilidad de confirmaciones y elementos de trabajo. Puede ver los trabajos dentro de la ejecución de canalización que tienen como destino un entorno. También puede ver las confirmaciones y los elementos de trabajo que han sido recién implementados en el entorno. La rastreabilidad también le permite realizar un seguimiento de si un elemento de trabajo de confirmación de cambio de código o característica o corrección de errores alcanzó un entorno.

  • Estado de los recursos de diagnóstico. Puede validar si la aplicación funciona en su estado deseado.

  • Seguridad. Puede proteger los entornos especificando qué usuarios y canalizaciones pueden tener como destino un entorno.

Un entorno es una agrupación de recursos donde los propios recursos representan destinos de implementación reales. Los entornos de Azure Pipelines admiten actualmente los tipos de recursos de Kubernetes y máquina virtual.

Si una canalización YAML hace referencia a un entorno que no existe:

  • Cuando el usuario que realiza la operación se conoce y se pueden asignar permisos, Azure Pipelines crea automáticamente el entorno.

  • Cuando Azure Pipelines no tiene información sobre el usuario que realiza la operación, por ejemplo, en una actualización de YAML desde un editor de código externo, se produce un error en la canalización.

Requisitos previos

Para agregar un entorno, necesita los siguientes requisitos previos:

Creación de un entorno

Para crear el primer entorno:

  1. Inicie sesión en su organización de Azure DevOps en https://dev.azure.com/{yourorganization} y abra el proyecto.

  2. Seleccione Entornos> de canalizaciones>Crear entorno.

    Captura de pantalla que muestra entornos.

  3. Escriba la información del entorno y, a continuación, seleccione Crear. Puede agregar recursos a un entorno existente más adelante.

    Captura de pantalla de cómo crear un nuevo entorno.

Sugerencia

Puede crear un entorno vacío y hacer referencia a él desde trabajos de implementación para que pueda registrar el historial de implementación en el entorno.

Puede usar Azure Pipelines para implementar en entornos. Para obtener más información, consulte Compilación e implementación de Azure Kubernetes Service con Azure Pipelines.

Establecer como destino un entorno desde un trabajo de implementación

Un trabajo de implementación es una colección de pasos que se ejecutan secuencialmente. Puede usar un trabajo de implementación para tener como destino un grupo completo de entornos de recursos, como se muestra en el siguiente fragmento de código YAML de ejemplo. La canalización se ejecuta en la myVM máquina porque se especifica ese nombre de recurso.

- stage: deploy
  jobs:
  - deployment: DeployWeb
    displayName: deploy Web App
    pool:
      vmImage: 'Ubuntu-latest'
    # creates an environment if it doesn't exist
    environment: 
      name: 'smarthotel-dev'
      resourceName: myVM
      resourceType: virtualMachine
    strategy:
      runOnce:
        deploy:
          steps:
          - script: echo Hello world

Establecer como destino un recurso de entorno específico desde un trabajo de implementación

Puede definir el ámbito del destino de implementación a un recurso determinado dentro del entorno, por lo que puede registrar el historial de implementación en el recurso específico. Los pasos del trabajo de implementación heredan automáticamente los detalles de conexión del servicio del recurso al que se dirige el trabajo de implementación.

En el ejemplo siguiente, el valor de la kubernetesServiceConnection acción pasa automáticamente a la tarea de la environment.resource entrada.

environment: 
  name: 'smarthotel-dev.bookings'
strategy: 
 runOnce:
   deploy:
     steps:
     - task: KubernetesManifest@0
       displayName: Deploy to Kubernetes cluster
       inputs:
         action: deploy
         namespace: $(k8sNamespace)
         manifests: $(System.ArtifactsDirectory)/manifests/*
         imagePullSecrets: $(imagePullSecret)
         containers: $(containerRegistry)/$(imageRepository):$(tag)

Nota:

Si usa un clúster de AKS privado, asegúrese de que está conectado a la red virtual del clúster, ya que el punto de conexión del servidor de API no se expone a través de una dirección IP pública.

Azure Pipelines recomienda configurar un agente autohospedado dentro de una red virtual que tenga acceso a la red virtual del clúster. Consulte Opciones para conectarse al clúster privado para obtener más información.

Uso de comprobaciones manuales de aprobación

Para controlar las implementaciones en entornos de producción, Azure Pipelines admite comprobaciones manuales de aprobación en entornos. Las comprobaciones de aprobación están disponibles para los propietarios de recursos para controlar cuándo una fase de una canalización consume el recurso. Los propietarios de recursos pueden definir aprobaciones y comprobaciones que deben cumplirse antes de que pueda comenzar una fase que consuma ese recurso.

Los roles Creador, Administrador y Usuario del entorno, pero no el rol Lector, pueden administrar aprobaciones y comprobaciones. Como propietario del entorno, puede controlar manualmente cuándo se debe ejecutar una fase mediante comprobaciones de aprobación. Para más información, consulte Definición de aprobaciones y comprobaciones.

Consulte los entornos en los detalles de ejecución.

En la pestaña Entornos de los detalles de ejecución de la canalización, puede ver todos los entornos destinados a los trabajos de implementación de una ejecución de canalización.

Captura de pantalla que muestra entornos en los detalles de ejecución.

Nota:

Si usa un clúster privado de Azure Kubernetes Service (AKS), la pestaña Entornos no está disponible.

Visualización del historial de implementaciones

Puede seleccionar la pestaña Implementaciones en la sección Entornos de Azure Pipelines para ver el historial de implementación.

  • Vea los trabajos de todas las canalizaciones destinadas a un entorno específico. Por ejemplo, dos microservicios que cada uno tiene su propia canalización pueden implementarse en el mismo entorno. El historial de implementación ayuda a identificar todas las canalizaciones que afectan al entorno y también ayuda a visualizar la secuencia de implementaciones por cada canalización.

    Captura de pantalla que muestra la lista del historial de implementación.

  • Para explorar en profundidad los detalles del trabajo, seleccione las pestañas Cambios y elementos de trabajo en una página de implementación. Las pestañas muestran listas de confirmaciones y elementos de trabajo que se implementan en el entorno. Cada elemento de lista representa nuevos elementos de esa implementación.

    En la pestaña Cambios , la primera lista incluye todas las confirmaciones en ese punto y las siguientes listas incluyen solo los cambios de ese trabajo. Si hay varias confirmaciones vinculadas al mismo trabajo, hay varios resultados en la pestaña Cambios .

    Captura de pantalla de confirmaciones en el historial de implementación.

  • Si hay varios elementos de trabajo vinculados al mismo trabajo, hay varios resultados en la pestaña Elementos de trabajo.

    Captura de pantalla de los elementos de trabajo en el historial de implementación.

Seguridad

Puede proteger los entornos estableciendo permisos de usuario y permisos de canalización.

Permisos de usuario

Puede controlar quién puede crear, ver, usar y administrar entornos con permisos de usuario. Hay cuatro roles: Creator con un ámbito de todos los entornos, Lector, Usuario y Administrador.

Para agregar un usuario mediante el panel Permisos de usuario de un entorno, vaya al entorno específico que desea autorizar, seleccione el icono Más acciones y seleccione Seguridad.

En el panel Permisos de usuario de la página Seguridad, seleccione Agregar y, a continuación, seleccione un usuario o grupo y un rol adecuado.

En el panel Permisos de usuario, también puede establecer los permisos que se heredan e invalidar los roles del entorno.

Role Descripción
Creador Rol global, disponible en la opción de seguridad del centro de entornos. Los miembros con este rol pueden crear el entorno en el proyecto. Los colaboradores se agregan como miembros de forma predeterminada. Es necesario para desencadenar una canalización YAML cuando el entorno aún no existe.
Lector Los miembros con este rol pueden ver el elemento.
User Los miembros con este rol pueden usar el entorno al crear o editar canalizaciones YAML.
Administrador Los miembros de este rol pueden administrar permisos, crear, administrar, ver y usar entornos. Para un entorno determinado, su creador se agrega como administrador de forma predeterminada. Los administradores también puede abrir el acceso a un entorno a todas las canalizaciones.

Importante

Cuando se crea un entorno, solo el creador tiene el rol Administrador.

Role Descripción
Creador Rol global, disponible en la opción de seguridad del centro de entornos. Los miembros con este rol pueden crear el entorno en el proyecto. Los colaboradores se agregan como miembros de forma predeterminada. Es necesario para desencadenar una canalización YAML cuando el entorno aún no existe.
Lector Los miembros con este rol pueden ver el elemento.
User Los miembros con este rol pueden usar el entorno al crear o editar canalizaciones YAML.
Administrador Además de utilizar el entorno, los miembros con este rol pueden gestionar la pertenencia a todos los demás roles al entorno. Los creadores se agregan como miembros de forma predeterminada.

Permisos de canalización

Use el panel Permisos de canalización de la página Seguridad para autorizar todas o las canalizaciones seleccionadas para la implementación en el entorno.

  • Para quitar el acceso abierto en el entorno o recurso, seleccione Restringir permiso en Permisos de canalización.

  • Cuando los permisos están restringidos, puede permitir que las canalizaciones específicas se implementen en el entorno o en un recurso específico. Seleccione + y elija en la lista de canalizaciones que se van a permitir.

Preguntas más frecuentes

¿Por qué obtengo un mensaje de error al intentar crear un entorno?

Si ve el mensaje Acceso denegado: {User} necesita Crear permisos para realizar la acción, vaya a Configuración de>la organización Usuarios para comprobar si tiene el rol Partes interesadas. El rol Partes interesadas no puede crear entornos porque las partes interesadas no tienen acceso al repositorio.

Cambie el nivel de acceso y compruebe si puede crear entornos. Para obtener más información, consulte Preguntas más frecuentes sobre la administración de usuarios y permisos.

¿Por qué recibo un error que dice que no se puede encontrar un entorno?

Si ve el mensaje Job XXXX: Environment XXXX no se encontró. El entorno no existe o no se ha autorizado para su uso. Hay varias posibles razones para el error.

  • Los parámetros en tiempo de ejecución no funcionan al crear el entorno porque solo se expanden en el tiempo de ejecución. Puede usar variables para crear un entorno o usar templateContext para pasar propiedades a plantillas.

  • Es posible que Azure Pipelines no tenga información sobre el usuario que crea el entorno.

    Cuando hace referencia a un entorno que no existe en el archivo de canalización YAML, Azure Pipelines crea automáticamente el entorno en los siguientes casos:

    • Utilizas el asistente de creación de canalizaciones YAML en la experiencia web de Azure Pipelines y haces referencia a un entorno que aún no está creado.
    • Actualizas el archivo YAML con el editor web de Azure Pipelines y guardas la canalización después de agregar la referencia al entorno.

    En los casos siguientes, Azure Pipelines no tiene información sobre el usuario que crea el entorno, por lo que se produce un error en la canalización.

    • El archivo YAML se actualiza mediante otro editor de código externo.
    • Agrega una referencia a un entorno que no existe y, a continuación, hace que se desencadene una canalización de integración manual o continua.

    Anteriormente, Azure Pipelines ha controlado estos casos agregando todos los colaboradores del proyecto al rol de administrador del entorno. Cualquier miembro del proyecto podría cambiar estos permisos e impedir que otros usuarios accedan al entorno. Para evitar este resultado, Azure Pipelines produce un error en estos trabajos.