Partilhar via


Crie personalizações de caixa de desenvolvimento reutilizáveis

A personalização do Microsoft Dev Box é uma abordagem de configuração como código para personalizar caixas de desenvolvimento. Neste artigo, você aprenderá a personalizar caixas de desenvolvimento usando um catálogo de tarefas e um arquivo de configuração para instalar software, adicionar extensões, clonar repositórios e muito mais. Essas tarefas são aplicadas à nova caixa de desenvolvimento no estágio final do processo de criação. Você pode adicionar configurações e software sem precisar criar uma imagem de máquina virtual (VM) personalizada.

As personalizações são úteis para as equipes de desenvolvimento. Os líderes da equipe de desenvolvedores podem usar personalizações para pré-configurar o software necessário para sua equipe de desenvolvimento específica e criar arquivos de configuração que aplicam apenas as tarefas relevantes para suas equipes. Esse método permite que os desenvolvedores criem caixas de desenvolvimento que melhor se adaptem ao seu trabalho, sem a necessidade de pedir alterações à TI ou esperar que a equipe de engenharia crie uma imagem de VM personalizada.

Usando personalizações, você pode automatizar etapas comuns de configuração, economizar tempo e reduzir a chance de erros de configuração. Alguns exemplos de tarefas incluem:

  • Instalando o software com o gerenciador de pacotes WinGet.
  • Definir as configurações do sistema operacional, como habilitar os recursos do Windows.
  • Configurando aplicativos como instalar extensões do Visual Studio.

Você pode adotar personalizações em etapas, construindo a partir de uma configuração simples, mas funcional, para um processo automatizado. As etapas são as seguintes:

  1. Criar uma caixa de desenvolvimento personalizada usando um arquivo de configuração de exemplo
  2. Escrever um arquivo de configuração
  3. Compartilhar um arquivo de configuração de um repositório de código
  4. Definir novas tarefas em um catálogo
  5. Usar segredos de um Cofre de Chaves do Azure

Importante

As personalizações no Microsoft Dev Box estão atualmente em visualização. Veja Termos de Utilização Complementares da Pré-visualizações do Microsoft Azure para obter os termos legais que se aplicam às funcionalidades do Azure que estão na versão beta, na pré-visualização ou que ainda não foram lançadas para disponibilidade geral.

Pré-requisitos

Criar uma caixa de desenvolvimento personalizada usando um arquivo de configuração de exemplo

Use o catálogo de início rápido padrão e um arquivo de configuração de exemplo para começar a usar personalizações.

Anexar o catálogo de início rápido

Anexar um catálogo com tarefas de personalização a um centro de desenvolvimento significa que você pode criar uma caixa de desenvolvimento nesse centro de desenvolvimento e fazer referência às tarefas de personalização desse catálogo. A Microsoft fornece um repositório de exemplo no GitHub com um conjunto padrão de tarefas padrão para ajudá-lo a começar, conhecido como catálogo de início rápido.

Para anexar o catálogo de início rápido ao centro de desenvolvimento:

  1. Entre no portal do desenvolvedor do Microsoft Dev Box.

  2. No menu à esquerda, em Configuração do ambiente, selecione Catálogos e, em seguida, selecione Adicionar.

  3. Em Adicionar catálogo, selecione Tarefas de personalização da caixa de desenvolvimento como o catálogo de início rápido. Em seguida, selecione Adicionar.

  4. No centro de desenvolvimento, selecione Catálogos e verifique se o catálogo aparece.

    Captura de ecrã do portal do Azure a mostrar o painel Adicionar catálogo com o catálogo de início rápido da Microsoft e as tarefas de personalização da caixa de desenvolvimento realçadas.

    Se a conexão for bem-sucedida, o Status será exibido como Sincronização bem-sucedida.

Crie sua caixa de desenvolvimento personalizada

