>> Apresentação e considerações

Show!!! Estamos ai em mais um artigo, isso é excelente pois significa que nossos estudos estão evoluindo…

Vamos começar a utilizar o Docker com um propósito bem definido para subir um servidor Jenkins

Nesse tutorial, vamos explorar a criação do container, setup do Jenkins web e por fim a atualização da versão do Jenkins pela própria interface, espero que gostem…

Versão do docker utilizada no tutorial:

  • Sistema Operacional Host: Linux Mint 18 (Sarah)
  • Docker version 17.04.0-ce, build 4845c56

Let’s go!

>> Criando um volume local persistente para os dados do Jenkins

Como sabemos os containers nascem para morrer, e pra isso precisamos estar preparados para persistir os dados importantes, no caso do Jenkins temos o jenkins_home, ali são salvas todas as configurações, customizações, jobs criados, plugins instalados e etc, ou seja, se iniciarmos o Jenkins sem um volume persistente o terminar o container perderemos tudo aquilo que configuramos

~# docker volume create jenkins_home
jenkins_home

~# docker volume ls |grep jenkins_home
local               jenkins_home

No Docker temos a opção “inspect” para praticamente todos os recursos, esse comando exibe os detalhes do que está sendo inspecionado no formato JSON, em nosso vamos podemos ver informações referentes ao volume criado

Na opção “Mountpoint” podemos ver onde o volume está fisicamente instalado em nosso host

~# docker volume inspect jenkins_home
[
    {
       "Driver": "local",
       "Labels": {},
       "Mountpoint": "/var/lib/docker/volumes/jenkins_home/_data",
       "Name": "jenkins_home",
       "Options": {},
       "Scope": "local"
    }
]

>> Iniciando o container Jenkins!

Agora vamos subir o container!

~# docker container run --name jenkins -d --restart=always -p 8080:8080 -p 50000:50000 -u 0 -v jenkins_home:/var/jenkins_home jenkins
1a6150cd3237e7251fa6da63f7a715036433d840e9c6c8571c8b47200fb40828

Entendendo as opções:

docker container run Comando padrão para executar um container
–name jenkins Nome do container
-d Inicia em modo “dettached” em Backgroud
–restart=always Reiniciar o container em caso de falha
-p 8080:8080 Binda a porta do host para o container
-p 50000:50000 Binda a porta do host para o container
-u 0 ID do usuário root para executar o container
-v jenkins_home:/var/jenkins_home Monta o volume persistente
jenkins Nome da imagem

Vamos pegar o ID do nosso container e executar um comando para recuperar a “Administrator password” inicial para que possamos instalar o nosso Jenkins

~# docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1a6150cd3237 jenkins "/bin/tini -- /usr..." 9 minutes ago Up 9 minutes 0.0.0.0:8080->8080/tcp, 0.0.0.0:50000->50000/tcp jenkins

~# docker container exec 1a6150cd3237 cat /var/jenkins_home/secrets/initialAdminPassword
8debe7b37c844f379f80c048536148c6

Copie essa saída, ela será utilizada para configurar a interface web.

>>Configuração inicial do Jenkins

Abre seu browser e acesse o endereço:

http://127.0.0.1:8080

Copie o código do “initialAdminPassword” e cole em “Administrator password” e clique em “Continue”

jenkins-web-01

Nesse passo, vamos instalar os plugins sugeridos em “Install suggested plugins” e vamos aguardar, pois o processo de instalação dos plugins demora alguns minutos

jenkins-web-02.png

jenkins-web-03

Agora vamos criar o nosso primeiro usuário Administrador que terá acesso à interface do Jenkins e depois vamos clicar em “Save and Finish”

jenkins-web-04

Pronto! Vamos clicar em “Start using Jenkins”.

jenkins-web-05

SUCESSO TOTAL, NOSSO JENKINS ESTÁ NO AR!!!

jenkins-web-06

>> Atualizando a versão do Jenkins

Em nossa instalação vermos barra superior do Jenkins que temos 1 notificação de que existe uma nova versão do Jenkins disponível, para atualizar vamos clicar em “Ou fazer a atualização automaticamente”

jenkins-web-07

Vamos aguardar que ele automaticamente irá realizar o download do “jenkins.war”, já deixe a opção “Reinicie o Jenkins quando a instalação estiver completa e nenhum job estiver rodando”

jenkins-web-08

Agora é só aguardar o restart do Jenkins

jenkins-web-09

Faça login

jenkins-web-10

Clique em “Voltar para a página inicial do Jenkins”

jenkins-web-11

E agora DIVIRTA-SE!!! …é só começar a personalizar e a criar os seus Jobs.

Estamos com o Jenkins na versão: Jenkins ver. 2.46.1

jenkins-web-12.png

Em nossa máquina host podemos ver que TODOS os dados do nosso Jenkins foram gravados no volume que criamos, ou seja, se precisarmos desligar o nosso container, poderemos iniciá-lo novamente mantendo todas as nossas configurações já realizadas.

jenkins-web-13

 
Caso queira ver informações detalhadas a respeito das configurações do container como informações de rede (ip, gateway, dns, etc.), volumes, variáveis de ambiente, hostname, portas entre outras informações você pode usar o “inspect”

~# docker container inspect 1a6150cd3237

>> Referências

https://hub.docker.com/_/jenkins/

>> Conclusão

Bom galera, esse Blog é o fruto de alguns estudos que tenho feito e essa é a forma que encontrei de fixar os conhecimentos e de quebra compartilhá-los para entregar a minha pequena contribuição à comunidade.

Essa não é a única forma de instalação ou de configuração do Jenkins mais foi a forma que utilizei para criar meu laboratório, espero que de fato ajude aqueles que também estão com essa sede de aprendizado!!!

Pretendo fazer mais posts voltados para as configurações do Jenkins, automação de Builds, instalação de plugins, integrações, integração contínua e etc., a medida que for evoluindo os meus estou vou postando os artigos!

Comentários, crítocas, elogios e sugestões SEMPRE serão bem vindos, por favor comentem, curtam e compartilhem.

Valeuuuuuuuu…