DevOps – Criando um Windows Nano Server no Azure, Gerenciando o Nano Server com Powershell e o Projeto Microsoft Honolulu, Instalando o IIS no Nano Server e Publicando um Site no Nano Server Usando o VSTS

Introdução

Esse artigo tem como finalidade ajudar você a publicar um Nano Server no Azure, Gerenciar esse Nano Server com o Powershell e o novo Projeto Honolulu da Microsoft que substituiu o SMT do Azure e deixa a gestão muito mais simples, como instalar o IIS no Nano Server Online e publicar um site nesse Nano Server.

Importante salientar que a partir do Build 1709 do Windows Server, o Nano Server deixou de ser um sistema operacional instalável e passou a ser um Container do Windows Server. Entretanto ainda está disponível o Nano Server para instalação no Microsoft Azure.

Requisitos

Para execução desse laboratório, foi usado um ambiente para tornar mais fácil a configuração do Nano Server, onde foi usado:

– Active Directory em modo Windows Core hospedado no Azure;
– Windows 10 Enterprise Edition hospedado no Azure;
– Windows Server 2016 Datacenter Edition no Azure;
– Assinatura do Microsoft Azure;
– Assinatura do VSTS;
– Visual Studio.

Obs.: Para sair mais barato esse laboratório, use as virtualizações do DevTest Lab dentro o Portal Azure.

Passos

Instalação do Windows Nano Server

Para a instalação do Windows 2016 – Nano Server é simples, vá no Portal do Azure e vá em Máquinas Virtuais – Adicionar e pesquise por Nano Server

image

Em seguida siga as telas abaixo:

image

Substitua os dados conforme seu laboratório.

image

image

image

Clique em Criar

image

image

Gerenciamento do Nano Server a partir do PowerShell

Nesse laboratório o Windows 10 Enterprise que irei usar para gerenciar o Nano Server estava na mesma rede que o Nano Server.

Ainda no Portal Azure, anote o IP Interno de seu Nano Server criado.

image

A partir do Windows 10, abra o Prompt do PowerShell como administrador e digite o seguinte comando onde o IP será do seu Nano Server:

Set-Item WSMan:localhostClientTrustedHosts “10.1.0.6”

image

Depois para acessar seu Nano Server com o PowerShell digite o seguinte comando, trocando o IP e Credencial pelos seus dados:

Enter-PSSession -ComputerName 10.1.0.6 -Credential 10.1.0.6alan

Digite sua senha e pronto, estará logado com o PowerShell em seu Nano Server

image

image

Colocando seu Nano Server do domínio

Para facilitar a gestão do Nano Server, vamos colocar ele no domínio. Nesse laboratório o Windows 10 já pertence a um domínio chamado MCK.LOCAL, iremos colocar o Nano Server no mesmo domínio.

Para isso, siga os seguintes passos:

Do Windows 10, abra o PowerShell. E digite o seguinte comando

djoin.exe /provision /domain mck.local /machine SVWS2USA1 /savefile c:tempodjblob

Onde o domain será seu domínio e machine o nome de seu Servidor Nano, lembrando de executar esse comando no PowerShell de seu Windows10, pois o arquivo ODJBLOB será usado depois como um arquivo de respostas do Nano Server. Crie o diretório TEMP antes de executar o comando.

image

Depois insira as variáveis:

$filePath = ‘c:tempodjblob’
$fileContents = Get-Content -Path $filePath -Encoding Unicode

image

Em seguida, digite o script abaixo, trocando o IP do Computer Name para do seu Servidor Nano e as credenciais para as suas.

$session = New-PSSession -ComputerName 10.1.0.6 -Credential svws2usa1alan
 
Invoke-Command -Session $session -ArgumentList @($filePath,$fileContents) -ScriptBlock {
 
     param($filePath,$data)
 
     New-Item -ItemType directory -Path c:temp
 
     Set-Content -Path $filePath -Value $data -Encoding Unicode
 
}

image

image

Em seguida, digite o seguinte comando para acessar seu Servidor Nano remotamente:

Enter-PSSession -ComputerName ‘10.1.0.6’ –Credential svws2usa1alan

image

Depois de conectado, ingresse no domínio com o comando:

djoin /requestodj /loadfile c:tempodjblob /windowspath c:windows /localos

image

Em seguida reinicie seu servidor Nano e está pronto a inserção no domínio.

image

Como podemos ver pelo gerenciamento de seu Active Directory.

image

Agora iremos abrir portas do Firewall para gerenciamento. Digite no PowerShell do seu Windows 10:

Enter-PSSession -ComputerName ‘10.1.0.6’ –Credential svws2usa1alan

Depois digite o comando:

netsh advfirewall firewall add rule name=”Open Port 80″ dir=in action=allow protocol=TCP localport=80
netsh advfirewall firewall add rule name=”Open Port 443″ dir=in action=allow protocol=TCP localport=443
netsh advfirewall firewall set rule group=”File and Printer Sharing” new enable=Yes

image

image

Projeto Microsoft Honolulu

