Desbloqueando CI/CD: Como Instalar o Jenkins com Sucesso no Ubuntu

**Você está gastando muito tempo implantando código em sua infraestrutura com muitas etapas e softwares? Não se preocupe, você está no lugar certo para aprender como instalar o Jenkins, a ferramenta de código aberto mais amplamente utilizada.

Neste tutorial, você aprenderá como instalar o Jenkins em uma máquina Ubuntu, para que você possa construir e implantar código com apenas um clique.

Continue lendo e comece a instalar!

Pré-requisitos

Este post será um tutorial passo a passo. Para acompanhar, certifique-se de ter uma máquina Ubuntu. Este tutorial utiliza o Ubuntu 18.04 com o Apache instalado.

Instalando a Versão 11 do Java em uma Máquina Ubuntu

Jenkins é uma ferramenta de Integração Contínua (CI) e Implantação Contínua (CD), que pode ser executada em diferentes containers servlet, como Apache tomcat ou glassfish. Mas para esta demonstração, você executará o Jenkins em seu servidor de container servlet Java embutido.

Existem várias implementações Java que você pode usar para trabalhar com o Jenkins, mas OpenJDK é a mais popular, que você instalará e usará neste tutorial.

1. Faça login em sua máquina Ubuntu usando seu cliente SSH favorito.

2. Em seguida, execute os seguintes comandos para criar um diretório chamado ~/install_jenkins_demo e mude para esse diretório.

mkdir ~/install_jenkins_demo
cd ~/install_jenkins_demo

3. Execute o comando apt install abaixo para instalar o Java em sua máquina.

# Instalando Java Versão: Java SE 11 (LTS)
sudo apt install default-jdk 
Installing Java Version: Java SE 11 (LTS)

4. Por fim, execute o comando abaixo para verificar a versão do Java instalado em sua máquina. Fazendo isso garante que você instalou o Java com sucesso.

# Verificando a Versão do Java para verificar a instalação do Java.
java -version
Checking the Version of Java to verify Java installation

Instale o Jenkins na instância do Ubuntu 18.04 LTS

Agora que você tem o Java instalado na máquina Ubuntu, é hora de instalar o Jenkins em sua máquina. A instalação do Jenkins é bastante semelhante à instalação de outros pacotes em sua máquina.

Supondo que você ainda esteja conectado ao cliente SSH:

1. Primeiro, execute o comando apt update para atualizar os pacotes do seu sistema.

sudo apt update

2. Em seguida, execute o comando wget abaixo para adicionar a chave pública do Jenkins ao seu sistema.

Adicionar a chave pública permite que o site do Jenkins baixe o repositório oficial do Jenkins ou quaisquer pacotes necessários.

wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -

3. Execute os seguintes comandos para adicionar o repositório oficial do Jenkins ao seu sistema e atualizar seu sistema.

# Adicionando o repositório oficial do Jenkins ao sistema
sudo sh -c 'echo deb https://pkg.jenkins.io/debian-stable binary/ > \
    /etc/apt/sources.list.d/jenkins.list'
# Atualizando o pacote
sudo apt-get update

4. Agora, execute o comando abaixo para instalar o pacote Jenkins.

# Instalando o Pacote Jenkins
sudo apt-get install Jenkins
Installing the Jenkins package on an ubuntu machine

5. Finalmente, execute o comando service abaixo para verificar o status do serviço Jenkins. # Validando o serviço Jenkins na máquina Ubuntu service jenkins status

# Validando o serviço Jenkins na máquina Ubuntu
service jenkins status

Como você pode ver abaixo, o status mostra que o serviço Jenkins está ativo.

Verifying the status of Jenkins service

Configurando uma Instância do Jenkins

Agora, você está na metade do caminho para instalar o Jenkins com sucesso. Mas, antes de começar a usá-lo, você precisa configurá-lo com as amenidades básicas. Como? O primeiro passo na configuração do Jenkins é desbloquear o Jenkins recém-instalado.

Assumindo que você ainda está conectado ao cliente SSH:

1. Abra seu navegador favorito e vá para o endereço IP do servidor seguido pela porta 8080, como jenkins-ip:8080. Depois de acessar o link, será necessário desbloquear o Jenkins fornecendo a senha de administrador. A senha de administrador está armazenada no diretório /var/lib/jenkins/secrets/initialAdminPassword no servidor (passo dois).

Unlocking Jenkins Instance

2. Execute o comando cat abaixo para adicionar a senha do administrador à sua máquina a partir do diretório /var/lib/jenkins/secrets/initialAdminPassword.

cat /var/lib/jenkins/secrets/initialAdminPassword

Como você pode ver abaixo, a string enorme na saída é a senha de admin. Anote a senha de admin, pois você precisará dela para desbloquear o Jenkins (passo três).

Checking the Initial Admin Password

3. Volte para o seu navegador (Desbloquear Jenkins página) e insira a senha de admin que você anotou no passo dois.

Uma vez que você desbloqueou o Jenkins, seu navegador redireciona para uma página onde você personalizará sua instância do Jenkins com plugins (passo quatro).

4. Na página Personalizar Jenkins, clique na opção Instalar plugins sugeridos.

