>> 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:
Copie o código do “initialAdminPassword” e cole em “Administrator password” e clique em “Continue”
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
Agora vamos criar o nosso primeiro usuário Administrador que terá acesso à interface do Jenkins e depois vamos clicar em “Save and Finish”
Pronto! Vamos clicar em “Start using Jenkins”.
SUCESSO TOTAL, NOSSO JENKINS ESTÁ NO AR!!!
>> 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”
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”
Agora é só aguardar o restart do Jenkins
Faça login
Clique em “Voltar para a página inicial do Jenkins”
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
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.
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…
26/04/2017 at 7:59 pm
Muito bom, funcionou perfeito! Parabéns!!!
CurtirCurtido por 1 pessoa
26/04/2017 at 10:13 pm
Opa, show man! Muito obrigado pelo feedback!
Valeu manow, abraço!
CurtirCurtir
06/06/2017 at 3:01 pm
Consegui rodar tudo tbm. Agora falta eu aprender a utilizar o Jenkins hehehhe
+Parabéns pelo post.
CurtirCurtido por 1 pessoa
07/06/2017 at 1:51 pm
Boa! …Posts do Jenkins estão no forno e na fila também, em breve teremos!
Feliz em contribuir, abraço!
CurtirCurtir
11/06/2017 at 8:16 pm
Rapaz, bem mais fácil subir o Jenkins assim! Eu que já realizei o upload manual, posso ver através desse tutorial a vantagem do Docker. Parabéns pelo post!
CurtirCurtido por 1 pessoa
11/06/2017 at 10:03 pm
Hehe…Docker realmente impressiona quando começamos a conhecê-lo, obrigado pelo FeedBack mano!
Abraço!
CurtirCurtir
20/09/2017 at 11:06 pm
Muito bom, detalhado. Gostei dos comentários onde explica cada parâmetro da instalação do Jenkins.
CurtirCurtido por 1 pessoa
30/01/2018 at 9:29 am
Desculpe a demora no feedback aquele dia no grupo do Telegram…..
Deu tudo certo e o container com o Jenkins estava plenamente funcional.
Parabéns.
CurtirCurtido por 1 pessoa
27/02/2019 at 4:21 pm
Obrigado por compartilha com a comunidade esse conhecimento e parabéns pelo conteúdo ficou muito bom.
CurtirCurtido por 1 pessoa