Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

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 algumas etapas do pipeline.

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.

  • Padrão dos repositórios:
    • Github: para o repositório de código;
    • Dockerhub: para o repositório de imagem:
      • Definir nome da sua imagem Docker. 
  • Jenkins:

Passos

Novas


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 > 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 - Configuração do parâmetro CRONAPP_TAG_VERSION


  • Name: informe o parâmetro "CRONAPP_TAG_VERSION", mesmo valor do 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.



Nessa página

Índice

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