Agora você tem um catálogo que define as tarefas que seus desenvolvedores podem usar. Você pode fazer referência a essas tarefas a partir de um arquivo de configuração e criar uma caixa de desenvolvimento personalizada.

  1. Faça o download de um exemplo de configuração yaml do repositório de amostras. Este exemplo de configuração instala o Visual Studio Code e clona o repositório do aplicativo Web OrchardCore .NET para sua caixa de desenvolvimento.

  2. Entre no portal do desenvolvedor do Microsoft Dev Box.

  3. Selecione Nova>caixa de desenvolvimento.

  4. Em Adicionar uma caixa de desenvolvimento, insira os seguintes valores e selecione Continuar:

    Definição Valor
    Nome Insira um nome para sua caixa de desenvolvimento. Os nomes das caixas de desenvolvimento devem ser exclusivos dentro de um projeto.
    Projeto Selecione um projeto na lista suspensa.
    Pool de caixas de desenvolvimento Selecione um pool na lista suspensa, que inclui todos os pools de caixas de desenvolvimento para esse projeto. Escolha um pool de caixas de desenvolvimento perto de você para obter a menor latência.
    Aplicar personalizações Selecione Aplicar personalizações.

    Captura de tela mostrando as opções de personalização da caixa de desenvolvimento no portal do desenvolvedor com Arquivos de personalização carregados realçados.

  5. Na página Personalizar sua caixa de desenvolvimento, selecione Carregar um arquivo de personalização e, em seguida, selecione Adicionar personalizações do arquivo.

    Captura de tela mostrando a página Personalizar sua caixa de desenvolvimento com Carregar um arquivo de personalização e Adicionar personalizações do arquivo realçado.

  6. Navegue até o local do arquivo de configuração yaml de exemplo que você baixou e selecione Abrir.

  7. Verifique se o arquivo de configuração está listado em Carregar um arquivo de personalização e selecione Validar.

    Captura de tela mostrando a página Personalizar sua caixa de desenvolvimento com o arquivo de personalização carregado listado e Validar realçado.

  8. Depois que o Dev Box validar o arquivo de configuração, selecione Continuar.

    Captura de ecrã a mostrar a mensagem de êxito da validação da tarefa de personalização e Continuar realçada.

  9. Na página Resumo da criação da caixa de desenvolvimento, a caixa de desenvolvimento exibe as tarefas que serão aplicadas. Selecione Criar.

    Captura de tela mostrando a página de resumo de criação da caixa de desenvolvimento com o botão Criar realçado.

Quando o processo de criação estiver concluído, a nova caixa de desenvolvimento terá nodejs e Visual Studio Code instalados.

Para obter mais exemplos, consulte o repositório de exemplos do centro de desenvolvimento no GitHub.

Gorjeta

Como alternativa ao portal do desenvolvedor, você pode usar o Dev Home para criar, personalizar e se conectar às suas caixas de desenvolvimento. O Dev Home é um aplicativo nativo do Windows que fornece um único local para gerenciar suas caixas de desenvolvimento. Saiba mais sobre o Dev Home em Criar personalizações de caixa de desenvolvimento reutilizáveis com o Dev Home.

O que é um arquivo de configuração?

As personalizações da Caixa de Desenvolvimento usam um arquivo formatado em yaml para especificar uma lista de tarefas a serem aplicadas a partir do catálogo ao criar uma nova caixa de desenvolvimento. Esses arquivos de configuração incluem uma ou mais 'tarefas', que identificam a tarefa de catálogo e fornecem parâmetros como o nome do software a ser instalado. O arquivo de configuração é então disponibilizado para os desenvolvedores criarem novas caixas de desenvolvimento. O exemplo a seguir usa uma tarefa winget para instalar o Visual Studio Code e uma git clone tarefa para clonar um repositório.

# 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

O que são tarefas?

Uma tarefa executa uma ação específica, como instalar software. Cada tarefa consiste em um ou mais scripts do PowerShell, juntamente com um arquivo task.yaml que fornece parâmetros e define como os scripts são executados. Você também pode incluir um comando do PowerShell no arquivo task.yaml. Você pode armazenar uma coleção de tarefas selecionadas em um catálogo anexado ao seu centro de desenvolvimento, com cada tarefa em uma pasta separada. O Dev Box dá suporte ao uso de um repositório GitHub ou um repositório do Azure DevOps como um catálogo e verifica uma pasta especificada do catálogo recursivamente para localizar definições de tarefas.

A Microsoft fornece um catálogo de início rápido para ajudá-lo a começar com personalizações. Ele inclui um conjunto padrão de tarefas que definem tarefas comuns:

  • Instalando o software com o gerenciador de pacotes WinGet.
  • Implante a configuração de estado desejado (DSC) usando a Configuração do WinGet.
  • Clonagem de um repositório usando git-clone.
  • Configurando aplicativos como instalar extensões do Visual Studio.
  • Executando scripts do PowerShell.

Personalize sua caixa de desenvolvimento usando arquivos de configuração do WinGet existentes

O WinGet Configuration adota uma abordagem de configuração como código para definir os conjuntos exclusivos de software e definições de configuração necessários para colocar seu ambiente Windows em um estado pronto para codificar. Esses arquivos de configuração também podem ser usados para configurar uma caixa de desenvolvimento, usando uma tarefa WinGet incluída no catálogo de início rápido fornecido pela Microsoft mencionado anteriormente.

O exemplo a seguir mostra um arquivo de personalização da caixa de desenvolvimento que chama um arquivo WinGet DSC existente.

