Construindo um ambiente CICD de produção baseado em Jenkins ------- Dia 84 de aprendizagem sobre operação e manutenção na estrada, do iniciante ao mestre

Estágio 4

Hora: 21 de agosto de 2023

Participantes: Todos os membros da turma

Conteúdo:

Crie um ambiente CICD de produção baseado em Jenkins

Índice

1. Visão geral do ambiente

2. Introdução ao Jenkins

(1) Jenkins inclui os seguintes recursos:

(2) Integração contínua

1. Benefícios da integração contínua

2. O papel da integração contínua

3. Características da integração contínua

(3) Entrega contínua

(4) Implantação contínua

(5) Introdução ao Maven

3. Instale e configure o Jenkins

Método de instalação 1 do Jenkins: pacote war

Método de instalação 2 do Jenkins: método rpm (recomendado)

Comece Jenkins

Conteúdo da instalação do pacote RPM

Descrição do arquivo de configuração

operações web


1. Visão Geral do Ambiente

        À medida que os requisitos e a complexidade do desenvolvimento de software continuam a aumentar, como colaborar melhor entre os membros da equipe de desenvolvimento para garantir a qualidade do desenvolvimento de software tornou-se gradualmente uma questão inevitável no processo de desenvolvimento.

        A implantação automatizada do Jenkins pode resolver tarefas repetitivas, como integração, teste e implantação. A eficiência da integração da ferramenta é significativamente maior do que a operação manual; e a integração contínua pode obter informações de alteração de código mais cedo, entrando assim na fase de teste mais cedo, e descobrir problemas, então que o custo de resolvê-los cairá significativamente; a integração contínua encurta o tempo em todos os aspectos de desenvolvimento, integração, teste e implantação, encurtando assim o tempo de espera intermediário; integração contínua também significa que desenvolvimento, integração, teste e implantação podem ser sustentado.

        Portanto, após configurar o ambiente de integração contínua e entrega contínua do Jenkins, você pode entregar as tarefas de publicação ao servidor de integração. Use Maven (Ant), etc. para implementar construção, lançamento e implantação automatizada de projetos Java.

        Essas ferramentas podem ajudar a automatizar versões, reversões e outras ações durante o processo de construção.

2. Introdução ao Jenkins

 

        Jenkins é uma ferramenta de integração contínua de código aberto escrita em Java. Após uma disputa com a Oracle, o projeto tornou-se independente do Projeto Hudson.

Site oficial: https://jenkins.io/.

        Jenkins fornece serviços de integração contínua para desenvolvimento de software. Ele é executado em um contêiner Servlet (Tomcat). Ele suporta ferramentas de gerenciamento de configuração de software (SCM) (incluindo AccuRev SCM, CVS, Subversion, Git, Perforce, Clearcase e RTC) e pode executar projetos baseados em Apache Ant e Apache Maven, bem como scripts Shell arbitrários e comandos em lote do Windows. O principal desenvolvedor do Jenkins é Kosuke Kawaguchi. Jenkins é um software livre lançado sob a licença do MIT.

        Jenkins pode monitorar problemas no processo de integração contínua em tempo real, fornecer arquivos de log detalhados e funções de lembrete, e também pode usar gráficos para exibir vividamente a tendência e a estabilidade da construção do projeto.

(1) Jenkins inclui os seguintes recursos:

Fácil de instalar: Existe apenas um jenkins.war. Depois de baixar o arquivo do site oficial, você pode executá-lo diretamente, sem instalação adicional ou instalação de banco de dados;

Fácil de configurar: Fornece uma interface amigável de configuração GUI;

Suporte a alterações: Jenkins pode obter e gerar uma lista de atualização de código do repositório de código (SVN/Git) e enviá-la para as informações de saída da compilação;

Suporta links permanentes: os usuários acessam o Jenkins através da Web, e os endereços dos links dessas páginas da Web são endereços de links permanentes, que podem ser usados ​​diretamente em vários documentos;

E-mail/RSS/IM integrado: Quando uma integração é concluída, os resultados da integração podem ser coletados em tempo real por meio dessas ferramentas (leva um certo tempo para construir uma integração. Com esta função, você pode fazer outras coisas enquanto espera por os resultados);

Relatório de teste JUnit/TestNG: É usado para fornecer função de relatório de teste detalhado na forma de gráficos e outros formatos;

Suporte à construção distribuída: Jenkins pode distribuir construção integrada e outros trabalhos para vários computadores para conclusão;

Informações de impressão digital do arquivo: Jenkins salvará os arquivos jars gerados pela construção da integração e qual versão foi usada para a construção da integração;

Suporte a plug-ins de terceiros: Jenkins oferece suporte a plug-ins de terceiros, o que torna o Jenkins cada vez mais poderoso.

