Biblioteca compartilhada Jenkins: um olhar mais atento [2022]

Publicados: 2021-01-02

Vivemos em uma era de microsserviços em que os aplicativos contemporâneos são desmontados em componentes que podem ser implantados individualmente . Podemos argumentar que o Jenkins conquistou seu lugar entre as principais ferramentas originais de CI/CD para implantação de microsserviços. Em comparação com aplicativos monolíticos, existem muitos pipelines para implantar microsserviços individuais.

Você pode usar a mangueira como código para codificar todo o processo de CI/CD. Trate-o como no desenvolvimento de aplicativos. Você pode publicar seu código de pipeline e executar todos os níveis de teste antes de usá-lo para implantar seu aplicativo.

Índice

O que é a Biblioteca Compartilhada Jenkins?

Quando dizemos CI/CD como símbolo, precisamos de modularidade e reutilização. Você tem que seguir o princípio DRY. É aí que a biblioteca compartilhada de Jenkins se mostra útil.

A Biblioteca Compartilhada Jenkins é a ideia de incluir um código de pipe padrão para sistemas de controle de versão e pode ser usado em qualquer número de pipes apenas fazendo referência a ele. Várias equipes podem usar o mesmo diretório para seu pipeline.

Você pode compará-lo com diretórios de programação populares. A programação cria um guia separado que qualquer pessoa pode usar ao importar código.

Por exemplo, se você tiver dez pipes para microsserviços do Java, o procedimento de criação antigo será repetido para todos os dez pipes. Além disso, o código do pipe é copiado e colado com a adição de novos serviços. Se você deseja alterar alguns parâmetros em uma fase de construção antiga, é necessário ajustá-los manualmente em todas as tubulações.

No mesmo cenário, você criará uma biblioteca compartilhada para edifícios mais antigos. Para todos os pipes, tudo o que você precisa fazer é consultar a antiga biblioteca de códigos de construção. Se houver alguma alteração antiga no futuro, tudo o que você precisa atualizar é o ícone da biblioteca compartilhada.

Leia: Ideias e tópicos interessantes do projeto Jenkins

Comece a usar bibliotecas compartilhadas

Um diretório compartilhado é uma coleção de arquivos legais (DSL + Groovy). Todos os arquivos legais devem estar no repositório git. Este exemplo usa o Github como um repositório git. https://github.com/devopscube/jenkins-shared-library. Você pode duplicar esse repositório para obter a infraestrutura de biblioteca compartilhada.

O banco de dados da biblioteca compartilhada contém as seguintes estruturas de volume:

A Biblioteca Conjunta Jenkins

| ____ var

| ____ src

| ____ Recursos

Vars

Ele contém todo o código WCL que você pode chamar do pipeline. Ele contém todos os arquivos de diretório com extensão .groovy. Os arquivos .txt também são suportados para documentar o código de biblioteca compartilhado. Por exemplo, se você estiver tendo um arquivo com o nome maven-build. Groovy, então você receberá um arquivo de ajuda com o nome maven-groovy.txt. Você pode escrever a documentação de ajuda para marcar as propriedades de um diretório compartilhado neste arquivo. Os arquivos de ajuda podem ser visualizados na página <your-jenkins-url> / Pipeline Syntax / Global.

Src

É um diretório de origem Java padrão. Uma vez que todo o texto tenha sido compilado, ele será adicionado ao caminho de classe. Aqui você pode adicionar um código incrivelmente legal para expandir o código da biblioteca compartilhada. Você também pode usar o Import Manifest para importar categorias e extensões existentes do Jenkins.

Existem cenários em que o hardware DSL legal não é flexível o suficiente para executar determinadas funções. Nesse caso, você pode escrever funções de groove personalizadas em src e lê-las no código da biblioteca compartilhada.

Recursos

Você pode gerenciar todos os arquivos desnecessários necessários para a mangueira nesta pasta. Como exemplo, você pode precisar de um modelo JSON geral para fazer chamadas de API durante a construção. Você pode salvar esse modelo JSON em uma pasta de recursos e chamá-lo em uma biblioteca compartilhada por meio da função LibraryResource.