tasks:
    - name: winget
      parameters:
          configure: "projectConfiguration.dsc.yaml"

Para saber mais sobre a configuração do WinGet, consulte Configuração do WinGet.

Permissões necessárias para configurar o Microsoft Dev Box para personalizações

Para executar as ações necessárias para criar e aplicar personalizações a uma caixa de desenvolvimento, você precisa de determinadas permissões. A tabela a seguir descreve as ações e permissões ou funções necessárias para configurar personalizações.

Ação Permissão / Função
Anexar um catálogo a um centro de desenvolvimento Engenheiro de plataforma com permissão de Colaborador para o centro de desenvolvimento.
Use o portal do desenvolvedor para carregar e aplicar um arquivo yaml durante a criação da caixa de desenvolvimento Usuário do Dev Box
Criar um arquivo de configuração Qualquer pessoa pode criar um arquivo de configuração.
Adicionar tarefas a um catálogo Permissão para adicionar ao repositório que hospeda o catálogo.

Escrever um ficheiro de configuração

Você pode definir novas tarefas para aplicar às suas caixas de desenvolvimento criando seu próprio arquivo de configuração. Você pode testar seu arquivo de configuração no Visual Studio Code e fazer as alterações necessárias sem a necessidade de criar uma caixa de desenvolvimento separada para cada teste.

Antes de criar e testar seu próprio arquivo de configuração, deve haver um catálogo que contenha tarefas anexadas ao centro de desenvolvimento. Você pode usar uma extensão de código do Visual Studio para descobrir as tarefas no catálogo anexado.

  1. Crie uma Caixa de Desenvolvimento (ou use uma Caixa de Desenvolvimento existente) para teste.

  2. Na caixa de desenvolvimento de teste, instale o Visual Studio Code e, em seguida, instale a extensão Dev Box v1.2.2 VS Code.

  3. Baixe um exemplo de arquivo de configuração yaml do repositório de exemplos e abra-o no Visual Studio Code.

  4. Descubra as tarefas disponíveis no catálogo usando a paleta de comandos. Em View>Command Palette, selecione Dev Box: Liste as tarefas disponíveis para esta caixa de desenvolvimento.

    Captura de tela do Visual Studio Code mostrando a paleta de comandos com a Lista de Caixa de Desenvolvimento tarefas disponíveis para esta caixa de desenvolvimento realçada.

  5. Teste a configuração no Visual Studio Code usando a paleta f5/command. Em Exibir>paleta de comandos, selecione Caixa de desenvolvimento: aplicar tarefas de personalização.

    Captura de tela do Visual Studio Code mostrando a paleta de comandos com as tarefas de personalização Dev Box Apply realçadas.

  6. O arquivo de configuração é executado imediatamente, aplicando as tarefas especificadas à sua caixa de desenvolvimento de teste. Inspecione as alterações e verifique o terminal do Visual Studio Code para quaisquer erros ou avisos gerados durante a execução da tarefa.

  7. Quando o arquivo de configuração for executado com êxito, compartilhe-o com os desenvolvedores para carregá-lo quando eles criarem uma nova caixa de desenvolvimento.

Gorjeta

Como alternativa ao Visual Studio Code, você pode usar o Dev Home para criar e validar um arquivo de configuração em uma interface gráfica do usuário. Saiba mais sobre o Dev Home em Criar personalizações de caixa de desenvolvimento reutilizáveis com o Dev Home.

Nota

A capacidade de criar e carregar um ficheiro não é um risco de segurança; O arquivo carregado só pode aplicar as configurações definidas no catálogo anexado ao Centro de Desenvolvimento. Se a tarefa não estiver definida lá, o desenvolvedor receberá um erro dizendo que a tarefa não está definida.

Compartilhar um arquivo de configuração de um repositório de código