O Plugin Jenkins é uma ferramenta de terceiros que se integra com o Jenkins e permite que você execute tarefas como o plugin Git. O plugin Git permite que você se conecte com repositórios Git, execute comandos Git, e assim por diante.

Installing the Jenkins Plugin

5. Preencha os detalhes do usuário Admin, conforme mostrado abaixo, e clique em Salvar e Continuar para criar um usuário Admin. Esse usuário Admin permite que você trabalhe com o Dashboard UI do Jenkins ou com a instância do Jenkins.

Assim que você clicar em Salvar e Continuar, você receberá uma tela de Configuração da Instância mostrada no passo cinco.

Por padrão, o Jenkins cria um usuário Admin com nome de usuário/senha (admin: admin), mas ainda oferece a opção de criar um usuário Admin de sua escolha. Você pode pular e continuar como admin se não quiser criar um usuário Admin personalizado.

Creating the First Admin user

6. Por último, clique em Salvar e Finalizar para salvar a configuração da instância.

A configuração da instância permite que você especifique a URL do Jenkins que deseja usar, e neste caso, você usará a URL padrão (ou seja, server-ip:8080)

Configuring the Jenkins Instance
Jenkins Running successfully on Port 8080

Alterando a Porta Padrão de uma Instância do Jenkins

Anteriormente, você aprendeu que por padrão, o Jenkins é executado na porta 8080, o que é bom. Mas e se você precisar executar algumas outras aplicações na mesma porta, como o apache ou o NGINX? Sem problemas! Você pode alterar a porta padrão do Jenkins (8080) e executar a instância do Jenkins em outras portas.

1. Abra o arquivo /etc/default/Jenkins no seu editor de texto preferido e altere a porta padrão de 8080 para 9090 e salve as alterações.

Changing the Default Jenkins Port

2. Em seguida, execute o comando abaixo para reiniciar o Jenkins, para que as configurações atualizadas tenham efeito.

sudo systemctl restart jenkins

3. Por fim, acesse a URL do Jenkins, mas desta vez, altere a porta para 9090, conforme mostrado abaixo.

Jenkins Running successfully on Port 9090

Executando o Jenkins de forma segura (HTTPS) usando certificado SSL

Neste momento, sua instância do Jenkins está sendo executada perfeitamente na porta 9090. Mas está segura? Não, não está. Proteja sua instância do Jenkins e evite que seja comprometida por atacantes, ativando um certificado SSL.

Os certificados SSL são principalmente usados para testes na máquina local quando não há certificado disponível de uma autoridade de certificação externa.

Para proteger sua instância do Jenkins:

1. Execute cada comando abaixo para criar um diretório chamado ~/certificates para armazenar os certificados e alterar para esse diretório.

mkdir ~/certificates
cd ~/certificates

2. Em seguida, execute o seguinte comando openssl para gerar uma Solicitação de Assinatura de Certificado (CSR) e uma chave privada.

openssl req -x509 -newkey rsa:4096 -keyout apache.key -out apache.crt -days 365 -nodes
Generating a CSR and private key

3. Execute os seguintes comandos para criar outro diretório (/etc/apache2/ssl) e mover os certificados do diretório ~/certificates/ para o diretório /etc/apache2/ssl.

mkdir /etc/apache2/ssl
mv ~/certificates/* /etc/apache2/ssl/.

4. Abra o arquivo de configuração do site SSL padrão do Apache (/etc/apache2/sites-available/default-ssl.conf) e adicione as linhas abaixo. Certifique-se de substituir <nome-do-seu-servidor> pelo nome real do seu servidor.

No código abaixo, você especifica a localização (chave do certificado e arquivo) onde copiou previamente os certificados SSL. Além disso, para o Jenkins redirecionar na porta 9090, você adicionará o argumento ProxyPass e ativará o ProxyPreserveHost.

ServerName <my-server-name>
SSLCertificateFile    /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:9090/
ProxyPassReverse / http://127.0.0.1:9090/
Updating default SSL Apache site configuration file

5. Agora execute cada comando abaixo para habilitar o módulo SSL, habilitar o site que você modificou (passo quatro) e reiniciar o serviço Apache.

# Habilitar o módulo SSL, para trabalhar com conexões SSL.
sudo a2enmod ssl proxy proxy_http proxy_balancer
# Habilitar o site que você modificou (passo quatro)
sudo a2ensite default-ssl.conf
# Reiniciar o serviço Apache
sudo service apache2 restart

6. Finalmente, navegue até a sua instância do Jenkins, mas desta vez, utilizando HTTPS, como mostrado abaixo.

Como você pode ver, o Jenkins está abrindo com sucesso com conexões SSL na porta HTTPS. Não se preocupe se você ver um símbolo de aviso exibindo a mensagem Não seguro. Você receberá esse aviso pois está utilizando um certificado autoassinado (criado por você) e não pela autoridade de certificação.

Accessing Jenkins Instance with SSL connections on HTTPS port

Conclusão

Neste tutorial, você aprendeu como instalar o Jenkins em uma máquina Ubuntu e verificar que você pode acessar uma instância do Jenkins de forma segura.

Agora, como você planeja melhorar seu jogo com o Jenkins? Talvez automatizar implantações web? Ou criar um pipeline de CI CD do Jenkins para melhorar seu processo de desenvolvimento de software?

Source:
https://adamtheautomator.com/install-jenkins/