O Jenkins é uma ferramenta em software livre para integração contínua, ou entrega contínua dependendo de como for utilizado. Isto é, ele automatiza as tarefas de monitoração de alterações no repositório do código fonte, compilação, execução das rotinas de teste, disponibilização de nova versão caso não encontre erros e, claro, documentação e registro de todas as etapas para acompanhamento.
Nesta primeira parte estão as etapas de instalação e da configuração inicial da ferramenta.
Instalação do Jenkins
Ele está disponível em pacotes para diversas distribuições, sistemas operacionais e até mesmo como um contêiner do Docker. Aqui optei por usar ambas as versões LTS do Ubuntu (14.04) como do Jenkins (2.32) em uma máquina virtual criada com ajuda do Vagrant.
Então é criar o diretório:
$ mkdir -p ~/Vagrant/jenkins $ cd ~/Vagrant/jenkins
Copiar este “Vagrantfile” para lá:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# -*- mode: ruby -*- | |
# vi: set ft=ruby : | |
Vagrant.configure("2") do |config| | |
config.vm.box = "ubuntu/xenial64" | |
config.vm.network "forwarded_port", guest: 8080, host: 8080 | |
config.vm.provider "virtualbox" do |vb| | |
vb.customize ["modifyvm", :id, "–memory", "2048"] | |
vb.customize ["modifyvm", :id, "–cpus", "2"] | |
end | |
config.vm.provision "shell", inline: <<-SHELL | |
ln -sf /usr/share/zoneinfo/Brazil/East /etc/localtime | |
dpkg-reconfigure -f noninteractive tzdata | |
curl –silent https://pkg.jenkins.io/debian-stable/jenkins.io.key | apt-key add – | |
echo 'deb https://pkg.jenkins.io/debian-stable binary/' > /etc/apt/sources.list.d/jenkins.list | |
apt-get update && apt-get –yes upgrade | |
apt-get –yes install jenkins | |
curl –silent http://localhost:8080 2>/dev/null | |
while [ ! -f /var/lib/jenkins/secrets/initialAdminPassword ] ; do sleep 1 ; done | |
cat /var/lib/jenkins/secrets/initialAdminPassword | |
SHELL | |
end |
Iniciar com:
$ vagrant up
E aguardar enquanto ele cria a máquina virtual, baixa o Ubuntu, ajusta o fuso horário¹, configura o repositório do Jenkins, atualiza a lista de pacotes, os pacotes e, então, instala o Jenkins.
A última linha exibirá a senha inicial do administrador, ela é criada automaticamente quando do primeiro uso e é usada para liberar o acesso à ferramenta.
(¹) É bom que o programa mostre o horário no mesmo fuso horário das pessoas. No caso do Brasil os outros valores são “Acre”, “DeNoronha”, “East” e “West” caso queira alterar o arquivo.
Configuração do Jenkins
Por padrão ele fica disponível na porta TCP 8080 e no “Vagrantfile” já foi definido corretamente este redirecionamento, então basta acessar 127.0.0.1:8080 e receber como retorno uma mensagem avisando que o Jenkins precisa ser destravado.
Aqui vai a senha que é exibida no final da execução do Vagrant — e também o motivo daquele laço while … do … done maluco dentro do “Vagrantfile” esperando o arquivo ser devidamente criado pelo Jenkins.
A etapa seguinte é a seleção dos plugins que serão instalados:
Optei pelo Install suggested plugins por pura praticidade, esta opção contém uma relação daqueles que são mais comumente usados (Git, LDAP, SSH etc).
Daí é esperar eles serem baixados e instalados, em seguida você deverá criar o usuário que servirá como o administrador da ferramenta:
Preencha os campos, selecione em Save and Finish e…
Selecione Start using Jenkins para acessar o painel:
E pronto!
Um detalhe importante, o Jenkins tem um plugin de internacionalização — o Locale Plugin — e é possível trocar o idioma da interface mas como a tradução para a língua portuguesa não me pareceu muito completa preferi não instalá-lo.
Fim desta parte…
Como dito, esta parte contemplou a instalação do Jenkins e como não há nenhum job configurado nele a máquina virtual pode ser desligada normalmente apenas usando vagrant halt. Na próxima a ferramenta será colocada para efetivamente funcionar com a criação de um job nela.
Até!
Pingback: Jenkins – parte 2 | giovannireisnunes