Torne seu arquivo de configuração perfeitamente disponível para seus desenvolvedores nomeando-o como workload.yaml e carregando-o para um repositório acessível aos desenvolvedores, geralmente seu repositório de codificação. Ao criar uma caixa de desenvolvimento, você especifica a URL do repositório e o arquivo de configuração é clonado junto com o restante do repositório. A caixa Dev pesquisa no repositório um arquivo chamado workload.yaml e, se estiver localizado, executa as tarefas listadas. Essa configuração fornece uma maneira perfeita de executar personalizações em uma caixa de desenvolvimento.

  1. Crie um arquivo de configuração chamado workload.yaml.

  2. Adicione o arquivo de configuração à raiz de um repositório privado do Azure Repos com seu código e confirme-o.

  3. Entre no portal do desenvolvedor do Microsoft Dev Box.

  4. Selecione Nova>caixa de desenvolvimento.

  5. Em Adicionar uma caixa de desenvolvimento, insira os seguintes valores e selecione Continuar:

    Definição Valor
    Nome Insira um nome para sua caixa de desenvolvimento. Os nomes das caixas de desenvolvimento devem ser exclusivos dentro de um projeto.
    Projeto Selecione um projeto na lista suspensa.
    Pool de caixas de desenvolvimento Selecione um pool na lista suspensa, que inclui todos os pools de caixas de desenvolvimento para esse projeto. Escolha um pool de caixas de desenvolvimento perto de você para obter a menor latência.
    Aplicar personalizações Selecione Aplicar personalizações.

    Captura de tela mostrando as opções de personalização da caixa de desenvolvimento no portal do desenvolvedor com Arquivos de personalização carregados realçados.

  6. Na página Personalizar sua caixa de desenvolvimento, selecione Escolher um arquivo de personalização de um repositório, na URL do repositório do Azure DevOps, insira a URL do repositório que hospeda o arquivo de configuração que você deseja aplicar e selecione Continuar.

    Captura de tela mostrando a página Personalizar sua caixa de desenvolvimento com Escolha um arquivo de personalização de um repositório e URL do repositório do Azure DevOps.

  7. Na página Resumo da criação da caixa de desenvolvimento, a caixa de desenvolvimento exibe as tarefas que serão aplicadas. Selecione Criar.

Quando o processo de criação estiver concluído, a nova caixa de desenvolvimento terá nodejs e Visual Studio Code instalados.

A nova caixa de desenvolvimento tem o repositório clonado e todas as instruções do arquivo de configuração aplicadas.

Definir novas tarefas em um catálogo

Criar novas tarefas em um catálogo permite que você crie personalizações personalizadas para suas equipes de desenvolvimento e adicione guarda-corpos em torno das configurações possíveis.

  1. Crie um repositório para armazenar suas tarefas.

    Opcionalmente, você pode fazer uma cópia do catálogo de início rápido em seu próprio repositório para usar como ponto de partida.

  2. Crie tarefas em seu repositório modificando scripts PowerShell existentes ou criando novos scripts.

    Para começar a criar tarefas, você pode usar os exemplos fornecidos no repositório de exemplos do centro de desenvolvimento na documentação do GitHub e do PowerShell.

  3. Anexe seu repositório ao centro de desenvolvimento como um catálogo.

  4. Crie um arquivo de configuração para essas tarefas seguindo as etapas em Gravar um arquivo de configuração.

Usar segredos de um Cofre de Chaves do Azure

Você pode usar segredos do seu Cofre de Chaves do Azure em suas configurações de yaml para clonar repositórios privados ou com qualquer tarefa personalizada criada que exija um token de acesso.

Para configurar seus segredos do Cofre da Chave para uso em suas configurações de yaml,

  1. Certifique-se de que a identidade gerenciada do seu projeto do centro de desenvolvimento tenha a função Key Vault Reader e Key Vault Secrets User no seu cofre de chaves.

  2. Conceda a função Usuário de Segredos para o segredo do Cofre de Chaves a cada usuário ou grupo de usuários que deve ser capaz de consumir o segredo durante a personalização de uma caixa de desenvolvimento. O usuário ou grupo concedido à função deve incluir a identidade gerenciada para o centro de desenvolvimento, sua própria conta de usuário e qualquer usuário ou grupo que precise do segredo durante a personalização de uma caixa de desenvolvimento.

Para obter mais informações, consulte:

Você pode fazer referência ao segredo em sua configuração yaml no seguinte formato, usando a tarefa git-clone como exemplo:

$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}}'

Se desejar clonar um repositório privado do Azure DevOps (Azure Repos), não será necessário configurar um segredo no Cofre da Chave. Em vez disso, você pode usar {{ado}}o , ou {{ado://your-ado-organization-name}} como um parâmetro. Isso busca um token de acesso em seu nome ao criar uma caixa de desenvolvimento, que tem permissão somente leitura para seu repositório. A tarefa git-clone no catálogo de início rápido usa o token de acesso para clonar seu repositório. Eis um exemplo:

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

Se as políticas da sua organização exigirem que mantenha o Cofre da Chave privado da Internet, pode definir o Cofre da Chave para permitir que os serviços fidedignos da Microsoft ignorem a regra de firewall.

Captura de ecrã a mostrar a configuração da firewall do Azure com a opção Permitir que os serviços fidedignos da Microsoft ignorem esta firewall selecionada.

Para saber como permitir que serviços confiáveis da Microsoft ignorem o firewall, consulte Configurar configurações de rede do Cofre da Chave do Azure.