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 software? 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 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 usa 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 você pode executar em diferentes containers servlet, como o Apache Tomcat ou Glassfish. Mas para esta demonstração, você executará o Jenkins em seu servidor embutido de contêiner servlet Java.

Existem várias implementações Java que você pode usar para trabalhar com o Jenkins, mas o OpenJDK é o 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. Fazê-lo garante que você tenha instalado 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 em uma 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 logado no 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 faça o download do repositório oficial do Jenkins ou de 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 o 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 Jenkins

Neste ponto, você está na metade do processo de instalação bem-sucedida do Jenkins. Mas, antes de começar a usá-lo de fato, você precisa configurá-lo com comodidades básicas. Como? O primeiro passo para configurar o Jenkins é desbloquear o Jenkins recém-instalado.

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

1. Abra seu navegador favorito e acesse o endereço IP do servidor seguido pela porta 8080, como jenkins-ip:8080. Após acessar o link, você precisará desbloquear o Jenkins fornecendo a senha administrativa. A senha administrativa é 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 em 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 sequência extensa na saída é a senha do admin. Anote a senha do admin, pois você precisará dela para desbloquear o Jenkins (passo três).

Checking the Initial Admin Password

3. Volte para o seu navegador web (Desbloquear Jenkins página) e insira a senha do admin anotada no passo dois.

Assim que desbloquear o Jenkins, o seu navegador redirecionará para uma página onde personalizará a instância do Jenkins com plugins (passo quatro).

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

O Plugin do Jenkins é uma ferramenta de terceiros que se integra ao Jenkins e permite realizar tarefas como o plugin Git. O plugin Git permite conectar-se ao repositório Git, executar comandos Git, e assim por diante.

Installing the Jenkins Plugin

5. Preencha os detalhes do usuário Administrador, conforme mostrado abaixo, e clique em Salvar e Continuar para criar um usuário Administrador. Este usuário Administrador permite trabalhar com o painel de controle do Jenkins ou a instância do Jenkins.

Assim que clicar em Salvar e Continuar, será exibida uma tela de Configuração da Instância, conforme mostrado no passo cinco.

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

Creating the First Admin user

6. Por fim, clique em Salvar e Concluir para salvar a configuração da instância.

A configuração da instância permite especificar 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, aprendeu-se que por padrão, o Jenkins é executado na porta 8080, o que é bom. Mas e se precisar executar algumas outras aplicações na mesma porta, como apache ou 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 entrem em vigor.

sudo systemctl restart jenkins

3. Por fim, navegue até 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á seguro? 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 testar 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 certificados e mude 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 Apache padrão (/etc/apache2/sites-available/default-ssl.conf) e adicione as linhas abaixo. Certifique-se de substituir <my-server-name> pelo nome real do seu servidor.

No código abaixo, especifique a localização (chave e arquivo do certificado) para onde você 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. Por fim, navegue até a sua instância do Jenkins, mas desta vez, utilizando HTTPS, conforme mostrado abaixo.

Como pode ver, o Jenkins está abrindo com sucesso com conexões SSL na porta HTTPS. Não se preocupe se vir 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 certificadora.

Accessing Jenkins Instance with SSL connections on HTTPS port

Conclusão

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

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

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