Deve ler: Salário Jenkins na Índia

Biblioteca Global Compartilhada

Existem vários lugares onde você pode configurar um diretório compartilhado, dependendo do seu caso de uso. Gerenciamento do Jenkins » Configuração do Sistema » Biblioteca Global de Pipes. Você pode configurar qualquer número de diretórios conforme necessário.

Essas bibliotecas estão disponíveis universalmente para que cada pipeline em seu sistema possa usar as funções implementadas nessas bibliotecas.

Essas bibliotecas são consideradas “confiáveis”. Você pode executar qualquer método em Java, Groovy, API interna do Jenkins, a extensão do Jenkins ou um diretório de terceiros. Ele permite identificar com precisão bibliotecas que dobram APIs inseguras em envelopes de alto nível que podem ser usados ​​com segurança em qualquer pipeline.

Observe que qualquer pessoa que possa pagar a comissão a esse banco de dados SCM tem acesso ilimitado ao Jenkins. Você precisa da permissão Total / RunScripts para criar esses diretórios (essa permissão geralmente é dada aos administradores do Jenkins).

Inscreva-se em cursos de engenharia de software das melhores universidades do mundo. Ganhe Programas PG Executivos, Programas de Certificado Avançado ou Programas de Mestrado para acelerar sua carreira.

Biblioteca compartilhada em nível de pasta

Todas as pastas criadas podem ser vinculadas a diretórios compartilhados. Esse mecanismo permite definir um intervalo de diretório específico para todos os pipes em um volume ou subpasta.

Os diretórios baseados em pastas não são considerados “confiáveis”. Ele opera na caixa de areia do sulco, assim como um tubo comum.

Biblioteca compartilhada automática

Outros plugins podem adicionar uma maneira de identificar a biblioteca em movimento. Por exemplo, “GitHub Organization Folder” é um plug-in de origem fornecido no GitHub Branch Source. Ele fornece um componente que permite que scripts usem bibliotecas não confiáveis, como github.com/orgname/reponame menos qualquer configuração adicionada. Nesse caso, o repositório GitHub especificado será carregado do branch principal usando configurações anônimas.

Para verificar alterações na biblioteca

Se você notar um bug em uma compilação com um diretório não confiável, clique no link de repetição e edite um ou mais arquivos de origem para ver se a versão resultante funciona conforme o esperado. Quando estiver satisfeito com os resultados, clique no link diff na página Release Status e aplique a diferença à sua biblioteca e ao seu commit pool.

(Mesmo que a versão solicitada da biblioteca seja uma ramificação e não uma versão estática como o marcador, a versão reativada usará a mesma versão da versão original. Você não pode recuperar os recursos da biblioteca.)

Atualmente, ele não fornece as bibliotecas confiáveis ​​Replay. A alteração de arquivos de recursos durante a reprodução não é suportada no momento.

Leia também: Perguntas e respostas da entrevista Jenkins

Conclusão

Aqui estão algumas das coisas importantes a serem lembradas:

  • Você terá que usar o Groovy para escrever etapas ou funções personalizadas.
  • Há uma necessidade de escrever etapas de pipeline que você pode chamar de pipelines.
  • Você precisa criar um arquivo no diretório vars do repositório que conterá o nome da sua etapa personalizada.
  • O método de chamada def deve ser implementado pelos parâmetros da sua etapa.
  • Se houver necessidade de escrever código Groovy comum, você pode adicioná-lo ao src.
  • Você também pode integrar uma biblioteca compartilhada no Jenkins usando uma tela de configuração do sistema.

Se você estiver interessado em aprender mais sobre desenvolvimento de pilha completa, confira o Programa PG Executivo do upGrad e IIIT-B em Desenvolvimento de Software de pilha completa, projetado para profissionais que trabalham e oferece mais de 500 horas de treinamento rigoroso, mais de 9 projetos e atribuições , IIIT-B Alumni status, projetos práticos práticos e assistência de trabalho com as principais empresas.

Curso de Desenvolvimento de Software | Domine Java, C, Python e muito mais‎

Inscreva-se agora para Mestrado em Engenharia de Software