Você está vendo a versão antiga da página. Ver a versão atual.

Comparar com o atual Ver Histórico da Página

« Anterior Versão 10 Próxima »

O modelo DevOps (união das palavras development e operations) combina filosofia de trabalho, ferramentas e práticas que agilizam o processo de entregas e implantação de softwares. Todo o fluxo ocorre em cima de uma estrutura conhecida como Esteira DevOps ou CI/CD (continuous integration / continuous delivery) pipeline e possui uma série de etapas cíclicas que podem variar um pouco, mas em geral possui os seguintes elementos: codificação, compilação. teste, pacote, liberação, configuração e monitoramento.


*Figura 1 - Etapas da Esteira DevOps


Nesse tutorial veremos como configurar um projeto criado no Cronapp para executar as seguintes etapas do pipeline: obter o código do repositório Git, compilar o projeto, criar uma imagem Docker e salvar essa imagem no DockerHub.

Pré-requisitos

Esse tutorial não prevê os passos iniciais para instalação e configuração do Jenkins e Docker. Por isso, o seu ambiente deve ter, no mínimo, as seguintes configurações.

Passos


Criar credenciais

Vamos usar o Jenkins para armazenar as credenciais de acesso do Github e Dockerhub, impedindo que esses dados fiquem expostos.

Para isso, abra e logue na interface de configuração do seu Jenkins. No menu Jenkins (destaque 1 da figura 2.1, acesse Jenkins > Gerenciar Jenkins > Manage Credentials. Na página de Credentials, acesse o menu (Global) na lista Stores scoped to Jenkins e selecione a opção Add Credentials (destaque 2 na figura 2.1) para exibir os campos de cadastros.


Figura 2.1 - Acesso ao gerenciador de Credenciais do Jenkins

Github

Alimente os campos como informado abaixo.


Figura 2.2 - Adicionando as credenciais de acesso do Github


  • Kind: deixe a opção padrão "Username with password".
  • Scope: selecione a opção "Global".
  • Username do Github.
  • Password do Github.
  • ID: para facilitar a identificação, sugerimos adicionar o nome do projeto e serviço da credencial.
    Ex,: "nome_do_projeto-github".
  • Description: adicione uma descrição própria ou informe o mesmo valor do ID.
    Ex,: "nome_do_projeto-github".

Salve em seguida.

Dockerhub

Faça o mesmo procedimento com a conta do Dockerhub.

  • Kind: deixe a opção padrão "Username with password".
  • Scope: selecione a opção "Global".
  • Username do Dockerhub.
  • Password do Dockerhub.
  • ID: para facilitar a identificação, sugerimos adicionar o nome do projeto e serviço da credencial.
    Ex,: "nome_do_projeto-dockerhub".
  • Description: adicione uma descrição própria ou informe o mesmo valor do ID.
    Ex,: "nome_do_projeto-dockerhub".

Salve em seguida.

Jenkinsfile

Após criarmos as credenciais de acesso no Jenkins, podemos configurar o arquivo Jenkinsfile em seu projeto no Cronapp. Abra o arquivo que fica na pasta raiz do seu projeto para alterarmos o conteúdo destacado na imagem abaixo.


Figura 3.1 - Arquivo Jenkinsfile


  1. INFO_SEU_USUARIO/NOMEDAIMAGEM: substitua pelo seu usuário do Dockerhub e nome da imagem para esse projeto no Dockerhub, separe as duas informações com uma barra "/".
    Ex.: "tutorialcronapp/esteiradevops".
  2. INFO_ID_CREDENCIAL_DOCKERHUB: informe a credencial criada para o Dockerhub no Jenkins (passo anterior).
    Ex,: "nome_do_projeto-dockerhub".
  3. INFO_URL_REPO_GIT_HTTPS: substitua pelo endereço Git (https) do seu projeto.
    Ex.: "https://github.com/igorandrade83/Esteira-DevOps.git".
  4. INFO_ID_CREDENCIAL_GITHUB: informe a credencial criada para o Github no Jenkins (passo anterior).
    Ex,: "nome_do_projeto-github".
  5. CRONAPP_TAG_VERSION: não é necessário realizar qualquer alteração nesse parâmetro, destacamos pois usaremos ela mais tarde nas configurações do pipeline do Jenkins.


Após salvar o arquivo, efetue um Commit/Push para salvar as alterações no repositório Git do seu projeto.

Criar o Job

Acesse novamente a interface de configuração do seu Jenkins e selecione no menu Jenkins: Jenkins > Novo Job (destaque 1 da figura 4.1). Na próxima tela, informe o nome do Job no campo Enter an item name (2 da figura 4.1), selecione a opção Pipeline (3) e clique em OK ao final (4).


Figura 4.1 - Criando um Job do tipo Pipeline


Na aba General, marque a caixa de seleção Este build é parametrizado, clique em Adicionar parâmetro e escolha a opção List Git branches (and more) (Figura 4.2). Se você não estiver vendo essa opção, é provável que ainda não tenha instalado o plugin List Git Branches Parameter em seu Jenkins.


Figura 3.2 - Exibindo os campos de parâmetros do build


Após selecionar a opção List Git branches (and more), apenas os primeiros campos serão exibidos, clique no botão Avançado, logo abaixo do campo Parameter Type, para exibir os demais campos. (Figura 3.3)


Figura 3.3 - Configuração do parâmetro CRONAPP_TAG_VERSION


  • Name: informe "CRONAPP_TAG_VERSION", estamos obtendo esse parâmetro do arquivo Jenkinsfile em nosso projeto (destaque 5 na figura 3.1).

  • Repository URL: endereço Git (https) do seu projeto.

  • Credentials: selecione a credencial de acesso Git criado no primeiro passo desse tutorial.

  • Parameter Type: selecione a opção "Branch or Tag".

  • Sort Mode: escolha a opção "DESCENDING".

  • Tag Filter: informe a expressão regular "refs/heads/(.*)$", ela irá ocultar o início das tags no momento da seleção, facilitando a visualização.

  • Branch Filter: informe a expressão regular "refs/heads/(.*)$", ela irá ocultar o início das branchs no momento da seleção, facilitando a visualização.

  • Default Value: deixe em branco. (valor padrão)

  • Selected Value: selecione a opção "TOP".

  • Quick Filter: deixe desmarcado. (valor padrão).

  • List Size: deixe o valor "5". (valor padrão).


Ainda nessa tela, clique na aba superior Pipeline e preencha os campos abaixo.


Figura 3.4 - Configuração do sistema de controle de código do pipeline


  • Definition: selecione a opção "Pipeline script from SCM".
  • SCM: selecione a opção "Git".
  • Repositories / Repository URL: endereço Git (https) do seu projeto.
  • Repositories / Credentials: selecione a credencial de acesso Git criado no primeiro passo desse tutorial.
  • Script Path: nesse campo deve ser informado o endereço do arquivo Jenkinsfile dentro do seu projeto, 
  • Demais campos: deixe a configuração padrão do Jenkins nos outros campos.


Finalizada as configurações, clique em Salvar.

Obter as configurações do Jenkins

Após a criação do Job, precisamos rodar o Jenkins para que ele seja alimentado pelas configurações que passamos através do Jenkinsfile. Assim, acesse o job que acabamos de criar e no menu lateral ou no menu estendido (destaque 1 da figura 4.1) clique em Construir com parâmetros para abrir a página de execução do Pipeline.

Nesse momento só será exibido o parâmetro que criamos no passo anterior (2 da figura 4.1), clique no botão Construir para prosseguir.


Figura 4.1 - Tela de execução do Pipeline


Não é necessário esperar até que seja exibido a falha, assim que aparecer Running on Jenkins in <endereço local do projeto> no Console Output, já é possível cancelar a execução, pois o Jenkins já obteve as configurações do Jenkinsfile. (Figura 4.2)


Figura 4.2 - Inicie a execução e cancele assim que exibir "Running on Jenkins in..."


Executar o pipeline

Através da opção  Construir com parâmetros, volte novamente a tela de execução do pipeline,(Figura 4.1). Verifique que agora são exibidos todos os parâmetros contidos no arquivo Jenkinsfie. 

Com exceção dos parâmetros de seleção, os demais inserimos manualmente quando editamos o Jenkinsfile, dessa forma não será necessário alterá-los.


Figura 5.1 - Tela de execução do Pipeline


  • CRONAPP_USE_CONTEXT: selecione "true" para usar algum perfil de banco de dados configurado no Cronapp ou "false" para configurar manualmente depois. 
  • CRONAPP_TIER: informe qual perfil de banco de dados será usado.
  • CRONAPP_DOCKER_REGISTRY: endereço do Registry usado da imagem, o valor padrão é o Dockerhub.
  • CRONAPP_DOCKER_IMAGE_NAME: nome da <conta>/<repositório> da imagem. 
  • CRONAPP_DOCKERHUB_ACCESS: identificador da credencial de acesso ao Dockerhub.
  • CRONAPP_GIT_URL: Endereço (HTTPS) do repositório Git. 
  • CRONAPP_GIT_USERPASS: identificador da credencial de acesso ao Github,
  • CRONAPP_TAG_VERSION: Tag ou branch que será usada na Construção.


Selecione a opções desejadas e clique em Construir.



Nessa página

* A Figura 1 foi criada por Kharnagy e está sob licença CC BY-SA 4.0.


  • Sem rótulos