Promptcloud explora a configuração de integração do Gerrit e do Jenkins
Publicados: 2017-01-20Configuração de integração usando Gerrit e Jenkins
A vida de um desenvolvedor pode ficar um pouco monótona com as tarefas repetitivas e complicadas. Felizmente, temos ferramentas que podem lidar regularmente com as tarefas mundanas sem reclamar depois de configurá-las. Quando você adiciona automação a testes e implantação, a solução pode ser chamada de “integração contínua”. Essa configuração pode testar e implantar projetos automaticamente, dando a você mais tempo para se concentrar em escrever o código do que enviá-lo para os servidores. Veja como você pode avançar com uma configuração de integração contínua usando Gerrit e Jenkins . 
O que é Gerrit?
Gerrit é um sistema de revisão de código de código aberto baseado em git que possui uma interface baseada na web que permite enviar alterações de um cliente git, revisar alterações e mesclar automaticamente com o código mestre. Toda vez que uma mudança é feita, conjuntos de patches para a mesma são feitos. Gerrit permite diferentes comparações de conjuntos de patches. Ele também tem a opção de adicionar feedback ou revisão em linhas específicas ou em todo o patch. Os revisores podem classificar as alterações com uma abaixo: +2 – Parece bom para mim, aprovado. +1 – Parece bom para mim, mas outra pessoa deve aprovar. 0 – Sem pontuação. -1 – Eu preferiria que você não enviasse isso. -2 – Bloquear envio. Uma revisão +2 implica que o código pode ser enviado ao mestre por padrão. Isso pode ser configurado conforme necessário.
O que é Jenkins e seus usos?
Jenkins é um servidor de compilação popular usado para integração contínua. Ele é baseado na web e permite a automação do processo de construção à medida que as alterações ocorrem. Jenkins pode trabalhar de forma independente, mesmo sem Git ou Gerrit. Possui ganchos que permitem acionamentos de eventos, portanto, quando ocorre uma alteração, uma compilação é feita automaticamente. Quando Jenkins e Gerrit são usados juntos, as compilações terão uma marca de sucesso/falha para indicar se passaram nos testes. Jenkins executará a regressão de teste depois de executar uma compilação. Depois de concluído, ele publicará os resultados do teste como um dos revisores. Caso a compilação falhe, ele rejeitará o patch. Você pode definir um -1 ou um -2 dependendo da qualidade do seu IC em caso de falha no teste. Junto com isso, outros revisores de código também podem revisar o código neste momento. Se todas as revisões forem aprovadas, o código poderá ser enviado para um repositório público .
Fluxo de trabalho para integração contínua
- Desenvolvedor faz check-out da fonte do Git
- O desenvolvedor faz as alterações necessárias
- Desenvolvedor envia as alterações para Gerrit
- Gerrit envia aviso de alteração ao Jenkins para teste de integração
- Jenkins puxa as alterações diretamente do servidor git Gerrit e executa todos os casos de teste de acordo com a configuração do nosso projeto
- Outros desenvolvedores revisam as alterações e aprovam (+2)
- Gerrit mescla as alterações no repositório git do projeto mestre quando o Jenkins tiver passado na compilação e as alterações forem aprovadas por outros desenvolvedores
1. Instalação do Gerrit
- Requisito: JRE, versão mínima 1.8.
- Link para baixar o pacote de guerra tGerrit
Se você tiver MySQL, poderá usá-lo para o banco de dados Gerrit. Crie usuários e bancos de dados no MySQL para Gerrit.
mysql> CREATE USER 'gerrit2'@'localhost' IDENTIFICADO POR 'secret';
mysql> CREATE DATABASE reviewdb;
mysql> GRANT ALL ON reviewdb.* TO 'gerrit2'@'localhost';
mysql> LIBERAR PRIVILÉGIOS;
Agora execute o comando abaixo para inicializar o site.
# java -jar gerrit.war init –batch -d ~/Durante essa inicialização, o serviço gerrit é iniciado por padrão. Se você quiser fazer alguma alteração, ou seja, banco de dados mysql, autenticação de login, servidor de envio de e-mail e url httpd, você pode editar o arquivo ~//etc/gerrit.config e adicionar os detalhes da senha do ldap e do banco de dados no ~//etc/secure arquivo .config . Se alguma alteração de configuração for feita, o serviço gerrit deverá ser reiniciado antes de entrar em vigor.
# ~//bin/gerrit.sh reinicieCopie o script ~//bin/gerrit.sh para o diretório init.d como gerrit e adicione-o para iniciar durante a inicialização da máquina.
2. Login inicial
Agora carregue sua URL Gerrit no navegador. Você também pode encontrar a URL da Web do Gerrit usando este comando.
# git config -f ~//etc/gerrit.config gerrit.canonicalWebUrl
Agora use a autenticação de login usando o método que você configurou no arquivo de configuração do Gerrit para fazer login na interface da web do Gerrit. Por padrão, é OpenID. O LDAP é um dos métodos de autenticação mais usados.
Uma vez que você tenha logado com sucesso na página da Web do Gerrit, você deve logar em sua máquina cliente onde você fará o desenvolvimento. Você tem que gerar chaves RSA para suas sessões ssh. Você pode pular a etapa de geração de chaves se já tiver os arquivos.