A Microsoft está com um Projeto de Gerenciamento de Servidores desde o ano passado chamado Honolulu. Esse projeto tem como objetivo maximizar a gestão de seus servidores usando o Painel de Gerenciamento fantástico.

Para participar, realize o download do instalador no link abaixo, onde será necessário um registro simples.

https://www.microsoft.com/en-us/evalcenter/evaluate-windows-server-honolulu

image

No laboratório, o instalador foi executado dentro do Windows 10 que está hospedado no Azure na mesma rede que o Nano Server.

Depois de instalado, abra o Painel de Gerenciamento do Honolulu e conecte-se no seu Nano Server adicionando o servidor no Painel.

image

Observação: Como o Nano Server não é um Servidor Windows Core ou Full, algumas gestões não serão possíveis fazer, mas o PowerShell por exemplo é.

image

Processos, Gestão de Usuários, etc.

image

Instalando o IIS no Nano Server

Para instalar o IIS e o ASP.NET, execute os passos a partir do PowerShell ou do Portal Honolulu.

Primeiro, crie um diretório em seu Nano Server e compartilhe ele, será o local onde você irá hospedar seu WebApp.

New-Item C:PublishedAppsAspNetCoreSampleForNano -type directory netsh advfirewall firewall set rule group=”File and Printer Sharing” new enable=yes net share AspNetCoreSampleForNano=c:PublishedAppsAspNetCoreSampleForNano /GRANT:EVERYONE`,FULL

image

Depois confirme se o compartilhamento funcionou, abrindo a partir de seu Windows 10 o caminho de rede.

10.1.0.6

image

Obs: Pode colocar o nome do diretório ou compartilhamento que desejar, esse foi uma cópia do comando disponível no site da Microsoft.

Em seguida abra a porta de seu firewall que será usada:

New-NetFirewallRule -Name “AspNet5 IIS” -DisplayName “Allow HTTP on TCP/8000” -Protocol TCP -LocalPort 8000 -Action Allow -Enabled True

image

Também pode-se escolher a porta que desejar.

Agora instale o IIS em seu Nano Server Online. Ficou mais fácil a instalação, sendo necessário executar os comandos abaixo:

Install-PackageProvider NanoServerPackage
Import-PackageProvider NanoServerPackage
Install-NanoServerPackage -Name Microsoft-NanoServer-Storage-Package
Install-NanoServerPackage -Name Microsoft-NanoServer-IIS-Package

image

Em seguida, reinicie seu Servidor Nano e abra a pagina do IIS de seu computador Windows 10.

image

Agora iremos instalar o ASP.NET Core. Para isso, primeiramente instale o ASP.NET Core em seu computador Windows 10.

https://download.microsoft.com/download/B/1/D/B1D7D5BF-3920-47AA-94BD-7A6E48822F18/DotNetCore.2.0.0-WindowsHosting.exe

Em seguida instale o IIS em seu computador do Windows 10.

image

Depois instale o pacote do .NET Core.

image

Depois vá no diretório C:WindowsSystem32inetsrv para confirmar os arquivos que você irá copiar para o Nano Server.

image

C:windowssystem32inetsrvaspnetcore.dll
C:windowssystem32inetsrvconfigschemaaspnetcore_schema.xml

Do PowerShell de seu Windows 10 que foi instalado o IIS, o ASP.NET Core e que está na mesma rede do Nano Server digite os comandos abaixo para realizar uma copia para o compartilhamento do Nano Server.

Copy-Item -Path  C:windowssystem32inetsrvaspnetcore.dll -Destination 10.1.0.6AspNetCoreSampleForNano
Copy-Item -Path  C:windowssystem32inetsrvconfigschemaaspnetcore_schema.xml -Destination 10.1.0.6AspNetCoreSampleForNano

image

Depois abra o compartilhamento para verificar se os arquivos foram copiados.

image

Depois, utilize o PowerShell do Projeto Honolulu para conectar remotamente no servidor Nano. Iremos agora copiar esses arquivos do compartilhamento para o diretório do IIS do Servidor Nano.

Do PowerShell execute os seguintes comandos:

Copy-Item -Path C:PublishedAppsAspNetCoreSampleForNanoaspnetcore.dll -Destination C:windowssystem32inetsrv
Copy-Item -Path C:PublishedAppsAspNetCoreSampleForNanoaspnetcore_schema.xml -Destination C:windowssystem32inetsrvconfigschema

image

Depois confirme se os arquivos foram copiados.

image

image

Em seguida, do seu Windows 10, abra o PowerShell ISE como administrador e conecte no servidor Nano remotamente.

image

Em seguida copie esse script e cole no PowerShell ISE (Esse Script está disponível no site da Microsoft). Depois execute ele completo.

# Backup existing applicationHost.config

Copy-Item -Path C:WindowsSystem32inetsrvconfigapplicationHost.config -Destination  C:WindowsSystem32inetsrvconfigapplicationHost_BeforeInstallingANCM.config


Import-Module IISAdministration


# Initialize variables

$aspNetCoreHandlerFilePath=”C:windowssystem32inetsrvaspnetcore.dll”
Reset-IISServerManager -confirm:$false
$sm = Get-IISServerManager


# Add AppSettings section

$sm.GetApplicationHostConfiguration().RootSectionGroup.Sections.Add(“appSettings”)


# Set Allow for handlers section

$appHostconfig = $sm.GetApplicationHostConfiguration()
$section = $appHostconfig.GetSection(“system.webServer/handlers”)
$section.OverrideMode=”Allow”


# Add aspNetCore section to system.webServer

$sectionaspNetCore = $appHostConfig.RootSectionGroup.SectionGroups[“system.webServer”].Sections.Add(“aspNetCore”)
$sectionaspNetCore.OverrideModeDefault = “Allow”
$sm.CommitChanges()


# Configure globalModule

Reset-IISServerManager -confirm:$false
$globalModules = Get-IISConfigSection “system.webServer/globalModules” | Get-IISConfigCollection
New-IISConfigCollectionElement $globalModules -ConfigAttribute @{“name”=”AspNetCoreModule”;”image”=$aspNetCoreHandlerFilePath}


# Configure module

$modules = Get-IISConfigSection “system.webServer/modules” | Get-IISConfigCollection
New-IISConfigCollectionElement $modules -ConfigAttribute @{“name”=”AspNetCoreModule”}

Em seguida, baixe o Script PowerShell desse link e copie para seu Servidor Nano Server através do compartilhamento.

https://dot.net/v1/dotnet-install.ps1

image

Depois, através do Honolulu, usando o PowerShell execute o script. Procure o Script dentro do diretório do seu Nano Server.

image

Antes de executar, habilite seu PowerShell do Nano Server para executar scripts não assinados com o comando:

Set-ExecutionPolicy Unrestricted

image

Depois execute o Script DOTNET-INSTALL.PS1

image

image

Depois de instalado, vá no seu diretório compartilhado do Nano Server e apague os arquivos copiados lá.

image

Em seguida, compartilhe o diretório INETPUBWWROOT do Nano Server para você poder publicar seus arquivos do Site nesse diretório. Para isso vá no PowerShell do Honolulu e digite o seguinte comando:

net share IIS=c:inetpubwwwroot /GRANT:EVERYONE, FULL

image

Confirme:

image

Publicando um Site no Nano

Para deixar bem longo esse Post e ninguém ler, vamos publicar um WebApp usando o Visual Studio Team Services.

Dentro de sua assinatura do VSTS crie um novo projeto qualquer com o repositório GIT ou dentro de um projeto existente crie um repositório GIT.

image

image

Depois de criado, de seu computador com o Visual Studio crie um diretório que será hospedado seu projeto.

image

image

Depois abra seu Visual Studio e crie um Projeto para testar seu Nano Server.

image

Salve ele no diretório que você criou. Depois execute um teste de funcionamento, no meu caso criei uma pagina HTML com alguns dizeres, realizei um Build e publiquei localmente para ver se estava em funcionamento.

image

image

Agora vamos inicializar seu repositório GIT local e sincronizar ele com seu repositório GIT do VSTS.

Do diretório do projeto local, abra o GIT BASH.

image

Execute o comando GIT INIT.

image

Depois execute o comando GIT ADD .

image

Em seguida execute o comando GIT COMMIT –M “Primeiro Commit”

image

Depois vá na página do seu repositório GIT do VSTS e copie os comandos de lá e execute no seu prompt do GIT BASH.

image

image

Depois confirme se seu código fonte está no repositório.

image

Em seguida configure o Build para seu projeto no VSTS. É bem simples:

image

Escolha seu repositório e branch.

image

Escolha seu Template de Build, no caso é ASP.NET Core.

image

Como é apenas um artigo mais abrangente, não irei entrar nas opções que são inúmeras que o Template de Build possui. Escolha o Hosted Agent para não precisar de um servidor de Build.

image

Clique em SAVE e QUEUE.

image

Aguarde seu Build ser executado.

image

image

Agora iremos configurar o Deploy desse Build para o Servidor Nano que você configurou no Azure no começo do artigo.

Caso você não possua ainda um servidor de Release, use seu Windows Server 2016 no Azure e registre ele como um Servidor de Release indo em:

Build e Release –> Deployment Group – Register.

image

image

image

Copie esse comando e cole no PowerShell de seu Servidor Windows Server 2016 que logo ele se registrará e estará disponível para você como abaixo.

image

Depois, volte no Build e configure uma Release.

image

Obs.: Seu Release deverá entregar o Artefato de Build que nada mais é que seu WebApp para o diretório IIS do Nano Server.

Veja um exemplo de Deploy usando uma Task de Copy para o diretório compartilhado do IIS do Servidor Nano.

image

Importante: O Servidor de Deploy que possui o Agente de Release precisa estar na mesma VNET que o Servidor do Nano Server (quer dizer na mesma rede). O executador do agente (logon do serviço) precisa ter direito de escrita no servidor Nano Server.

Depois valide a copia no compartilhamento.

image

E por ultimo, abra seu site.

image

Bem é isso! Até a próxima!

Alan Carlos


Source: Alan Carlos

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *