Desenvolver um plug-in de gateway
Um plug-in de gateway do Windows Admin Center permite a comunicação da API da interface do usuário da sua ferramenta ou solução com um nó alvo. O Windows Admin Center hospeda um serviço de gateway que retransmite comandos e scripts de plug-ins de gateway a serem executados em nós alvo. O serviço de gateway pode ser estendido para incluir plug-ins de gateway personalizados que dão suporte a protocolos diferentes dos padrão.
Estes plug-ins de gateway são incluídos por padrão com Windows Admin Center:
- Plug-in de gateway do PowerShell
- Plug-in de gateway da WMI (Instrumentação de Gerenciamento do Windows)
Se você quiser se comunicar com um protocolo diferente do PowerShell ou WMI, por exemplo, com o REST, poderá criar um plug-in de gateway próprio. Os plug-ins de gateway são carregados em um AppDomain separado do processo de gateway existente, mas usam o mesmo nível de elevação para obter direitos.
Observação
Não está familiarizado com os diferentes tipos de extensão? Saiba mais sobre a arquitetura de extensibilidade e os tipos de extensão.
Importante
O SDK e as ferramentas de desenvolvedor do Windows Admin Center ainda não foram atualizados para oferecer suporte ao desenvolvimento de plug-ins de gateway compatíveis com o gateway modernizado do Windows Admin Center. Seguir este guia não resultará em uma extensão do .NET 8 compatível com o gateway modernizado.
Se você estiver interessado em desenvolver um plug-in de gateway para o gateway modernizado ou em atualizar seu plug-in de gateway existente, envie um e-mail para wacextensionrequest@microsoft.com.
Os plug-ins de gateway desenvolvidos no .NET 6 enquanto a atualização de back-end estava em versão prévia podem não funcionar corretamente com a versão mais recente do Windows Admin Center devido a alterações significativas do .NET 6 para o .NET 8. Recomendamos atualizar sua extensão para o .NET 8 assim que possível.
Prepare o seu ambiente
Caso ainda não tenha feito isso, prepare seu ambiente instalando dependências e pré-requisitos globais necessários para todos os projetos.
Criar um plug-in de gateway (biblioteca C#)
Para criar um plug-in de gateway personalizado, crie uma classe C# que implemente a interface IPlugIn
do namespace Microsoft.ManagementExperience.FeatureInterfaces
.
Observação
A interface IFeature
, disponível em versões anteriores do SDK, agora está sinalizada como obsoleta. Todo o desenvolvimento de plug-in de gateway deve usar IPlugIn (ou, opcionalmente, a classe abstrata HttpPlugIn).
Baixe um exemplo do GitHub
Para começar rapidamente com um plug-in de gateway personalizado, clone ou baixe uma cópia do projeto de plug-in C# de exemplo do nosso site do GitHub do SDK do Windows Admin Center.
Adicionar conteúdo
Adicione um conteúdo à cópia clonada do projeto de plug-in C# de exemplo (ou seu próprio projeto) para conter suas APIs personalizadas e crie seu arquivo DLL de plug-in de gateway personalizado a ser usado nas próximas etapas.
Implantar plug-in para teste
Teste a DLL do plug-in de gateway personalizado carregando-a no processo de gateway do Windows Admin Center.
O Windows Admin Center procura todos os plug-ins em uma pasta plugins
na pasta Dados do Aplicativo do computador atual (usando o valor CommonApplicationData da enumeração Environment.SpecialFolder). No Windows 10, esse local é C:\ProgramData\Server Management Experience
. Se a pasta plugins
ainda não existir, crie-a.
Observação
Você pode substituir o local do plug-in em um build de depuração atualizando o valor de configuração "StaticsFolder". Se você estiver depurando localmente, essa configuração estará no App.Config da solução Desktop.
Dentro da pasta plug-ins (neste exemplo, C:\ProgramData\Server Management Experience\plugins
)
- Crie uma pasta com o mesmo nome que o do valor da propriedade
Name
doFeature
na DLL do plug-in de gateway personalizado (em nosso projeto de exemplo, oName
é "Sample Uno") - Copie o arquivo DLL do plug-in de gateway personalizado para essa nova pasta
- Reiniciar o processo de Windows Admin Center
Depois que o processo do Administrador do Windows for reiniciado, você poderá utilizar as APIs na DLL do plug-in do gateway personalizado emitindo GET, PUT, PATCH, DELETE ou POST para o http(s)://{domain|localhost}/api/nodes/{node}/features/{feature name}/{identifier}
.
Opcional: anexar ao plug-in para depuração
No Visual Studio 2017, no menu Depurar, selecione "Anexar ao Processo". Na próxima janela, role pela lista Processos Disponíveis e selecione SMEDesktop.exee selecione "Anexar". Depois que o depurador for iniciado, você poderá colocar um ponto de interrupção no código do recurso e, em seguida, se exercitar por meio do formato de URL. Para nosso projeto de exemplo (nome do recurso: "Uno de exemplo"), a URL é: "<http://localhost:6516/api/nodes/fake-server.my.domain.com/features/Sample%20Uno>"
Criar uma extensão de ferramenta com o SDK do Windows Admin Center
Agora, precisamos criar uma extensão de ferramenta da qual você pode chamar seu plug-in de gateway personalizado. Crie ou navegue até uma pasta em que você deseja armazenar seus arquivos de projeto, abrir um prompt de comando e definir essa pasta como o diretório de trabalho. Usando o SDK Windows Admin Center instalado anteriormente, crie uma extensão com a seguinte sintaxe:
wac create --company "{!Company Name}" --tool "{!Tool Name}"
Valor | Explicação | Exemplo |
---|---|---|
{!Company Name} |
Nome da sua empresa (com espaços) | Contoso Inc |
{!Tool Name} |
O nome da sua ferramenta (com espaços) | Manage Foo Works |
Aqui está um uso de exemplo:
wac create --company "Contoso Inc" --tool "Manage Foo Works"
Esse comando cria uma nova pasta dentro do diretório de trabalho atual usando o nome especificado para sua ferramenta, copia todos os arquivos de modelo necessários em seu projeto e configura os arquivos com sua empresa e o nome da ferramenta.
Em seguida, altere o diretório para a pasta e instale as dependências locais necessárias executando o seguinte comando:
npm install
Depois que esse comando for concluído, você será configurado com tudo o que precisa para carregar sua nova extensão no Windows Admin Center.
Conectar sua extensão de ferramenta ao plug-in de gateway personalizado
Agora que você criou uma extensão com o SDK do Windows Admin Center, está pronto para conectar sua extensão de ferramenta ao plug-in de gateway personalizado seguindo estas etapas:
- Adicionar um módulo vazio
- Usar um plug-in de gateway personalizado em sua extensão de ferramenta
Compilar e carregar a extensão lateralmente
Em seguida, compile e carregue a extensão no Windows Admin Center. Abra uma janela Comando, altere o diretório para o diretório de origem e você estará pronto para criar.
Compilar e servir com gulp:
gulp build gulp serve -p 4201
A porta que você escolher deve estar atualmente disponível. Verifique se você não tenta usar a porta na qual o Windows Admin Center está em execução.
Seu projeto pode ser transferido por sideload em uma instância local do Windows Admin Center para teste ao anexar o projeto servido localmente no Windows Admin Center.
Iniciar o Windows Admin Center em um navegador da Web
Abrir o depurador (F12)
Abra o Console e digite o seguinte comando:
MsftSme.sideLoad("http://localhost:4201")
Atualizar o navegador da Web
Seu projeto agora estará visível na lista Ferramentas com (sideloaded) ao lado do nome.
Direcionar uma versão diferente do SDK do Windows Admin Center
É muito fácil manter sua extensão atualizada com as alterações do SDK e as alterações na plataforma. Leia sobre como focar uma versão diferente do SDK do Windows Admin Center.