(2) Integração contínua

        Integração contínua (Inglês: Integração contínua, abreviada como CI ) é um processo de engenharia de software que integra todas as cópias de trabalho do software dos engenheiros em uma linha principal comum (linha principal) várias vezes ao dia.

        Este nome foi proposto pela primeira vez por Grady Booch em seu método distrital, mas ele não mencionou a integração várias vezes ao dia. Mais tarde, tornou-se parte da programação extrema (XP). O desenvolvimento orientado a testes (TDD) costuma ser combinado com testes unitários automatizados.

        A integração contínua foi proposta principalmente para resolver diversos problemas enfrentados pelo software na integração de sistemas.A Extreme Programming chama esses problemas de inferno de integração.

 

        A integração contínua enfatiza principalmente que os desenvolvedores devem construir e testar (unidade) imediatamente após enviar o novo código. Com base nos resultados do teste, podemos determinar se o novo código e o código original se integram corretamente. Simplificando: integre código com frequência (várias vezes ao dia) ao tronco.

1. Benefícios da integração contínua

·Erros de integração são detectados precocemente e fáceis de rastrear porque as revisões são pequenas, o que economiza tempo e custos do projeto.

· Evite o caos no minuto anterior à data de lançamento, quando todos estão tentando verificar a pequena versão incompatível que criaram.

·Quando um teste de unidade falha ou ocorre um erro, se o desenvolvedor precisar restaurar a base de código para um estado livre de problemas sem depuração, apenas uma pequena parte das alterações precisará ser descartada (porque as integrações são frequentes).

·Mantenha os programas “mais recentes” disponíveis para teste, demonstração ou lançamento.

· Comprometimentos frequentes de código incentivam os desenvolvedores a criar código modular e de baixa complexidade.

·Evitar que os ramos se desviem significativamente do tronco. Se a integração não for frequente e o backbone estiver em constante atualização, será mais difícil ou mesmo difícil integrá-la no futuro.

2. O papel da integração contínua

·Garantir a qualidade do código submetido pelos desenvolvedores da equipe e reduzir a pressão durante o lançamento do software;

·Cada link na integração contínua é concluído automaticamente sem muita intervenção manual, o que ajuda a reduzir processos repetitivos para economizar tempo, custos e carga de trabalho.

3. Características da integração contínua

·É um processo de teste de integração automatizado e periódico, desde a verificação do código, compilação e construção, execução de testes, registro de resultados, estatísticas de teste, etc., todos concluídos automaticamente sem intervenção manual;

·É necessário um servidor de integração dedicado para realizar compilações de integração;

·Requer suporte de ferramenta de hospedagem de código;

(3) Entrega contínua

        Entrega contínua (inglês: entrega contínua, abreviada como CD ) é uma técnica de engenharia de software que permite que o processo de produção de produtos de software seja concluído em um ciclo curto para garantir que o software possa ser mantido de forma estável e contínua em um estado que possa ser liberado a qualquer momento. .

        Seu objetivo é tornar a construção, o teste e o lançamento de software mais rápidos e frequentes. Este método pode reduzir o custo e o tempo de desenvolvimento de software e reduzir os riscos.

        A entrega contínua é baseada na integração contínua e implanta o código integrado em “ambientes semelhantes aos de produção” que estão mais próximos do ambiente operacional real. Por exemplo, depois de concluirmos o teste unitário, podemos implantar o código no ambiente Staging conectado ao banco de dados para mais testes. Se não houver problemas com o código, você poderá continuar a implantá-lo manualmente no ambiente de produção.

(4) Implantação contínua

        A implantação contínua (inglês: Continuous Deployment, abreviado como CD ) é a próxima etapa da entrega contínua e refere-se à implantação automática no ambiente de produção após o código ser aprovado na revisão.

        Às vezes, a implantação contínua também é confundida com entrega contínua. A implantação contínua significa que todas as alterações são implantadas automaticamente no ambiente de produção. A entrega contínua significa que todas as alterações podem ser implementadas no ambiente de produção, mas devido a considerações comerciais, você pode optar por não implementar. Se quiser implementar a implantação contínua, primeiro você deve implementar a entrega contínua.

 

A implantação contínua visa automatizar o processo de implantação no ambiente de produção com base na entrega contínua.

Palavras-chave: integração contínua de CI/CD/entrega contínua/implantação contínua

(5) Introdução ao Maven

        O Maven Project Object Model (POM) é uma ferramenta de gerenciamento de projetos de software que pode gerenciar a construção, relatórios e documentação do projeto por meio de uma pequena informação descritiva.

        Além de apresentar recursos de construção de programas, o Maven também fornece ferramentas avançadas de gerenciamento de projetos. Como as regras de construção padrão do Maven são altamente reutilizáveis, projetos simples muitas vezes podem ser construídos com duas ou três linhas de scripts de construção do Maven.

        Devido à abordagem orientada a projetos do Maven, muitos projetos do Apache Jakarta usam o Maven ao publicar documentos, e a proporção de projetos de empresas que usam o Maven continua a crescer.

        A palavra Maven vem do iídiche (judaico), que significa acúmulo de conhecimento, e foi originalmente usada no projeto Jakata Turbine para simplificar o processo de construção. Naquela época, havia alguns projetos (com seus próprios arquivos de construção Ant) que eram apenas ligeiramente diferentes, e os arquivos JAR eram mantidos pelo CVS. Portanto, espero que haja uma maneira padronizada de construir projetos, uma maneira clara de definir a composição do projeto, uma maneira fácil de publicar informações do projeto e uma maneira fácil de compartilhar JARs entre vários projetos.