# ls -l ~/.ssh
id_rsa de configuração das chaves autorizadas id_rsa.pub known_hosts
3. Geração de Chave SSH
# ssh-keygen -t rsa
Gerando par de chaves rsa pública/privada.
Digite o arquivo no qual salvar a chave (/home/user/.ssh/id_rsa):
Digite a senha (vazio para nenhuma senha):
Digite a mesma senha novamente:
Sua identificação foi salva em /home/user/.ssh/id_rsa.
Sua chave pública foi salva em /home/user/.ssh/id_rsa.pub.
A impressão digital chave é:
SHA256:dMMVqsoLDf8T/d5Niob69oea3rkSLTBltiZ8s1lbdeA usuário@localhost
A imagem randomart da chave é:
+—[RSA 2048]—-+
| o… |
| .+o . o|
| ..+=. E..|
| .=o=.. . |
| . SB * o |
| = .. * o |
| . = . = . .|
| . o. +o++.+ |
| . o*=*Boo .|
+—-[SHA256]—–+
# cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCwoWTT6S1pv2LP0l6r8305njSLtoupDCw8Df
GnaqW+ppfzNMtRJmAvCQpYuvE154EsGZC5csnRkUYAScOD3nri8NBsXMdD+m1mMyD
lA4ssMLhWHfstJGQ5aJ84NIR+zFK9o9QmDCVYU/
MYt2SZnmzi+Pdd4QbDWKisewmtun5rpy8vXWukKt9CHGTbv5lKyRVPF
LuQCynKbniZLV7aQD6gsVcZFG7Hj3ezBhDAZdBrCWLldy0S61DAmdH5C94xmlSuraq
HiX0pkLi4J67msvOUW6dBfeCP1VsMNz0j/
91LPlOMf5I2r1fRw1s/J1z/
UcsgBDyATwSKocNklkrd8+pp usuário@localhost
- Copie a chave pública acima e vá para o seu url da web gerrit
- Verifique o nome de usuário no canto direito da página da web e clique no seu usuário para encontrar o link de configurações
- No lado esquerdo, você pode encontrar as “Chaves Públicas SSH”, clique nela
- Agora clique no botão "Adicionar chave", cole sua chave pública ssh e adicione-a
O primeiro usuário a entrar e registrar uma conta será automaticamente colocado nos Administradores com privilégios completos. Agora você tem privilégios para criar projetos. Clique na aba “Projetos” e clique em “Criar Novos Projetos”. Agora digite o nome do projeto para iniciar.
Pronto, clone o projeto em seu sistema e comece a adicionar seus códigos de desenvolvimento. # ssh [email protected] -p 29418
| **** Bem-vindo ao Gerrit Code Review **** Olá selvam, você se conectou com sucesso via SSH. Infelizmente, os shells interativos estão desabilitados. Para clonar um repositório Git hospedado, use: git clone ssh://[email protected]:29418/REPOSITORY_NAME.git Conexão com 192.168.56.137 fechada. |
# git clone ssh: //[email protected] :29418/Gerrit_Test
4. Instalação do Jenkins
Você pode instalar o jenkins usando o pacote apt-get ou deb.
- sudo apt-get update
- sudo apt-get install jenkins
A configuração do Jenkins existe em /etc/default/jenkins, onde você pode alterar a localização do java e JAVA_ARGS. Por padrão, o jenkins é executado em 8080. Se você estiver executando gerrit e jenkins na mesma máquina, a porta padrão 8080 já está ocupada por gerrit. Aqui você precisa alterar a porta jenkins. Para alterá-lo, edite o valor HTTP_PORT para executar em uma porta diferente.
5. Inicie o processo do Jenkins
# /etc/init.d/jenkins start Vá para o seu navegador e carregue a página do jenkins com seu nome de host e número da porta do jenkins.
https://:/
Se você instalou o Jenkins 2.*, a página do jenkins solicitará a InitialAdminPassword. Você pode encontrar a senha no arquivo /var/log/jenkins/jenkins.log. O log fica como abaixo:
| A configuração inicial do Jenkins é necessária. Um usuário administrador foi criado e uma senha gerada. Por favor, use a seguinte senha para prosseguir com a instalação: f16b093akcnml397jcdoa239d6bafb9 Isso também pode ser encontrado em: /var/lib/jenkins/secrets/initialAdminPassword |
- Agora vá para Jenkins -> Manage Jenkins -> Plugin Manager para instalar o plugin git e gerrit no jenkins
- Clique na aba 'Disponível' e pesquise ' Git Plugin ' e clique em 'Instalar sem reiniciar'. Novamente procure ' Gerrit Trigger' e clique em “Instalar sem reiniciar”. Por fim, verifique se ele está na lista de instalados.
O processo Jenkins é executado pelo usuário jenkins. Então, precisamos habilitar o acesso para o usuário jenkins no gerrit.
- Usando seu método de autenticação, crie um usuário jenkins em gerrit
- Agora crie ssh-keygen para o usuário jenkins como fizemos anteriormente. Mas desta vez, crie a chave com senha vazia e copie a chave pública para o usuário jenkins no gerrit
- Agora clique em 'Novo Item' para criar um novo trabalho e adicione seu git url na seção Source Code Management/Git. Além disso, escolha o “Gerrit event” nos Build Triggers e insira o Gerrit Project Pattern.

Por fim, salve a configuração. Perfeito, sua configuração de Gerrit e Jenkins agora está completa.
