Creación de personalizaciones de equipos de desarrollo reutilizables
La personalización de Microsoft Dev Box es un enfoque de configuración como código para personalizar equipos de desarrollo. En este artículo, aprenderá a personalizar los equipos de desarrollo mediante un catálogo de tareas y un archivo de configuración para instalar software, agregar extensiones, clonar repositorios, etc. Estas tareas se aplican al nuevo equipo de desarrollo en la fase final del proceso de creación. Puede agregar configuraciones y software sin tener que crear una imagen de máquina virtual (VM) personalizada.
Las personalizaciones son útiles para los equipos de desarrollo. Los responsables del equipo de desarrolladores pueden usar personalizaciones para preconfigurar el software necesario para su equipo de desarrollo específico y crear archivos de configuración que solo aplican las tareas pertinentes para sus equipos. Este método permite a los desarrolladores crear los equipos de desarrollo que mejor se adapten a su trabajo, sin necesidad de solicitar cambios al departamento de TI o esperar a que el equipo de ingeniería cree una imagen de máquina virtual personalizada.
Mediante el uso de personalizaciones, puede automatizar los pasos comunes de configuración, ahorrar tiempo y reducir la posibilidad de errores de configuración. Algunas tareas de ejemplo incluyen:
- Instalación de software con el administrador de paquetes WinGet.
- Establecer la configuración del sistema operativo, como habilitar las características de Windows.
- Configurar aplicaciones como instalar extensiones de Visual Studio.
Puede adoptar personalizaciones por etapas, a partir de una configuración sencilla pero funcional hasta llegar a un proceso automatizado. Las fases son las siguientes:
- Creación de un equipo de desarrollo personalizado mediante un archivo de configuración de ejemplo
- Escritura de un archivo de configuración
- Uso compartido de un archivo de configuración desde un repositorio de código
- Definición de nuevas tareas en un catálogo
- Uso de secretos desde un Azure Key Vault
Importante
Actualmente, las personalizaciones de Microsoft Dev Box se encuentran en VERSIÓN PRELIMINAR. Consulte Términos de uso complementarios para las versiones preliminares de Microsoft Azure para conocer los términos legales que se aplican a las características de Azure que se encuentran en la versión beta, en versión preliminar o que todavía no se han publicado para que estén disponibles con carácter general.
Requisitos previos
- Para completar los pasos de este artículo, debe tener un centro de desarrollo configurado con una definición de equipo de desarrollo, un grupo de equipos de desarrollo y un proyecto de equipo de desarrollo.
Permisos necesarios para configurar Microsoft Dev Box para las personalizaciones
Para realizar las acciones necesarias para crear y aplicar personalizaciones a un equipo de desarrollo, necesita determinados permisos. En la tabla siguiente, se describen las acciones y los permisos o roles que necesita para configurar las personalizaciones.
Action | Permiso / Rol |
---|---|
Adjuntar un catálogo a un centro de desarrollo | Ingeniero de plataformas con permiso de colaborador en el centro de desarrollo. |
Uso del portal para desarrolladores para cargar y aplicar un archivo yaml durante la creación del equipo de desarrollo | Usuario de Dev Box |
Creación de un archivo de configuración | Cualquier persona puede crear un archivo de configuración. |
Agregar tareas a un catálogo | Permiso para agregar al repositorio que hospeda el catálogo. |
Creación de un equipo de desarrollo personalizado mediante un archivo de configuración de ejemplo
Use el catálogo de inicio rápido predeterminado y un archivo de configuración de ejemplo para empezar a trabajar con personalizaciones.
Asociación del catálogo de inicio rápido
Adjuntar un catálogo con tareas de personalización a un centro de desarrollo significa que puede crear un equipo de desarrollo en ese centro de desarrollo y hacer referencia a las tareas de personalización de ese catálogo. Microsoft proporciona un repositorio de ejemplo en GitHub con un conjunto estándar de tareas predeterminadas para ayudarle a empezar, conocido como catálogo de inicio rápido.
Para adjuntar el catálogo de inicio rápido al centro de desarrollo:
Inicie sesión en el portal para desarrolladores de Microsoft Dev Box.
En el menú de la izquierda, en Configuración del entorno, seleccione Catálogos y, luego, elija Agregar.
En Agregar catálogo, seleccione Tareas de personalización del equipo de desarrollo como catálogo de inicio rápido. Luego, seleccione Agregar.
En el centro de desarrollo, seleccione Catálogos y compruebe que aparece el catálogo.
Si la conexión se realiza correctamente, el estado se muestra como Sincronización correcta.
Crear el equipo de desarrollo personalizado
Ahora tiene un catálogo que define las tareas que los desarrolladores pueden usar. Puede hacer referencia a esas tareas desde un archivo de configuración y crear un cuadro de desarrollo personalizado.
Descargue una configuración de yaml de ejemplo desde el repositorio de ejemplos. Esta configuración de ejemplo instala Visual Studio Code y clona el repositorio de aplicaciones web de OrchardCore .NET en el equipo de desarrollo.
Inicie sesión en el portal para desarrolladores de Microsoft Dev Box.
Seleccione Nuevo>Dev Box.
En el Cuadro Agregar un desarrollo, escriba los valores siguientes y a continuación, seleccione Continuar:
Configuración Value Nombre Escriba un nombre para el equipo de desarrollo. Los nombres de los equipos de desarrollo deben ser únicos dentro de un proyecto. Proyecto Seleccione un proyecto en la lista desplegable. Grupo de equipos de desarrollo Seleccione un grupo en la lista desplegable, que incluye todos los grupos de equipos de desarrollo de ese proyecto. Elija un grupo de equipos de desarrollo cerca de usted para una latencia mínima. Aplicar personalizaciones Seleccione Aplicar personalizaciones. En la página Personalizar el cuadro de desarrollo, seleccione Cargar un archivo de personalización, y a continuación, seleccione Agregar personalizaciones del archivo.
Vaya a la ubicación del archivo de configuración de yaml de ejemplo que descargó y a continuación, seleccione Abrir.
Compruebe que el archivo de configuración aparece en Cargar un archivo de personalización, y a continuación, seleccione Validar.
Después de que Dev Box valide el archivo de configuración, seleccione Continuar.
En la página de Resumen de creación de Dev Box, Dev Box muestra las tareas que aplicará. Seleccione Crear.
Una vez completado el proceso de creación, el nuevo equipo de desarrollo tiene nodejs y Visual Studio Code instalado.
Para obtener más ejemplos, consulte el repositorio de ejemplos del Centro de desarrollo en GitHub.
Sugerencia
Como alternativa al portal para desarrolladores, puede usar Dev Home para crear, personalizar y conectarse a los equipos de desarrollo. Dev Home es una aplicación nativa de Windows que proporciona un único lugar para administrar los equipos de desarrollo. Obtenga más información sobre Dev Home en Creación de personalizaciones de equipo de desarrollo reutilizables con Dev Home.
¿Qué es un archivo de configuración?
Las personalizaciones de Dev Box usan un archivo con formato yaml para especificar una lista de tareas que se aplicarán desde el catálogo al crear un nuevo equipo de desarrollo. Estos archivos de configuración incluyen una o varias tareas ("tasks"), que identifican la tarea de catálogo y proporcionan parámetros como el nombre del software que se va a instalar. A continuación, el archivo de configuración estará disponible para los desarrolladores que crean nuevos equipos de desarrollo. En el ejemplo siguiente, se usa una tarea winget para instalar Visual Studio Code y una tarea git clone
para clonar un repositorio.
# From https://github.com/microsoft/devcenter-examples
$schema: 1.0
tasks:
- name: winget
parameters:
package: Microsoft.VisualStudioCode
runAsUser: true
- name: git-clone
description: Clone this repository into C:\Workspaces
parameters:
repositoryUrl: https://github.com/OrchardCMS/OrchardCore.git
directory: C:\Workspaces
¿Qué son las tareas?
Una tarea realiza una acción específica, como instalar software. Cada tarea consta de uno o varios scripts de PowerShell, junto con un archivo task.yaml que proporciona parámetros y define cómo se ejecutan los scripts. También puede incluir un comando de PowerShell en el archivo task.yaml. Puede almacenar una colección de tareas mantenidas en un catálogo adjunto al centro de desarrollo, con cada tarea en una carpeta independiente. Dev Box admite el uso de un repositorio de GitHub o un repositorio de Azure DevOps como catálogo y examina una carpeta especificada del catálogo de forma recursiva para buscar definiciones de tareas.
Microsoft proporciona un catálogo de inicio rápido para ayudarle a empezar a trabajar con personalizaciones. Incluye un conjunto predeterminado de tareas que definen tareas comunes:
- Instalación de software con el administrador de paquetes WinGet.
- Implemente la configuración de estado deseada (DSC) mediante la configuración de WinGet.
- Clonación de un repositorio mediante git-clone.
- Configurar aplicaciones como instalar extensiones de Visual Studio.
- Ejecución de scripts de PowerShell.
Personalizar el cuadro de desarrollo mediante archivos de configuración de WinGet existentes
La configuración de WinGet adopta un enfoque de configuración como código para definir los conjuntos únicos de valores de software y configuración necesarios para obtener el entorno de Windows en un estado listo para codificar. Estos archivos de configuración también se pueden usar para configurar un Dev Box, mediante una tarea WinGet incluida en el catálogo de inicio rápido proporcionado por Microsoft mencionado anteriormente.
En el ejemplo siguiente se muestra un archivo de personalización de equipo de desarrollo que llama a un archivo DSC de WinGet existente.
tasks:
- name: winget
parameters:
configure: "projectConfiguration.dsc.yaml"
Para obtener más información sobre la configuración de WinGet, consulte Configuración de WinGet.
Escritura de un archivo de configuración
Puede definir nuevas tareas para aplicarlas a los equipos de desarrollo mediante la creación de su propio archivo de configuración. Puede probar el archivo de configuración en Visual Studio Code y realizar los cambios necesarios sin necesidad de crear un equipo de desarrollo independiente para cada prueba.
Para poder crear y probar su propio archivo de configuración, debe haber un catálogo que contenga tareas asociadas al centro de desarrollo. Puede usar una extensión de Visual Studio Code para detectar las tareas del catálogo adjunto.
Cree una instancia de Dev Box (o use una instancia de Dev Box existente) para realizar pruebas.
En el equipo de desarrollo de prueba, instale Visual Studio Code e instale la extensión de Dev Box v1.2.2 VS Code.
Descargue un archivo de configuración yaml de ejemplo desde el repositorio de ejemplos y ábralo en Visual Studio Code.
Descubra las tareas disponibles en el catálogo mediante la paleta de comandos. En Ver>Paleta de comandos, seleccione Dev Box: enumerar las tareas disponibles para este equipo de desarrollo.
Pruebe la configuración en Visual Studio Code mediante f5/command palette. En Ver>Paleta de comandos, seleccione Dev Box: aplicar tareas de personalización.
El archivo de configuración se ejecuta inmediatamente, aplicando las tareas especificadas al equipo de desarrollo de prueba. Inspeccione los cambios y compruebe el terminal de Visual Studio Code en busca de errores o advertencias generados durante la ejecución de la tarea.
Cuando el archivo de configuración se ejecute correctamente, compártalo con los desarrolladores para cargarlo cuando creen un equipo de desarrollo.
Sugerencia
Como alternativa a Visual Studio Code, puede usar Dev Home para crear y validar un archivo de configuración en una interfaz gráfica de usuario. Obtenga más información sobre Dev Home en Creación de personalizaciones de equipo de desarrollo reutilizables con Dev Home.
Nota:
La capacidad de crear y cargar un archivo no es un riesgo de seguridad; el archivo cargado solo puede aplicar la configuración definida en el catálogo adjunto al centro de desarrollo. Si la tarea no está definida allí, el desarrollador obtendrá un error que indica que la tarea no está definida.
Uso compartido de un archivo de configuración desde un repositorio de código
Haga que el archivo de configuración esté disponible sin problemas para los desarrolladores al asignarle el nombre workload.yaml y cargarlo en un repositorio accesible para los desarrolladores, por lo general, su repositorio de codificación. Cuando crea un equipo de desarrollo, usted especifica la dirección URL del repositorio y el archivo de configuración se clona junto con el resto del repositorio. El equipo de desarrollo busca en el repositorio un archivo denominado workload.yaml y, si se encuentra uno, realiza las tareas enumeradas. Esta configuración proporciona una manera sencilla de realizar personalizaciones en un equipo de desarrollo.
Cree un archivo de configuración denominado workload.yaml.
Agregue el archivo de configuración a la raíz de un repositorio privado de Azure Repos con el código y confírmelo.
Inicie sesión en el portal para desarrolladores de Microsoft Dev Box.
Seleccione Nuevo>Dev Box.
En el Cuadro Agregar un desarrollo, escriba los valores siguientes y a continuación, seleccione Continuar:
Configuración Value Nombre Escriba un nombre para el equipo de desarrollo. Los nombres de los equipos de desarrollo deben ser únicos dentro de un proyecto. Proyecto Seleccione un proyecto en la lista desplegable. Grupo de equipos de desarrollo Seleccione un grupo en la lista desplegable, que incluye todos los grupos de equipos de desarrollo de ese proyecto. Elija un grupo de equipos de desarrollo cerca de usted para una latencia mínima. Aplicar personalizaciones Seleccione Aplicar personalizaciones. En la página Personalizar el equipo de desarrollo, seleccione Elegir un archivo de personalización de un repositorio, en Dirección URL del repositorio de Azure DevOps, escriba la dirección URL del repositorio que hospeda el archivo de configuración que desea aplicar y a continuación, seleccione Continuar.
En la página de Resumen de creación de Dev Box, Dev Box muestra las tareas que aplicará. Seleccione Crear.
Una vez completado el proceso de creación, el nuevo equipo de desarrollo tiene nodejs y Visual Studio Code instalado.
El nuevo equipo de desarrollo tiene todas las instrucciones del archivo de configuración aplicadas y los repositorios solicitados clonados.
Definición de nuevas tareas en un catálogo
La creación de nuevas tareas en un catálogo le permite crear personalizaciones adaptadas a los equipos de desarrollo y agregar límites de protección en torno a las configuraciones que son posibles.
Cree un repositorio para almacenar las tareas.
De manera opcional, puede realizar una copia del catálogo de inicio rápido en su propio repositorio para usarlo como punto de partida.
Cree tareas en el repositorio modificando los scripts de PowerShell existentes o creando nuevos scripts.
Para empezar a crear tareas, puede usar los ejemplos proporcionados en el repositorio de ejemplos del centro de desarrollo en GitHub y la documentación de PowerShell.
Adjunte el repositorio al centro de desarrollo como catálogo.
Cree un archivo de configuración para esas tareas siguiendo los pasos descritos en Escritura de un archivo de configuración.
Uso de secretos desde un Azure Key Vault
Puede usar secretos de Azure Key Vault en las configuraciones de yaml para clonar repositorios privados o con cualquier tarea personalizada que cree que requiera un token de acceso.
Para configurar los secretos de Key Vault para usarlos en las configuraciones de yaml,
Asegúrese de que la identidad administrada del proyecto del centro de desarrollo tenga el rol Lector de Key Vault y el rol de usuario secretos de Key Vault en el almacén de claves.
Conceda el rol de usuario de Secretos para el secreto de Key Vault a cada usuario o grupo de usuarios que debería poder consumir el secreto durante la personalización de un equipo de desarrollo. El usuario o grupo al que se le ha concedido el rol debe incluir la identidad administrada para el centro de desarrollo, su propia cuenta de usuario y cualquier usuario o grupo que necesite el secreto durante la personalización de un equipo de desarrollo.
Para más información, vea:
- Más información sobre la Configuración de una identidad administrada para un centro de desarrollo.
- Más información sobre la Concesión a la identidad administrada de acceso al secreto del almacén de claves.
Puede hacer referencia al secreto en la configuración de yaml en el formato siguiente, mediante la tarea git-clone como ejemplo:
$schema: "1.0"
tasks:
name: git-clone
description: Clone this repository into C:\Workspaces
parameters:
repositoryUrl: https://myazdo.visualstudio.com/MyProject/_git/myrepo
directory: C:\Workspaces
pat: '{{KEY_VAULT_SECRET_URI}}'
Si desea clonar un repositorio privado de Azure DevOps (Azure Repos), no es necesario configurar un secreto en Key Vault. En su lugar, puede usar {{ado}}
o {{ado://your-ado-organization-name}}
como parámetro. Esto captura un token de acceso en su nombre al crear un equipo de desarrollo, que tiene permiso de solo lectura para el repositorio. La tarea git-clone del catálogo de inicio rápido usa el token de acceso para clonar el repositorio. Este es un ejemplo:
tasks:
name: git-clone
description: Clone this repository into C:\Workspaces
parameters:
repositoryUrl: https://myazdo.visualstudio.com/MyProject/_git/myrepo
directory: C:\Workspaces
pat: '{{ado://YOUR_ADO_ORG}}'
Si las directivas de su organización requieren que mantenga la instancia de Key Vault privada de Internet, puede establecer Key Vault para permitir que los servicios de Microsoft de confianza omitan la regla de firewall.
Para saber cómo permitir que los servicios de confianza de Microsoft eviten el firewall, consulte Configuración de red de Azure Key Vault.