Torne o deploy de aplicações .NET mais fácil com Web Deploy
Estou escrevendo esse passo a passo pois não encontrei muito material sobre o assunto e o objetivo é abrir o tópico de deploy para futuramente postar sobre deploy contínuo e outros paranauês sobre o assunto.
Fazer o deploy de aplicações web .NET com segurança e simplicidade tornou-se bem mais fácil com o Web Deploy 3.5, neste post vou explicar os paranauês de configuração em um Windows Server 2012 R2 com IIS 8.
Optei por utilizar uma instância EC2 da Amazon, logo, seguem também algumas dicas referentes ao processo de configuração do Web Deploy 3.5 envolvendo instâncias na AWS ;)
- Tipo de instância AWS
- Portas de acesso
- Instalando o IIS 8
- Instalando o Web Deploy
- Associando um usuário sem permissão administrativa para efetuar o deploy
- Efetuando o deploy pelo Visual Studio
Tipo de instância AWS
Existem algumas instância já pré-configuradas com IIS 7, Sql Server e etc, vamos fazer a coisa do zero, logo, escolha a instância Windows Server 2012 R2, veja abaixo.
Existe um período de gratuidade para as instâncias micro, logo, não se preocupe em testar a plataforma ;)
Portas de acesso
Ao configurar as portas de acesso considere que haverá:
- acesso HTTP (porta 80)
- acesso HTTPS (porta 443) para habilitar o transporte seguro dos dados para o seu server
- acesso a porta 8172, que é a porta padrão que o Web Deploy cria para que você possa autenticar e transmitir o pacote
É possível alterar as portas futuramente caso seja necessário, nem precisa parar a instância.
Também é possível escolher uma porta diferente para o Web Deploy durante a instalação do mesmo.
Após alguns minutos sua instância estará ativa e você poderá acessá-la via Remote Desktop.
Se você está um pouco inseguro até o momento ou mesmo curioso com a plataforma AWS veja este vídeo mostrando como criar uma instância windows no EC2 ;)
Instalando o IIS 8
Ao acessar a instância iremos então configurar o IIS 8
- Acesse o Server Manager
- Selecione o item Manage no menu superior
- Selecione o item Add Roles and Features
Selecione o feature-based installation.
Em Server Roles selecione os itens:
- Web Server (IIS)
- Application Server
- Windows Deployment Services.
Em Role Services selecione todas as opções que você poderá utilizar em seu servidor web, eu selecionei quase todas as opções exceto os recursos de FTP e ASP clássico.
Após alguns poucos minutos a instalação será concluída e você terá um servidor IIS rodando, acesse o IP público do seu servidor web e confira a interface de apresentação do IIS 8.
Instalando o Web Deploy
Para instalar o Web Deploy 3.5 é necessário acessar o IIS e baixar o Web Platform Components.
Efetue uma busca por Web Deploy e selecione os itens Web Deploy 3.5 e Web Deploy 3.5 for Hosting Servers, conforme abaixo.
Caso o seu servidor necessite de outros recursos, como driver MySql, Url Rewrite e etc. você poderá instalar utilizando o Web
Platform Installer.
Recursos que eu adiciono comumente é o .NET Framework 4.5 , ASP.NET MVC 4, ASP.NET MVC 3 e MySQL Connector.
Associando um usuário sem permissão administrativa para efetuar o deploy
Durante o deploy iremos informar um usuário e senha para autorizar a transmissão do pacote e executar as mudanças no IIS. Se você, pequeno gafanhoto, pensou em passar a senha de Administrator para a galera, bem…
Crie um usuário sem permissão administrativa.
O próximo passo é fornecer permissão de gerenciamento no Web Site para este usuário chamado Deploy.
- Acesse o Web Site
- Acesse o IIS Manager Permissions
- Adicione o usuário Deploy
Agora é preciso configurar o Web Deploy para aceitar o usuário específicado.
- Clique com o botão direito sobre o web site
- Selecione Deploy
- Selecione Configure Web Deploy Publishing…
Selecione o usuário Deploy e clique em Setup.
Uma configuração será realizada e exibida na área Results, em seguida a configuração do Web Deploy estará finalizada.
Apague todo o conteúdo da pasta do web site antes de efetuar a publicação pela primeira vez, isso evita problemas de permissão para excluir arquivos antigos.
Efetuando o deploy pelo Visual Studio
Agora é a hora da verdade, acesse o seu projeto pelo Visual Studio e:
- Botão direito sobre o projeto
- Selecione Publish…
- Crie um novo profile de publicação, dei o nome de Web Deploy neste exemplo
- Informe o IP da instância em server
- Informe o nome completo do Web Site em seu IIS em Site name
- Informe o nome de usuário incluindo o domínio em User name, ficará algo como WIN-5C1QN3A0CKR/Deploy
- Informe a senha
- Clique em Validate Connection para autenticar o usuário
As demais etapas são apenas pequenas configurações, podemos avançar clicando em Publish e analisando o resultado.
O resultado…
Após configurado, o deploy se torna bem mais simples e sem a necessidade de acesso ao servidor.
Espero que em próximos posts eu possa falar um pouco sobre como fazer um deploy contínuo usando commits no repositório Git do seu projeto, elevando o nível da zuera para outro patamar!
Qualquer dúvida é só comentar…
[]s
Comments