Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Você pode configurar as Ações do GitHub para entrar em sua instância do Azure Stack Hub, executar o PowerShell e executar um script da CLI do Azure. Você pode usar isso como base de um fluxo de trabalho de integração contínua e implantação contínua (CI/CD) para sua solução com o Azure Stack Hub. Com esse fluxo de trabalho, você pode automatizar a criação, o teste e a implantação de sua solução para que possa se concentrar em escrever código. Por exemplo, adicionando algumas outras ações, você pode usar esse fluxo de trabalho junto com um modelo do Azure Resource Manager para provisionar uma VM, validar um repositório de aplicativos e, em seguida, implantar um aplicativo nessa VM sempre que mesclar uma ramificação específica no GitHub. Por enquanto, este artigo ajudará você a se orientar com as Ações do GitHub e o Azure Stack Hub.
As Ações do GitHub são fluxos de trabalho compostos por ações que permitem a automação dentro do seu repositório de código. Você pode acionar os fluxos de trabalho com eventos em seu processo de desenvolvimento do GitHub. Você pode executar tarefas comuns de automação de DevOps, como teste, implantação e integração contínua.
Para usar as Ações do GitHub com o Azure Stack Hub, você deve usar uma entidade de serviço (SPN) com requisitos específicos. Neste artigo, você criará um corredor auto-hospedado . O GitHub permite que você use qualquer máquina que possa ser acessada pelo GitHub em suas Ações do GitHub. Você pode criar uma máquina virtual (VM) para funcionar como executante no Azure, no Azure Stack Hub ou em outro lugar.
Este exemplo de fluxo de trabalho inclui:
- Instruções sobre como criar e validar o seu SPN.
- Configurar uma máquina núcleo do Windows 2016 Server como corredor auto-hospedado do GitHub Actions para trabalhar com o Azure Stack Hub.
- Um fluxo de trabalho que usa:
- A ação de Login do Azure
- A ação do script do PowerShell
Ações do Azure Stack Hub no GitHub
O diagrama a seguir mostra os diferentes ambientes e suas relações.
Componentes do uso do executor auto-hospedado:
- Ações do GitHub hospedadas no GitHub
- Corredor auto-hospedado hospedado no Azure
- Azure Stack Hub
Uma limitação do uso do GitHub Actions com o Azure Stack Hub é que o processo requer o uso de um Azure Stack Hub conectado à Web. O fluxo de trabalho é acionado em um repositório GitHub. Você pode usar o Microsoft Entra ID ou os Serviços Federados do Ative Directory (AD FS) como seu provedor de identidade.
Embora isso esteja fora do escopo deste artigo, seu corredor auto-hospedado também pode usar uma rede virtual privada para se conectar ao seu Azure Stack Hub atrás de um firewall.
Obter entidade de serviço
Um SPN fornece credenciais baseadas em função para que os processos fora do Azure possam se conectar e interagir com recursos. Você precisará de um SPN com acesso de colaborador e os atributos especificados nestas instruções para usar com suas Ações do GitHub.
Como usuário do Azure Stack Hub, você não tem permissão para criar o SPN. Terá de solicitar este princípio ao seu operador de nuvem. As instruções estão sendo fornecidas aqui para que você possa criar o SPN se for um operador de nuvem, ou para validar o SPN se for um desenvolvedor usando um SPN em seu fluxo de trabalho fornecido por um operador de nuvem.
O operador de nuvem precisará criar o SPN usando a CLI do Azure.
Os trechos de código a seguir são escritos para uma máquina Windows usando o prompt do PowerShell com a CLI do Azure. Se você estiver usando CLI em uma máquina Linux e bash, remova a extensão de linha ou substitua-a por um \
.
Prepare os valores dos seguintes parâmetros usados para criar o SPN:
Parâmetro Exemplo Descrição gestor de recursos de ponto final "https://management.orlando.azurestack.corp.microsoft.com" O endpoint de gerenciamento de recursos. sufixo-ponto-de-armazenamento "orlando.azurestack.corp.microsoft.com" O sufixo de endpoint das contas de armazenamento. sufixo-keyvault-dns ".vault.orlando.azurestack.corp.microsoft.com" O sufixo dns do serviço Key Vault. endpoint-active-directory-graph-resource-id "https://graph.windows.net/" O ID do recurso do Active Directory. endpoint-sql-management https://notsupported O ponto de extremidade de gerenciamento do SQL Server. Defina isso como https://notsupported
perfil 2020-09-01-híbrido Perfil a utilizar para esta nuvem. Abra sua ferramenta de linha de comando, como Windows PowerShell ou Bash, e entre. Use o seguinte comando:
az login
Use o comando
register
para um novo ambiente ou o comandoupdate
se estiver usando um ambiente existente. Use o seguinte comando.az cloud register ` -n "AzureStackUser" ` --endpoint-resource-manager "https://management.<local>.<FQDN>" ` --suffix-storage-endpoint ".<local>.<FQDN>" ` --suffix-keyvault-dns ".vault.<local>.<FQDN>" ` --endpoint-active-directory-graph-resource-id "https://graph.windows.net/" ` --endpoint-sql-management https://notsupported ` --profile 2020-09-01-hybrid
Obtenha o ID da assinatura e o grupo de recursos que você deseja usar para o SPN.
Crie o SPN com o seguinte comando com a ID da assinatura e o grupo de recursos:
az ad sp create-for-rbac --name "myApp" --role contributor ` --scopes /subscriptions/{subscription-id}/resourceGroups/{resource-group} ` --sdk-auth
Verifique o objeto JSON resultante. Você usará o objeto JSON para criar seu segredo no repositório GitHub que contém sua ação. O objeto JSON deve ter os seguintes atributos:
{ "clientId": <Application ID for the SPN>, "clientSecret": <Client secret for the SPN>, "subscriptionId": <Subscription ID for the SPN>, "tenantId": <Tenant ID for the SPN>, "activeDirectoryEndpointUrl": "https://login.microsoftonline.com/", "resourceManagerEndpointUrl": "https://management.<FQDN>", "activeDirectoryGraphResourceId": "https://graph.windows.net/", "sqlManagementEndpointUrl": "https://notsupported", "galleryEndpointUrl": "https://providers.<FQDN>:30016/", "managementEndpointUrl": "https://management.<FQDN>" }
Adicionar entidade de serviço ao repositório
Você pode usar segredos do GitHub para criptografar informações confidenciais para usar em suas ações. Você criará um segredo para conter seu SPN para que a ação possa entrar em sua instância do Azure Stack Hub.
Advertência
O GitHub recomenda que você não use corredores auto-hospedados com repositórios públicos As bifurcações do seu repositório público podem executar código perigoso em sua máquina runner auto-hospedada criando uma solicitação pull que executa o código em um fluxo de trabalho. Para obter mais informações, consulte "Sobre corredores auto-hospedados".
- Abra ou crie um repositório GitHub. Se precisar de orientação sobre como criar um repositório no GitHub, você pode encontrar instruções nos documentos do GitHub.
- Defina seu repositório como privado.
- Selecione Configurações >Alterar a visibilidade do repositório.
- Selecione Tornar privado.
- Digite o nome do repositório.
- Selecione Compreendo, altere a visibilidade do repositório.
- Selecione Configurações.
- Selecione Segredos.
- Selecione Novo segredo do repositório.
- Nomeie seu segredo
AZURE_CREDENTIALS
. - Cole o objeto JSON que representa seu SPN.
- Selecione Adicionar segredo.
Crie sua VM e instale os pré-requisitos
Crie o seu corredor auto-hospedado.
Estas instruções criam um corredor como uma VM do Windows no Azure. Se você precisar se conectar ao seu Azure Stack Hub hospedado em um datacenter, talvez precise de uma conexão VPN. Você pode encontrar instruções sobre como habilitar a conexão na seção Instalando as Ferramentas do Azure Stack Hub no seu runner auto-hospedado, que pode exigir uma conexão VPN.
- Para obter orientação sobre como criar uma VM do Windows no Azure, consulte Guia de início rápido: criar uma máquina virtual do Windows no portal do Azure. Ao seguir estas instruções, instale o Windows Server 2016 Core.
- Para obter orientação sobre como criar uma VM do Windows no Azure Stack Hub, consulte Guia de início rápido: criar uma VM do servidor Windows com o portal do Azure Stack Hub. Ao seguir estas instruções, instale o Windows Server 2016 Core.
Use uma conexão remota para se conectar ao servidor Windows 2016 usando o endereço IP do servidor, o nome de usuário e a senha que você definiu ao criar a máquina.
Instale o Chocolatey. Chocolatey é um gerenciador de pacotes para Windows que você pode usar para instalar e gerenciar dependências a partir da linha de comando. Em um prompt do PowerShell com privilégios elevados, digite:
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
Instale o PowerShell Core. Em um prompt do PowerShell com privilégios elevados, digite:
choco install powershell-core
Instale a CLI do Azure. Em um prompt do PowerShell com privilégios elevados, digite:
choco install azure-cli
Instale o Azure Stack Hub PowerShell. Em um prompt do PowerShell com privilégios elevados, digite:
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 Install-Module -Name Az.BootStrapper -Force -AllowPrerelease Install-AzProfile -Profile 2020-09-01-hybrid -Force Install-Module -Name AzureStack -RequiredVersion 2.0.2-preview -AllowPrerelease
Para obter mais informações sobre como usar os módulos Az do Azure Stack Hub, consulte Install PowerShell Az module for Azure Stack Hub.
Reinicie o computador. Em um prompt do PowerShell com privilégios elevados, digite:
shutdown /r
Adicione a máquina como um corredor auto-hospedado ao seu repositório GitHub. Você pode encontrar instruções sobre como adicionar um corredor auto-hospedado nos documentos do GitHub. Para obter mais informações, consulte Adicionando corredores auto-hospedados.
Quando terminar, verifique se o serviço está em execução e pronto para receber solicitações. Verifique novamente executando
/run.cmd
do diretório do runner.
Opcional: Instalar as Ferramentas do Azure Stack Hub no seu executor auto-hospedado
As instruções neste artigo não exigem acesso ao Ferramentas do Stack Hub do Azure, mas à medida que você desenvolve seu próprio fluxo de trabalho, talvez seja necessário usar as ferramentas. Estas instruções podem ajudá-lo a instalar as ferramentas no seu executor auto-hospedado do Windows. Para obter mais informações sobre as Ferramentas do Azure Stack Hub, consulte Baixar Ferramentas do Azure Stack Hub do GitHub. Estas instruções pressupõem que você tenha instalado o gerenciador de pacotes Chocolatey.
Instale o Git.
choco install git
Em um prompt do PowerShell com privilégios elevados, digite:
# Change directory to the root directory. cd \ # Download the tools archive. [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 invoke-webrequest ` https://github.com/Azure/AzureStack-Tools/archive/az.zip ` -OutFile az.zip # Expand the downloaded files. expand-archive az.zip ` -DestinationPath . ` -Force # Change to the tools directory. cd AzureStack-Tools-az
Se você precisar que seu corredor se conecte à sua instância do Azure Stack Hub, poderá usar o PowerShell. Você pode encontrar as instruções no artigo Conectar-se ao Azure Stack Hub com PowerShell.
Criar um corredor auto-hospedado
Você pode configurar um corredor auto-hospedado no GitHub Docs. Um corredor auto-hospedado pode ser executado em qualquer máquina que possa se conectar ao GitHub. Você pode optar por usar um corredor auto-hospedado se tiver uma tarefa de automação em seu fluxo de trabalho que exija dependências extensas, requisitos de licenciamento específicos, como um dongle USB para uma licença de software ou outras necessidades específicas de máquina ou software. Sua máquina pode ser uma máquina física, uma VM ou um contêiner. Você pode colocar o corredor em seu datacenter ou na nuvem.
Neste artigo, você usará uma VM do Windows hospedada no Azure que será configurada com os requisitos específicos do PowerShell do Azure Stack Hub.
Para obter instruções sobre como configurar, configurar e conectar seu corredor auto-hospedado ao seu repositório, consulte o GitHub Docs, "About self-hosted runners".
Anote o nome e as tags do seu corredor auto-hospedado. O fluxo de trabalho neste artigo irá chamá-lo usando a tag self-hosted
.
Adicionar o fluxo de trabalho ao repositório
Crie um novo fluxo de trabalho usando o yaml nesta seção para criar seu fluxo de trabalho.
Abra o repositório GitHub.
Selecione Ações.
Crie um novo fluxo de trabalho.
- Se este for o seu primeiro fluxo de trabalho, selecione configure um fluxo de trabalho você mesmo em Escolha um modelo de fluxo de trabalho.
- Se você tiver fluxos de trabalho existentes, selecione Novo fluxo de trabalho>Configurar um fluxo de trabalho você mesmo.
No caminho, nomeie o arquivo
workflow.yml
.Copie e cole o yml do fluxo de trabalho.
on: [push] env: ACTIONS_ALLOW_UNSECURE_COMMANDS: 'true' jobs: azurestack-test: runs-on: self-hosted steps: - name: Login to AzureStack with Az Powershell uses: azure/login@releases/v1 with: creds: ${{ secrets.AZURE_CREDENTIALS }} environment: 'AzureStack' enable-AzPSSession: true - name: Run Az PowerShell Script Against AzureStack uses: azure/powershell@v1 with: azPSVersion: '3.1.0' inlineScript: | hostname Get-AzContext Get-AzResourceGroup - name: Login to AzureStack with CLI uses: azure/login@releases/v1 with: creds: ${{ secrets.AZURE_CREDENTIALS }} environment: 'AzureStack' enable-AzPSSession: false - name: Run Azure CLI Script Against AzureStack run: | hostname az group list --output table
Selecione Iniciar commit.
Adicione o título da confirmação e os detalhes opcionais e, em seguida, selecione Confirmar novo arquivo.
Quando a ação for executada, verifique se ela foi executada com êxito.
Abra o repositório GitHub. Você pode acionar o fluxo de trabalho enviando por push para o repositório.
Selecione Ações.
Selecione o nome do commit em All workflows.
Selecione o nome do trabalho azurestack-test.
Expanda as seções para revisar os valores de retorno para seus comandos PowerShell e CLI.
Notas sobre o arquivo de fluxo de trabalho e a ação:
- O fluxo de trabalho contém um único trabalho chamado
azurestack-test
. - Um evento push aciona o fluxo de trabalho.
- A ação usa um runner auto-hospedado que foi configurado no repositório e é chamado pelo rótulo do runner no workflow com a linha:
runs on: self-hosted
. - O fluxo de trabalho contém três ações.
- A primeira ação chama a ação de Logon do Azure para entrar com o PowerShell Com o GitHub Actions for Azure, você pode criar fluxos de trabalho que pode configurar em seu repositório para criar, testar, empacotar, liberar e implantar no Azure. Esta ação usa suas credenciais do Azure Stack SPN para conectar e abrir uma sessão em seu ambiente do Azure Stack Hub. Você pode encontrar mais informações sobre como usar a ação no GitHub, Ação de Logon do Azure.
- A segunda ação usa o Azure PowerShell. A ação usa os módulos do Az PowerShell e funciona com nuvens Government e Azure Stack Hub. Depois de executar esse fluxo de trabalho, revise o trabalho para validar se o script coletou os grupos de recursos em seu ambiente do Azure Stack Hub. Para obter mais informações, consulte a Ação Azure PowerShell
- A terceira ação, usa a CLI do Azure para entrar e se conectar ao seu Azure Stack Hub para coletar grupos de recursos. Para mais informações, consulte a Ação da CLI do Azure .
- Para obter mais informações sobre como trabalhar com GitHub Actions e o agente auto-hospedado, consulte a documentação GitHub Actions.
Próximos passos
- Encontre mais ações no GitHub Marketplace.
- Saiba mais sobre implantações comuns para o Azure Stack Hub
- Saiba mais sobre Usar modelos do Azure Resource Manager no Azure Stack Hub
- Revise o padrão DevOps de nuvem híbrida, padrão DevOps