3. Instale e configure Jenkins

1. Inicialização do host

[root@localhost ~]# hostname jenkins

[root@localhost ~]# bash

[root@jenkins ~]# systemctl stop firewalld

[root@jenkins ~]# iptables -F

[root@jenkins ~]# setenforce 0

 

2. Requisitos de software

Java 8 Java Runtime Environment (JRE) ou Java Development Kit (JDK) funcionarão.

1) A primeira forma:

[root@jenkins ~]# yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel

[root@jenkins ~]# java -versão

versão openjdk "1.8.0_161"

Ambiente de execução OpenJDK (compilação 1.8.0_161-b14)

VM de servidor OpenJDK de 64 bits (compilação 25.161-b14, modo misto)

2) A segunda maneira :

[root@jenkins ~]#rm -rf /usr/bin/java

[root@jenkins ~]#rz

[root@jenkins ~]#tar xf jdk-17_linux-x64_bin.tar.gz

[root@jenkins ~]#mv jdk-17.0.8 /usr/local/java

[root@jenkins ~]#vim /etc/profile

[root@jenkins ~]#source /etc/profile

[root@jenkins ~]#java -versão

 

Método de instalação 1 do Jenkins: pacote war

Primeiro instale o Tomcat e coloque jenkins.war diretamente no diretório webapps

Execute diretamente através do comando java -jar jenkins.war --httpPort=8080

Repositório oficial: https://pkg.jenkins.io/redhat-stable/

Site espelho de software de código aberto da Universidade de Tsinghua:

Índice de /jenkins/redhat/ | Estação de espelho de software de código aberto da Universidade de Tsinghua | Espelho de código aberto de Tsinghua

Basta baixar o pacote de dados correspondente. Estou usando jenkins-2.401-1.1.noarch.rpm aqui.

Método de instalação 2 do Jenkins: método rpm (recomendado)

[root@jenkins ~]# rpm -ivh jenkins-2.181-1.1.noarch.rpm

 

Comece Jenkins

[root@jenkins ~]# jenkins start (mantenha-o aberto)

[root@jenkins ~]# netstat -lnpt | grep:8080

 

Conteúdo da instalação do pacote RPM

[root@jenkins ~]# rpm -ql jenkins

/etc/init.d/jenkins #Arquivo de inicialização

/etc/logrotate.d/jenkins # Arquivo de configuração de divisão de log

/etc/sysconfig/jenkins # arquivo de configuração principal do jenkins

/usr/lib/jenkins # Armazena o diretório do pacote war

/usr/lib/jenkins/jenkins.war # pacote de guerra

/usr/sbin/rcjenkins # Comando

/var/cache/jenkins # diretório de descompressão de pacote war diretório de código web jenkins

/var/lib/jenkins # diretório de trabalho do jenkins

/var/log/jenkins#Registro

Descrição do arquivo de configuração

[root@jenkins ~]# grep "^[aZ]" /etc/sysconfig/jenkins

JENKINS_HOME="/var/lib/jenkins" #jenkins diretório de trabalho

JENKINS_JAVA_CMD=""

JENKINS_USER="jenkins" # usuário inicial jenkinx

JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true"

JENKINS_PORT="8080" # Porta

JENKINS_LISTEN_ADDRESS=""

JENKINS_HTTPS_PORT=""

JENKINS_HTTPS_KEYSTORE=""

JENKINS_HTTPS_KEYSTORE_PASSWORD=""

JENKINS_HTTPS_LISTEN_ADDRESS=""

JENKINS_DEBUG_LEVEL="5"

JENKINS_ENABLE_ACCESS_LOG = "não"

JENKINS_HANDLER_MAX="100" # Conexão máxima

JENKINS_HANDLER_IDLE="20"

JENKINS_ARGS=""

operações web

Teste de acesso ao navegador: http://192.168.1 00.1 3 1 :8080

 

Digite a chave secreta:

 

Desbloquear Jenkins, senha obtida na linha de comando

 

 Digite a senha de autorização e clique em Avançar

 

Escolha instalar plug-ins recomendados

 

Baixar plug-ins automaticamente (o status é verde, próxima etapa)

 

O status está vermelho, reinicie e instale novamente.

 

O status é vermelho e você pode entrar após reiniciar. No entanto, existem erros de instalação do plug-in, que afetarão

 

Depois de ficar verde, faça o seguinte:

Crie um usuário administrador e escolha usar a conta de administrador para continuar!

 

Configuração da instância, salve e pronto!

 

Clique para começar

Pronto para usar!

Acho que você gosta

Origin blog.csdn.net/2302_77582029/article/details/132409041
Recomendado
Clasificación