Jenkins - Guia rápido
Por que Jenkins?
Jenkins é um software que permite continuous integration. Jenkins será instalado em um servidor onde ocorrerá a construção central. O fluxograma a seguir demonstra um fluxo de trabalho muito simples de como o Jenkins funciona.
Junto com Jenkins, às vezes, também se pode ver a associação de Hudson. Hudson é uma ferramenta de integração contínua baseada em Java de código aberto muito popular desenvolvida pela Sun Microsystems que mais tarde foi adquirida pela Oracle. Após a aquisição da Sun pela Oracle, um fork foi criado a partir do código-fonte do Hudson, que ocasionou a introdução do Jenkins.
O que é integração contínua?
A integração contínua é uma prática de desenvolvimento que requer que os desenvolvedores integrem o código em um repositório compartilhado em intervalos regulares. Esse conceito foi criado para remover o problema de localizar ocorrências posteriores de problemas no ciclo de vida de construção. A integração contínua requer que os desenvolvedores tenham compilações frequentes. A prática comum é que sempre que ocorre uma confirmação de código, uma construção deve ser acionada.
Requisitos de sistema
JDK | JDK 1.5 ou superior |
Memória | 2 GB de RAM (recomendado) |
Espaço em disco | Sem requisitos mínimos. Observe que, como todos os builds serão armazenados nas máquinas Jenkins, é necessário garantir que haja espaço em disco suficiente disponível para o armazenamento do build. |
Versão do sistema operacional | Jenkins pode ser instalado no Windows, Ubuntu / Debian, Red Hat / Fedora / CentOS, Mac OS X, openSUSE, FReeBSD, OpenBSD, Gentoo. |
Java Container | O arquivo WAR pode ser executado em qualquer contêiner que suporte Servlet 2.4 / JSP 2.0 ou posterior (um exemplo é o Tomcat 5). |
Baixar Jenkins
O site oficial do Jenkins é Jenkins . Se você clicar no link fornecido, poderá obter a página inicial do site oficial do Jenkins conforme mostrado abaixo.
Por padrão, a versão mais recente e a versão de suporte de longo prazo estarão disponíveis para download. As versões anteriores também estão disponíveis para download. Clique na guia Liberação de suporte de longo prazo na seção de download.
Clique no link “Versão mais antiga, mas estável” para baixar o arquivo de guerra do Jenkins.
Iniciando Jenkins
Abra o prompt de comando. No prompt de comando, navegue até o diretório onde o arquivo jenkins.war está presente. Execute o seguinte comando
D:\>Java –jar Jenkins.war
Depois que o comando for executado, várias tarefas serão executadas, uma das quais é a extração do arquivo war, que é feita por um servidor da web integrado chamado winstone.
D:\>Java –jar Jenkins.war
Running from: D:\jenkins.war
Webroot: $user.home/ .jenkins
Sep 29, 2015 4:10:46 PM winstone.Logger logInternal
INFO: Beginning extraction from war file
Depois que o processamento for concluído sem erros graves, a linha a seguir aparecerá na saída do prompt de comando.
INFO: Jenkins is fully up and running
Acessando Jenkins
Assim que o Jenkins estiver instalado e funcionando, pode-se acessar o Jenkins a partir do link - http://localhost:8080
Este link abrirá o painel do Jenkins.
Os seguintes pré-requisitos devem ser atendidos para a configuração do Jenkins Tomcat.
Etapa 1: Verificar a instalação do Java
Para verificar a instalação do Java, abra o console e execute o seguinte comando java.
SO | Tarefa | Comando |
---|---|---|
janelas | Abra o console de comando | \> java –version |
Linux | Abra o terminal de comando | $ java –version |
Se o Java foi instalado corretamente em seu sistema, você deverá obter uma das seguintes saídas, dependendo da plataforma em que está trabalhando.
SO | Resultado |
---|---|
janelas | Versão Java "1.7.0_60" Java (TM) SE Run Time Environment (build 1.7.0_60-b19) Java Hotspot (TM) Servidor VM de 64 bits (versão 24.60-b09, modo misto) |
Linux | versão java "1.7.0_25" Open JDK Runtime Environment (rhel-2.3.10.4.el6_4-x86_64) Abra o servidor VM JDK de 64 bits (compilação 23.7-b01, modo misto) |
Presumimos que os leitores deste tutorial tenham o Java 1.7.0_60 instalado em seus sistemas antes de prosseguir para este tutorial.
Caso você não possua Java JDK, você pode baixá-lo no link Oracle
Etapa 2: Verificar a instalação do Java
Defina a variável de ambiente JAVA_HOME para apontar para o local do diretório base onde o Java está instalado em sua máquina. Por exemplo,
SO | Resultado |
---|---|
janelas | Defina a variável ambiental JAVA_HOME para C: \ ProgramFiles \ java \ jdk1.7.0_60 |
Linux | export JAVA_HOME = / usr / local / java-current |
Anexe o caminho completo do local do compilador Java ao caminho do sistema.
SO | Resultado |
---|---|
janelas | Anexar a string; C: \ Arquivos de programas \ Java \ jdk1.7.0_60 \ bin ao final da variável de sistema PATH. |
Linux | exportar PATH = $ PATH: $ JAVA_HOME / bin / |
Verifique o comando java-version no prompt de comando conforme explicado acima.
Etapa 3: Baixe o Tomcat
O site oficial do tomcat é o Tomcat . Se você clicar no link fornecido, você pode obter a página inicial do site oficial do tomcat conforme mostrado abaixo.
Navegue até o link https://tomcat.apache.org/download-70.cgi para obter o download para o tomcat.
Vá para a seção 'Distribuições binárias'. Baixe o arquivo zip do Windows de 32 bits.
Em seguida, descompacte o conteúdo do arquivo zip baixado.
Etapa 4: configuração do Jenkins e do Tomcat
Copie o arquivo Jenkis.war que foi baixado da seção anterior e copie-o para a pasta webapps na pasta tomcat.
Agora abra o prompt de comando. No prompt de comando, navegue até o diretório em que a pasta tomcat7 está localizada. Navegue até o diretório bin nesta pasta e execute o arquivo start.bat
E:\Apps\tomcat7\bin>startup.bat
Depois que o processamento for concluído sem erros graves, a linha a seguir aparecerá na saída do prompt de comando.
INFO: Server startup in 1302 ms
Abra o navegador e acesse o link - http://localhost:8080/jenkins. Jenkins estará pronto e funcionando no Tomcat.
Para este exercício, você deve garantir que a conectividade com a Internet esteja presente na máquina em que o Jenkins está instalado. No painel do Jenkins (tela inicial), clique na opção Gerenciar Jenkins no lado esquerdo.
Na próxima tela, clique na opção 'Gerenciar Plugins'.
Na próxima tela, clique na guia Disponível. Esta guia fornecerá uma lista de plug-ins disponíveis para download. Na guia 'Filtro', digite 'Plug-in Git'
A lista será filtrada. Marque a opção Git Plugin e clique no botão 'Instalar sem reiniciar'
A instalação começará e a tela será atualizada para mostrar o status do download.
Quando todas as instalações forem concluídas, reinicie o Jenkins emitindo o seguinte comando no navegador. http://localhost:8080/jenkins/restart
Depois que o Jenkins for reiniciado, o Git estará disponível como uma opção durante a configuração dos jobs. Para verificar, clique em Novo item nas opções do menu do Jenkins. Em seguida, insira um nome para um trabalho, no caso a seguir, o nome inserido é 'Demo'. Selecione 'Projeto Freestyle' como o tipo de item. Clique no botão Ok.
Na próxima tela, se você navegar até a seção Gerenciamento do código-fonte, verá agora 'Git' como uma opção.
Etapa 1: Baixar e configurar o Maven
O site oficial do maven é o Apache Maven . Se você clicar no link fornecido, poderá obter a página inicial do site oficial do maven, conforme mostrado abaixo.
Enquanto navega no site, vá para a seção Arquivos e baixe o link para o arquivo Binary.zip.
Depois que o arquivo for baixado, extraia os arquivos para a pasta do aplicativo relevante. Para isso, os arquivos maven serão colocados em E: \ Apps \ apache-maven-3.3.3.
Etapa 2: Configurando Jenkins e Maven
No painel do Jenkins (tela inicial), clique em Gerenciar Jenkins no menu do lado esquerdo.
Em seguida, clique em 'Configurar Sistema' do lado direito.
Na tela Configurar sistema, role para baixo até ver a seção Maven e clique no botão 'Adicionar Maven'.
Desmarque a opção 'Instalar automaticamente'.
Adicione qualquer nome para a configuração e a localização de MAVEN_HOME.
Em seguida, clique no botão 'Salvar' no final da tela.
Agora você pode criar um trabalho com a opção 'Projeto Maven'. No painel do Jenkins, clique na opção Novo item.
Você provavelmente deve ter visto algumas vezes nos exercícios anteriores em que tínhamos que configurar opções no Jenkins. O seguinte mostra as várias opções de configuração no Jenkins.
Portanto, é possível obter as várias opções de configuração do Jenkins clicando na opção 'Gerenciar Jenkins' no menu à esquerda.
Você verá a seguinte tela -
Clique em Configurar sistema. Discutidas abaixo estão algumas das configurações do Jenkins que podem ser executadas.
Jenkins Home Directory
Jenkins precisa de algum espaço em disco para realizar compilações e manter arquivos. Pode-se verificar esta localização na tela de configuração do Jenkins. Por padrão, isso é definido como ~ / .jenkins e esse local será inicialmente armazenado no local do seu perfil de usuário. Em um ambiente adequado, você precisa alterar este local para um local adequado para armazenar todas as construções e arquivos relevantes. Uma vez pode fazer isso das seguintes maneiras
Defina a variável de ambiente "JENKINS_HOME" para o novo diretório inicial antes de ativar o contêiner de servlet.
Defina a propriedade de sistema "JENKINS_HOME" para o contêiner de servlet.
Defina a entrada de ambiente JNDI "JENKINS_HOME" para o novo diretório.
O exemplo a seguir usará a primeira opção de configuração da variável de ambiente "JENKINS_HOME".
Primeiro crie uma nova pasta E: \ Apps \ Jenkins. Copie todo o conteúdo do ~ / .jenkins existente para este novo diretório.
Defina a variável de ambiente JENKINS_HOME para apontar para o local do diretório base onde o Java está instalado em sua máquina. Por exemplo,
SO | Resultado |
---|---|
janelas | Defina a variável de ambiente JENKINS_HOME para o local que deseja. Como exemplo, você pode defini-lo como E: \ Apps \ Jenkins |
Linux | exporte JENKINS_HOME = / usr / local / Jenkins ou o local que desejar. |
No painel do Jenkins, clique em Gerenciar Jenkins no menu do lado esquerdo. Em seguida, clique em 'Configurar Sistema' do lado direito.
No diretório inicial, você verá agora o novo diretório que foi configurado.
# de executores
Isso se refere ao número total de execuções simultâneas de tarefas que podem ocorrer na máquina Jenkins. Isso pode ser alterado com base nos requisitos. Às vezes, a recomendação é manter esse número igual ao número de CPU nas máquinas para melhor desempenho.
variáveis ambientais
Isso é usado para adicionar variáveis de ambiente personalizadas que serão aplicadas a todos os trabalhos. Esses são pares de valores-chave e podem ser acessados e usados em Builds sempre que necessário.
URL do Jenkins
Por padrão, o URL do Jenkins aponta para localhost. Se você tiver um nome de domínio configurado para sua máquina, defina-o como o nome de domínio, caso contrário, substitua o host local pelo IP da máquina. Isso ajudará na configuração de escravos e no envio de links usando o e-mail, pois você pode acessar diretamente a URL do Jenkins usando a variável de ambiente JENKINS_URL que pode ser acessada como $ {JENKINS_URL}.
Notificação de Email
Na área de notificação por email, você pode definir as configurações de SMTP para enviar emails. Isso é necessário para que o Jenkins se conecte ao servidor de email SMTP e envie emails para a lista de destinatários.
Para gerenciar o Jenkins, clique na opção 'Gerenciar Jenkins' do lado esquerdo do menu.
Portanto, é possível obter as várias opções de configuração do Jenkins clicando na opção 'Gerenciar Jenkins' no menu à esquerda.
Você verá a seguinte tela -
Algumas das opções de gerenciamento são as seguintes -
Configurar Sistema
É aqui que é possível gerenciar caminhos para as várias ferramentas a serem usadas em compilações, como os JDKs, as versões do Ant e Maven, bem como opções de segurança, servidores de e-mail e outros detalhes de configuração de todo o sistema. Quando os plug-ins são instalados. O Jenkins adicionará os campos de configuração necessários dinamicamente depois que os plug-ins forem instalados.
Recarregar configuração do disco
O Jenkins armazena todos os detalhes de configuração do sistema e do trabalho de construção como arquivos XML que são armazenados no diretório inicial do Jenkins. Aqui também todo o histórico de construção é armazenado. Se você estiver migrando trabalhos de compilação de uma instância do Jenkins para outra ou arquivando trabalhos de compilação antigos, será necessário adicionar ou remover os diretórios de trabalho de compilação correspondentes do diretório de compilação do Jenkins. Você não precisa colocar o Jenkins offline para fazer isso - você pode simplesmente usar a opção “Recarregar configuração do disco” para recarregar o sistema Jenkins e criar configurações de trabalho diretamente.
Gerenciar Plugin
Aqui, é possível instalar uma ampla variedade de plug-ins de terceiros diretamente de diferentes ferramentas de gerenciamento de código-fonte, como Git, Mercurial ou ClearCase, para relatórios de métricas de cobertura de código e qualidade de código. Os plug-ins podem ser instalados, atualizados e removidos por meio da tela Gerenciar plug-ins.
Informação do sistema
Esta tela exibe uma lista de todas as propriedades atuais do sistema Java e variáveis de ambiente do sistema. Aqui, é possível verificar exatamente em qual versão do Java Jenkins está sendo executado, em qual usuário ele está sendo executado e assim por diante.
A captura de tela a seguir mostra algumas das informações de nome-valor disponíveis nesta seção.
Registro do sistema
A tela System Log é uma maneira conveniente de visualizar os arquivos de log do Jenkins em tempo real. Novamente, o uso principal dessa tela é para solucionar problemas.
Estatísticas de carga
Esta página exibe dados gráficos sobre o quão ocupada a instância do Jenkins está em termos do número de compilações simultâneas e o comprimento da fila de compilação que dá uma ideia de quanto tempo suas compilações precisam esperar antes de serem executadas. Essas estatísticas podem dar uma boa ideia se a capacidade extra ou nós de construção extras são necessários de uma perspectiva de infraestrutura.
Console de Script
Esta tela permite que você execute scripts do Groovy no servidor. É útil para solução de problemas avançada, pois requer um forte conhecimento da arquitetura interna do Jenkins.
Gerenciar nós
Jenkins é capaz de lidar com compilações paralelas e distribuídas. Nesta tela, você pode configurar quantas compilações desejar. Jenkins é executado simultaneamente e, se você estiver usando compilações distribuídas, configure nós de compilação. Um nó de construção é outra máquina que o Jenkins pode usar para executar suas construções.
Prepare-se para desligar
Se houver necessidade de desligar o Jenkins ou se o servidor Jenkins estiver em execução, é melhor não fazer isso quando uma compilação estiver sendo executada. Para encerrar o Jenkins de maneira limpa, você pode usar o link Prepare for Shutdown, que evita que novas compilações sejam iniciadas. Eventualmente, quando todas as compilações atuais forem concluídas, uma será capaz de encerrar o Jenkins de forma limpa.
Para este exercício, criaremos um trabalho no Jenkins que pega um aplicativo HelloWorld simples, constrói e executa o programa java.
Step 1 - Vá para o painel do Jenkins e clique em Novo item
Step 2- Na próxima tela, insira o nome do item, neste caso o chamamos de Helloworld. Escolha a 'opção de projeto Freestyle'
Step 3 - A seguinte tela aparecerá na qual você pode especificar os detalhes do trabalho.
Step 4- Precisamos especificar a localização dos arquivos que precisam ser compilados. Neste exemplo, assumiremos que um repositório git local (E: \ Program) foi configurado e contém um arquivo 'HelloWorld.java'. Portanto, role para baixo e clique na opção Git e digite a URL do repositório git local.
Note- Se o seu repositório está hospedado no Github, você também pode inserir a url desse repositório aqui. Além disso, você precisaria clicar no botão Adicionar para que as credenciais adicionassem um nome de usuário e senha ao repositório github para que o código pudesse ser obtido do repositório remoto.
Step 5 - Agora vá para a seção Build e clique em Add build step → Execute Windows batch command
Step 6 - Na janela de comando, insira os seguintes comandos e clique no botão Salvar.
Javac HelloWorld.java
Java HelloWorld
Step 7 - Uma vez salvo, você pode clicar na opção Construir agora para ver se você definiu o trabalho com sucesso.
Step 8- Assim que a construção for agendada, ela será executada. A seção de histórico de construção a seguir mostra que uma construção está em andamento.
Step 9- Depois que a construção for concluída, um status da construção mostrará se a construção foi bem-sucedida ou não. Em nosso caso, a seguinte construção foi executada com sucesso. Clique no nº 1 no histórico de construção para ver os detalhes da construção.
Step 10 - Clique no link Saída do Console para ver os detalhes da construção
Além das etapas mostradas acima, existem tantas maneiras de criar um trabalho de construção, as opções disponíveis são muitas, o que torna o Jenkins uma ferramenta de implantação contínua fantástica.
Jenkins fornece uma funcionalidade pronta para uso para Junit e fornece uma série de plug-ins para teste de unidade para outras tecnologias, um exemplo sendo MSTest para testes de unidade .Net. Se você for ao linkhttps://wiki.jenkins-ci.org/display/JENKINS/xUnit+Plugin ele fornecerá a lista de plug-ins de Teste de Unidade disponíveis.
Exemplo de um teste Junit em Jenkins
O exemplo a seguir considerará
- Uma classe HelloWorldTest simples baseada em Junit.
- Ant como a ferramenta de construção dentro do Jenkins para construir a classe de acordo.
Step 1 - Vá para o painel do Jenkins e clique no projeto HelloWorld existente e escolha a opção Configurar
Step 2 - Navegue até a seção para Adicionar uma etapa de construção e escolha a opção para chamar Ant.
Step 3 - Clique no botão Avançado.
Step 4 - Na seção do arquivo de construção, insira a localização do arquivo build.xml.
Step 5 - Em seguida, clique na opção Adicionar opção de pós-construção e escolha a opção “Publicar relatório de resultado de teste Junit”
Step 6- No XML dos relatórios de teste, insira o local conforme mostrado abaixo. Certifique-se de que Relatórios é uma pasta criada na área de trabalho do projeto HelloWorld. O “* .xml” basicamente diz ao Jenkins para pegar os arquivos xml de resultados que são produzidos pela execução dos casos de teste Junit. Esses arquivos xml são convertidos em relatórios que podem ser visualizados posteriormente.
Quando terminar, clique na opção Salvar no final.
Step 7 - Depois de salvo, você pode clicar na opção Construir agora.
Depois que a construção for concluída, um status da construção mostrará se a construção foi bem-sucedida ou não. Nas informações de saída do Build, você notará agora uma seção adicional chamada Resultado do Teste. Em nosso caso, inserimos um caso de teste negativo para que o resultado falhe apenas como exemplo.
Pode-se ir para a saída do console para ver mais informações. Mas o que é mais interessante é que, se você clicar em Resultado do Teste, verá agora um detalhamento dos resultados do Teste.
Um dos princípios básicos da Integração Contínua é que uma construção deve ser verificável. Você deve ser capaz de determinar objetivamente se uma determinada construção está pronta para prosseguir para o próximo estágio do processo de construção, e a maneira mais conveniente de fazer isso é usar testes automatizados. Sem o teste automatizado adequado, você terá que reter muitos artefatos de construção e testá-los manualmente, o que dificilmente está no espírito da integração contínua. O exemplo a seguir mostra como usar o Selenium para executar testes da web automatizados.
Step 1 - Vá para Gerenciar Plug-ins.
Step 2- Encontre o Hudson Selenium Plugin e escolha instalá-lo. Reinicie a instância do Jenkins.
Step 3 - Vá para Configurar sistema.
Step 4 - Configure o jar do servidor de selênio e clique no botão Salvar.
Note- O arquivo jar de selênio pode ser baixado do local SeleniumHQ
Clique no download do servidor autônomo Selenium.
Step 5 - Volte ao seu painel e clique na opção Configurar para o projeto HelloWorld.
Step 6 - Clique em Adicionar etapa de compilação e escolha a opção “SeleniumHQ htmlSuite Run”
Step 7- Adicione os detalhes necessários para o teste de selênio. Aqui, suiteFile é o TestSuite gerado usando o Selenium IDE. Clique em Salvar e execute uma construção. Agora, a pós-compilação iniciará o driver selenium e executará o teste de html.
Jenkins vem com um recurso pronto para uso para adicionar uma notificação por e-mail para um projeto de construção.
Step 1- Configurando um servidor SMTP. Vá para Gerenciar Jenkins → Configurar Sistema. Vá para a seção Notificação por e-mail e insira o servidor SMTP necessário e os detalhes do sufixo de e-mail do usuário.
Step 2- Configure os destinatários no projeto Jenkins - Quando você configura qualquer projeto de compilação Jenkins, no final está a capacidade de adicionar destinatários que receberiam notificações por email para compilações instáveis ou quebradas. Em seguida, clique no botão Salvar.
Além do padrão, também existem plugins de notificação disponíveis no mercado. Um exemplo é o plugin de notificação da Tikal Knowledge que permite o envio de notificações de status do trabalho nos formatos JSON e XML. Este plugin permite que os pontos finais sejam configurados conforme mostrado abaixo.
Aqui estão os detalhes de cada opção -
"Format" - Este é o formato de carga útil de notificação, que pode ser JSON ou XML.
"Protocol" - protocolo a ser usado para enviar mensagens de notificação, HTTP, TCP ou UDP.
"Event" - Os eventos de trabalho que acionam notificações: Trabalho iniciado, Trabalho concluído, Trabalho finalizado ou Todos os eventos (a opção padrão).
"URL"- URL para enviar notificações. Tem a forma de "http://host"para o protocolo HTTP e
"host:port"
para os protocolos TCP e UDP."Timeout" - Tempo limite em milissegundos para enviar solicitação de notificação, 30 segundos por padrão.
Conforme demonstrado na seção anterior, há muitos plug-ins de relatório disponíveis, sendo o mais simples os relatórios disponíveis para testes jUnit.
Na ação Pós-construção para qualquer trabalho, você pode definir os relatórios a serem criados. Após a conclusão das compilações, a opção Resultados do teste estará disponível para mais detalhes.
Jenkins tem um host de plugin de análise de código. Os vários plug-ins podem ser encontrados emhttps://wiki.jenkins-ci.org/display/JENKINS/Static+Code+Analysis+Plugins
Este plugin fornece utilitários para os plug-ins de análise de código estático. Jenkins pode analisar o arquivo de resultados de várias ferramentas de análise de código, como CheckStyle, FindBugs, PMD etc. Para cada ferramenta de análise de código correspondente, um plug-in no Jenkins precisa ser instalado.
Além disso, está disponível o plug-in de complemento Static Analysis Collector que combina os resultados individuais desses plug-ins em um único gráfico e visualização de tendência.
Os plug-ins podem fornecer informações como
- O número total de avisos em um trabalho
- Uma exibição dos avisos novos e fixos de uma construção
- Relatórios de tendências mostrando o número de avisos por construção
- Visão geral dos avisos encontrados por módulo, pacote, categoria ou tipo
- Relatórios detalhados dos avisos encontrados opcionalmente filtrados por gravidade (ou novos e corrigidos)
Às vezes, muitas máquinas de construção são necessárias se houver casos em que haja projetos maiores e mais pesados que são construídos regularmente. E executar todas essas compilações em uma máquina central pode não ser a melhor opção. Nesse cenário, pode-se configurar outras máquinas Jenkins para serem máquinas escravas para tirar a carga do servidor Jenkins mestre.
Às vezes, você também pode precisar de vários ambientes diferentes para testar suas compilações. Nesse caso, usar um escravo para representar cada um dos ambientes necessários é quase obrigatório.
Um escravo é um computador configurado para descarregar projetos de construção do mestre e, uma vez configurada, essa distribuição de tarefas é bastante automática. O comportamento exato da delegação depende da configuração de cada projeto; alguns projetos podem escolher "ficar" em uma máquina específica para uma construção, enquanto outros podem escolher vagar livremente entre escravos.
Como cada escravo executa um programa separado chamado "agente escravo", não há necessidade de instalar o Jenkins completo (pacote ou binários compilados) em um escravo. Existem várias maneiras de iniciar os agentes escravos, mas no final o agente escravo e o mestre Jenkins precisam estabelecer um link de comunicação bidirecional (por exemplo, um soquete TCP / IP) para operar.
Para configurar escravos / nós no Jenkins, siga as etapas abaixo.
Step 1 - Vá para a seção Gerenciar Jenkins e role para baixo até a seção Gerenciar nós.
Step 2 - Clique em Novo Nó
Step 3 - Dê um nome para o nó, escolha a opção Escravo mudo e clique em OK.
Step 4- Insira os detalhes da máquina escrava do nó. No exemplo abaixo, estamos considerando a máquina escrava como uma máquina Windows, portanto, a opção “Deixar o Jenkins controlar este escravo do Windows como um serviço do Windows” foi escolhida como o método de inicialização. Também precisamos adicionar os detalhes necessários do nó escravo, como o nome do nó e as credenciais de login para a máquina do nó. Clique no botão Salvar. Os rótulos para os quais o nome é inserido como “New_Slave” são os que podem ser usados para configurar trabalhos para usar esta máquina escrava.
Depois que as etapas acima forem concluídas, a nova máquina do nó estará inicialmente em um estado offline, mas ficará online se todas as configurações na tela anterior foram inseridas corretamente. Pode-se a qualquer momento tornar a máquina do nó escravo offline, se necessário.
Existem muitos plug-ins disponíveis que podem ser usados para transferir os arquivos de construção após uma construção bem-sucedida para o respectivo aplicativo / servidor web. Um exemplo é o “Deploy to container Plugin”. Para usar isso, siga as etapas abaixo.
Step 1- Vá para Gerenciar Jenkins → Gerenciar Plug-ins. Vá para a seção Disponível e encontre o plug-in “Implementar no plug-in do contêiner” e instale o plug-in. Reinicie o servidor Jenkins.
Este plugin pega um arquivo war / ear e o implanta em um servidor de aplicativos remoto em execução no final de uma construção.
Tomcat 4.x / 5.x / 6.x / 7.x
JBoss 3.x / 4.x
Glassfish 2.x / 3.x
Step 2- Vá para o seu projeto Build e clique na opção Configurar. Escolha a opção “Implantar guerra / orelha em um contêiner”
Step 3- Na seção Implementar war / ear em um contêiner, insira os detalhes necessários do servidor no qual os arquivos precisam ser implementados e clique no botão Salvar. Essas etapas agora garantirão que os arquivos necessários sejam implantados no contêiner necessário após uma construção bem-sucedida.
Existem vários plug-ins disponíveis no Jenkins para mostrar métricas para compilações que são realizadas ao longo de um período de tempo. Essas métricas são úteis para entender suas construções e com que frequência elas falham / passam ao longo do tempo. Como exemplo, vamos examinar o 'plugin Build History Metrics'.
Este plugin calcula as seguintes métricas para todas as compilações, uma vez instaladas
- Tempo médio até a falha (MTTF)
- Tempo médio para recuperação (MTTR)
- Desvio padrão de tempos de construção
Step 1 - Vá para o painel do Jenkins e clique em Gerenciar Jenkins
Step 2 - Vá para a opção Gerenciar Plug-ins.
Step 3 - Vá para a guia Disponível e procure o plug-in 'Plugin de métricas do histórico de construção' e escolha 'instalar sem reiniciar'.
Step 4- A tela a seguir é exibida para confirmar a instalação bem-sucedida do plugin. Reinicie a instância do Jenkins.
Quando você acessar a página de trabalho, verá uma tabela com as métricas calculadas. As métricas são exibidas para os últimos 7 dias, últimos 30 dias e o tempo todo.
Para ver as tendências gerais no Jenkins, existem plug-ins disponíveis para reunir informações de dentro dos builds e Jenkins e exibi-los em um formato gráfico. Um exemplo de tal plugin é o 'plugin Hudson global-build-stats'. Então, vamos percorrer as etapas para isso.
Step 1 - Vá para o painel do Jenkins e clique em Gerenciar Jenkins
Step 2 - Vá para a opção Gerenciar Plug-ins
Step 3 - Vá para a guia Disponível e procure o plugin 'Hudson global-build-stats plugin' e escolha 'instalar sem reiniciar'.
Step 4- A tela a seguir é exibida para confirmar a instalação bem-sucedida do plugin. Reinicie a instância do Jenkins.
Para ver as estatísticas globais, siga as etapas 5 a 8.
Step 5- Vá para o painel do Jenkins e clique em Gerenciar Jenkins. Na tela Manage Jenkins, role para baixo e agora você verá uma opção chamada 'Global Build Stats'. Clique neste link.
Step 6- Clique no botão 'Inicializar estatísticas'. O que isso faz é reunir todos os registros existentes para construções que já foram realizadas e gráficos podem ser criados com base nesses resultados.
Step 7- Assim que os dados forem inicializados, é hora de criar um novo gráfico. Clique no link 'Criar novo gráfico'.
Step 8- Um pop-up aparecerá para inserir informações relevantes para os novos detalhes do gráfico. Insira as seguintes informações obrigatórias
- Título - Qualquer informação do título, para este exemplo é fornecida como 'Demo'
- Largura do gráfico - 800
- Altura do gráfico - 600
- Escala de tempo do gráfico - diariamente
- Duração do gráfico - 30 dias
O resto das informações pode permanecer como está. Depois de inserir as informações, clique em Criar novo gráfico.
Agora você verá o gráfico que exibe as tendências das construções ao longo do tempo.
Se você clicar em qualquer seção do gráfico, verá uma visão geral dos detalhes do trabalho e suas construções.
A seguir estão algumas das atividades básicas que você realizará, algumas das quais são as práticas recomendadas para manutenção do servidor Jenkins
Opções de URL
Os comandos a seguir, quando anexados ao URL da instância do Jenkins, realizarão as ações relevantes na instância do Jenkins.
http://localhost:8080/jenkins/exit - desligamento Jenkins
http://localhost:8080/jenkins/restart - reinicie Jenkins
http://localhost:8080/jenkins/reload - para recarregar a configuração
Backup Jenkins Home
O diretório inicial do Jenkins nada mais é do que o local em sua unidade onde o Jenkins armazena todas as informações dos trabalhos, compilações, etc. A localização do seu diretório inicial pode ser vista quando você clica em Gerenciar Jenkins → Configurar sistema.
Configure o Jenkins na partição que tem mais espaço livre em disco - como o Jenkins pegaria o código-fonte para as várias tarefas definidas e faria compilações contínuas, sempre certifique-se de que o Jenkins esteja configurado em uma unidade com espaço suficiente no disco rígido. Se o disco rígido ficar sem espaço, todas as compilações na instância do Jenkins começarão a falhar.
Outra prática recomendada é escrever cron jobs ou tarefas de manutenção que podem realizar operações de limpeza para evitar que o disco onde o Jenkins está configurado fique cheio.
Jenkins fornece um bom suporte para fornecer implantação e entrega contínuas. Se você observar o fluxo de qualquer desenvolvimento de software por meio da implantação, será como mostrado abaixo.
A parte principal da implantação contínua é garantir que todo o processo mostrado acima seja automatizado. Jenkins consegue tudo isso por meio de vários plug-ins, um deles é o “Deploy to container Plugin” que foi visto nas lições anteriores.
Existem plug-ins disponíveis que podem realmente fornecer uma representação gráfica do processo de implantação contínua. Mas primeiro vamos criar outro projeto no Jenkins, para que possamos ver melhor como isso funciona.
Vamos criar um projeto simples que emula o estágio de QA e faça um teste do aplicativo Helloworld.
Step 1- Vá para o painel do Jenkins e clique em Novo item. Escolha um 'Projeto Freestyle' e insira o nome do projeto como 'QA'. Clique no botão Ok para criar o projeto.
Step 2 - Neste exemplo, estamos mantendo a simplicidade e apenas usando este projeto para executar um programa de teste para o aplicativo Helloworld.
Portanto, nosso projeto de QA está configurado. Você pode fazer uma compilação para ver se compila corretamente.
Step 3 - Agora vá para o seu projeto Helloworld e clique na opção Configurar
Step 4 - Na configuração do projeto, escolha 'Adicionar ação pós-construção' e escolha 'Construir outros projetos'
Step 5- Na seção 'Projeto a ser construído', digite QA como o nome do projeto a ser construído. Você pode deixar a opção padrão 'Trigger apenas se a compilação for estável'. Clique no botão Salvar.
Step 6- Construir o projeto Helloworld. Agora, se você ver a saída do console, também verá que, depois que o projeto Helloworld for construído com sucesso, a construção do projeto QA também acontecerá.
Step 7- Vamos agora instalar o plugin de pipeline de entrega. Vá para Gerenciar Jenkins → Gerenciar Plug-ins. Na guia disponível, procure 'Plugin de Pipeline de Entrega'. Clique em Instalar sem reiniciar. Uma vez feito isso, reinicie a instância do Jenkins.
Step 8 - Para ver o pipeline de entrega em ação, no Painel do Jenkins, clique no símbolo + na guia ao lado da guia 'Todos'.
Step 9 - Digite qualquer nome para o nome da Visualização e escolha a opção 'Visualização do Pipeline de Entrega'.
Step 10- Na próxima tela, você pode deixar as opções padrão. Pode-se alterar as seguintes configurações -
- Certifique-se de que a opção 'Mostrar resultados da análise estática' esteja marcada.
- Certifique-se de que a opção 'Mostrar tempo total de construção' esteja marcada.
- Para o trabalho inicial - insira o projeto Helloworld como o primeiro trabalho que deve ser construído.
- Insira qualquer nome para o Pipeline
- Clique no botão OK.
Agora você terá uma excelente visão de todo o pipeline de entrega e poderá ver o status de cada projeto em todo o pipeline.
Outro plugin famoso é o build pipeline plugin. Vamos dar uma olhada nisso.
Step 1- Vá para Gerenciar Jenkins → Gerenciar Plug-ins. Na guia disponível, procure por 'Build Pipeline Plugin'. Clique em Instalar sem reiniciar. Uma vez feito isso, reinicie a instância do Jenkins.
Step 2 - Para ver o pipeline de construção em ação, no painel Jenkins, clique no símbolo + na guia ao lado da guia 'Todos'.
Step 3 - Insira qualquer nome para o nome da Visualização e escolha a opção 'Construir Visualização do Pipeline'.
Step 4- Aceite as configurações padrão, apenas no trabalho inicial selecionado, certifique-se de inserir o nome do projeto Helloworld. Clique no botão Ok.
Agora você terá uma excelente visão de todo o pipeline de entrega e poderá ver o status de cada projeto em todo o pipeline.
Para obter a lista de todos os plug-ins disponíveis no Jenkins, pode-se visitar o link - https://wiki.jenkins-ci.org/display/JENKINS/Plugins
Já vimos muitas instâncias de instalação de plug-ins, vamos dar uma olhada em algumas outras tarefas de manutenção com relação a plug-ins
Desinstalando Plugins
Para desinstalar um plug-in, vá para Gerenciar Jenkins → Gerenciar plug-ins. Clique na guia Instalado. Alguns dos plug-ins terão a opção Desinstalar. Você pode clicar nesses botões para desinstalar os plug-ins. Certifique-se de reiniciar sua instância do Jenkins após a desinstalação.
Instalando outra versão de um plug-in
Às vezes, pode ser necessário instalar uma versão mais antiga de um plug-in; nesse caso, você pode baixar o plug-in da página de plug-in relevante no site do Jenkins. Você pode então usar oUpload opção de fazer upload do plugin manualmente.
No Jenkins, você pode configurar usuários e suas permissões relevantes na instância do Jenkins. Por padrão, você não vai querer que todos possam definir trabalhos ou outras tarefas administrativas no Jenkins. Portanto, o Jenkins pode ter uma configuração de segurança em vigor.
Para configurar a segurança no Jenkins, siga as etapas fornecidas abaixo.
Step 1 - Clique em Manage Jenkins e escolha a opção 'Configure Global Security'.
Step 2- Clique na opção Ativar Segurança. Como exemplo, vamos supor que queremos que o Jenkins mantenha seu próprio banco de dados de usuários, portanto, no Security Realm, escolha a opção 'Jenkins' próprio banco de dados de usuário '.
Por padrão, você deseja que um administrador central defina os usuários no sistema, portanto, certifique-se de que a opção 'Permitir que usuários se inscrevam' esteja desmarcada. Você pode deixar o resto como está por enquanto e clicar no botão Salvar.
Step 3- Você será solicitado a adicionar seu primeiro usuário. Por exemplo, estamos configurando um usuário administrador para o sistema.
Step 4- Agora é hora de configurar seus usuários no sistema. Agora, ao acessar Gerenciar Jenkins e rolar para baixo, você verá a opção 'Gerenciar usuários'. Clique nesta opção.
Step 5- Assim como você definiu seu usuário administrador, comece a criar outros usuários para o sistema. Como exemplo, estamos apenas criando outro usuário chamado 'usuário'.
Step 6- Agora é hora de configurar suas autorizações, basicamente quem tem acesso a quê. Vá para Gerenciar Jenkins → Configurar Segurança Global.
Agora na seção Autorização, clique em 'Segurança baseada em matriz'
Step 7- Se você não vir o usuário na lista de grupos de usuários, insira o nome do usuário e adicione-o à lista. Em seguida, dê as permissões apropriadas ao usuário.
Clique no botão Salvar depois de definir as autorizações relevantes.
Sua segurança Jenkins agora está configurada.
Note - Para autenticação do Windows AD, é necessário adicionar o plugin do Active Directory ao Jenkins.
Jenkins tem um plugin de backup que pode ser usado para fazer backup de configurações críticas relacionadas ao Jenkins. Siga as etapas fornecidas abaixo para ter um backup no lugar.
Step 1 - Clique em Gerenciar Jenkins e escolha a opção 'Gerenciar Plugins'.
Step 2- Na guia disponível, procure por 'Plugin de backup'. Clique em Instalar sem reiniciar. Uma vez feito isso, reinicie a instância do Jenkins
Step 3- Agora, ao acessar Gerenciar Jenkins e rolar para baixo, você verá 'Gerenciador de backup' como uma opção. Clique nesta opção.
Step 4 - Clique em Setup.
Step 5- Aqui, o campo principal a definir é o diretório do seu backup. Certifique-se de que está em outra unidade diferente da unidade em que sua instância do Jenkins está configurada. Clique no botão Salvar.
Step 6 - Clique em 'Configuração de backup Hudson' na tela do gerenciador de backup para iniciar o backup.
A próxima tela mostrará o status do backup
Para recuperar de um backup, vá para a tela Backup Manager, clique em Restore Hudson configuration.
A lista de backups será exibida, clique no apropriado para clicar em Iniciar restauração para iniciar a restauração do backup.
Os testes da Web, como os testes de selênio, podem ser executados em máquinas escravas remotas por meio da instalação do plugin mestre escravo e do conjunto de selênio. As etapas a seguir mostram como executar testes remotos usando essa configuração.
Step 1- Certifique-se de que sua configuração mestre-escravo esteja em vigor. Vá para o seu servidor Jenkins mestre. Vá para Gerenciar Jenkins → Gerenciar nós.
Em nossa lista de nós, o rótulo DXBMEM30 é a máquina escrava. Neste exemplo, as máquinas mestre e escravo são máquinas Windows.
Step 2 - Clique em configurar para a máquina escrava DXBMEM30.
Step 3 - Certifique-se de que o método de inicialização seja colocado como 'Lançar agentes escravos via Java Web Start'
Step 4- Agora vá para sua máquina escrava e, a partir dela, abra uma instância do navegador para sua instância mestre do Jenkins. Em seguida, vá para Gerenciar Jenkins → Gerenciar nós. Vá para DXBMEM30 e clique em
Step 5 - Clique na instância DXBMEM30.
Step 6 - Role para baixo e você verá a opção Iniciar, que é a opção para Iniciar 'Java Web Start'
Step 7- Você receberá um aviso de segurança. Clique na caixa de seleção Aceitação e clique em executar.
Agora você verá uma janela Jenkins Slave aberta e conectada.
Step 8- Configurando seus testes para rodar no escravo. Aqui, você deve garantir que o trabalho que está sendo criado se destina especificamente a executar apenas os testes de selênio.
Na configuração do job, certifique-se de que a opção 'Restringir onde este projeto pode ser executado' esteja selecionada e na expressão Label coloque o nome do nó escravo.
Step 9- Certifique-se de que a parte de selênio de seu trabalho esteja configurada. Você deve garantir que o arquivo Sample.html e o arquivo selenium-server.jar também estejam presentes na máquina escrava.
Depois de seguir todas as etapas acima e clicar em Build, este projeto executará o teste Selenium na máquina escrava conforme o esperado.