VSTS Build Agent no Linux

Microsoft_LOVES_LinuxÉ exatamente isso que você leu! Sim a Mirosoft tem um agente de build para o Linux! Microsoft loves Linux!

Nos últimos tempos temos acompanhado a grande transformação da Microsoft em relação ao Open Source e principalmente ao Linux, e a plataforma Visual Studio Team Services (VSTS) e o Team Foundation Server (TFS) não poderiam ficar de fora. Imagine que você tem uma aplicação Java e precisa executar o build/release dessa aplicação em na plataforma Linux, agora o VSTS/TFS suporta esse cenário dando poder ao usuário escolher a melhor plataforma que atende as suas necessidades.

Nesse post vou detalhar como podemos instalar o Build Agent em uma máquina linux e configurar com o VSTS

Pré Requisitos

O Build Agent foi testado nas seguintes versões do Linux:

  • Ubuntu 16.04 LTS (Yosemite)
  • Ubuntu 14.04 LTS (El Capitan)
  • Redhat 7.1

O ambiente Linux que estou usando para esse post é o Ubuntu 16.04 LTS

Screenshot from 2016-07-30 10-58-58

Atualizar algumas bibliotecas, abra um terminal e execute o comando abaixo:

sudo apt-get install -y libunwind8 libcurl3

Screenshot from 2016-07-30 11-02-25

Ubuntu Version Control

Se você está usando o TFVC como controlador de fontes, você precisa instalar o Oracle Java 1.6 ou mais recente.

Agora se você está usando o GIT, você precisa instalar o Git versão 2.9.0 ou mais recente.

Para instalar o Git, execute os comandos abaixo em um terminal.

sudo apt-add-repository ppa:git-core/ppa

sudo apt-get update

sudo apt-get install git

Criando Agent Pool

Para esse exemplo vou criar um novo Pool chamado LinuxPool, onde teremos apenas agentes Linux.

Para criar um novo Pool é necessário acessar a parte administrativa do VSTS e clicar no Hub Agent Pools e criar um novo pool conforme abaixo

Untitled3

Criando PAT – Personal Access Token

Para que o Build Agent possa acessar a conta do VSTS, é necessário criar um token (PAT) para configurar as permissões de acesso.

Novamente acesse sua conta do VSTS (https://{youraccount}.visualstudio.com) selecione o seu profile e clique em Security

Screenshot from 2016-08-16 20-03-27

Clique em adicionar “+“, selecione qual escopo esse token terá acesso, quanto menos acesso, melhor

Para esse cenário, selecione apenas o escopo Agent Pools (read, manage) configure conforme abaixo

Untitled1

Após criado o token, precisamos guarda-lo pois vamos utilizar mais adiante.

Untitled2

Instalando o Build Agent

ATENÇÃO: Tome cuidado para baixar a versão correta do Build Agent. A versão do agent xplat agent foi descontinuada, por esse motivo não use essa versão.

Para baixar a versão correta do Build Agent, acesse sua conta do VSTS no seguinte caminho:

https://{your-account}.visualstudio.com/_admin/_AgentPool

Selecione a opção Linux e click em Download

Screenshot from 2016-07-30 11-27-10

Caso você não tenha uma conta no VSTS, pode baixar o agent direto do GitHub https://github.com/Microsoft/vsts-agent/releases

O legal dessa nova versão que foi desenvolvida usando o .NET Core.

Após finalizado o download, temos que criar uma pasta para cada Build Agent que queremos configurar.Nesse caso vou configurar apenas um.

Então vou criar uma pasta chamada vsts_agent/agent01 e descompactar o conteúdo o .tar.gz para essa pasta conforme abaixo:

mkdir vsts_agents
cd vsts_agents/
mkdir agent01
cd agent01/
tar zxvf ~/Downloads/vsts-agent-ubuntu.16.04-x64-2.104.2.tar.gz

Agora só executar o arquivo config.sh, e seguir com as configurações

Screenshot from 2016-08-16 20-31-03

Devemos ter atenção para as seguintes configurações:

  • URL: Endereço do VSTS / TFS
  • Token: Token criado no passo anterior, visto acima
  • Agent Pool: Pool criado no passo anterior, visto acima
  • Agent Name: Nome amigável para identificar o agente

Para iniciar o agente, basta executar o arquivo run.sh conforme abaixo

Screenshot from 2016-08-16 20-36-30

Para validar se o novo agente está online, volte para a tela Agent Pool no VSTS, nosso novo agente tem que estar com a core “Verde” (Online) conforme abaixo.

Untitled4

Próximo post vamos configurar um Build Definition para utilizar o agente de build hospedado no Linux

Deixe seu comentário!

Abraço

Sobre Leandro Prado

Leandro Silveira Prado é Premier Field Engineer na Microsoft especializado em Application Lifecycle Management.