Promptcloud explora a configuração de integração do Gerrit e do Jenkins

Publicados: 2017-01-20
Índice mostrar
Configuração de integração usando Gerrit e Jenkins
O que é Gerrit?
O que é Jenkins e seus usos?
Fluxo de trabalho para integração contínua
1. Instalação do Gerrit
2. Login inicial
3. Geração de Chave SSH
4. Instalação do Jenkins
5. Inicie o processo do Jenkins

Configuraçã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 . Configuração de CI 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

  1. Desenvolvedor faz check-out da fonte do Git
  2. O desenvolvedor faz as alterações necessárias
  3. Desenvolvedor envia as alterações para Gerrit
  4. Gerrit envia aviso de alteração ao Jenkins para teste de integração
  5. 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
  6. Outros desenvolvedores revisam as alterações e aprovam (+2)
  7. 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

Configuração de integração usando fluxo de trabalho Gerrit e Jenkins 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 reinicie

Copie 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

Configuração de integração usando Gerrit e Jenkins SSH Key Generator 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. Configuração de CI 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.

Configuração de integração usando o plugin Gerrit e Jenkins 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.

Configuração de integração usando o evento Gerrit e JenkinsEvento de integração de CI Por fim, salve a configuração. Perfeito, sua configuração de Gerrit e Jenkins agora está completa.