CRIANDO UM SERVIDOR UBUNTU COM JENKINS E MONTANDO UMA PIPELINE CI/CD
Published: 2024-01-28 01:52:11

Montando um servidor com Jenkins Ubuntu 22.04

Documentação do Jenkins.
https://www.jenkins.io/doc/book/installing/linux/

Documentação da Docker
https://docs.docker.com/

Documentação da kubernetes
https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/


Acessando a VM para realizar as instalações do que vamos precisar. 
OBS: Onde está o IP deve colocar o IP da sua VM

```
ssh -i C:\Users\gusta\.ssh\terraform root@64.227.10.97
```

Agora seguimos os passos abaixo para instalar Jenkins, Docker e Kubernetes

_1 - Update do servidor_

```
apt update
```

_2 - Pré requisito é a instalação do JAVA._

```
apt install openjdk-17-jdk -y
```

_3 - Rode os comandos abaixo para baixar e instalando o Jenkins no servidor._

```
curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo tee \
  /usr/share/keyrings/jenkins-keyring.asc> /dev/null 
```

```
echo deb[signed-by=/usr/share/keyrings/jenkins-keyring.asc] \
  https://pkg.jenkins.io/debian-stable binary/ | sudo tee \
  /etc/apt/sources.list.d/jenkins.list> /dev/null
```

```
sudo apt-get update
sudo apt-get install jenkins
```

_4 - Instalação do Docker. (Faremos a instalação simples e rápida)._

```
curl -fsSL https://get.docker.com | sh
```

_5 - Adicionando o seu usuário no grupo docker._

_Ex: o usuário usado no exemplo foi “jenkins”_

```
usermod -aG docker jenkins
```

_6 - Depois temos que fazer um restart no jenkins._

```
systemctl restart jenkins
```

_7 - Instalando o kubectl no ubuntu._

_7.1 - Atualize o índice do pacote e instale pacotes necessários para usar o repositório Kubernetes:`aptapt`_

```
sudo apt-get update
sudo apt-get install -y ca-certificates curl
```
_Se você usar o Debian 9 (estiramento) ou anterior, você também_ _precisará instalar:apt-transport-https_

```
sudo apt-get install -y apt-transport-https
```
_7.2 - Baixe a chave de assinatura pública do Google Cloud:_

```
sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg
```


_7.3 - Adicione o repositório Kubernetes:apt_

```
echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
```

_7.4 - Atualizar o índice do pacote com o novo repositório e_ _instalar o kubectl:apt_

```
sudo apt-get update
sudo apt-get install -y kubectl
```

_9 -Agora devemos pegar o IP da Vm e jogar navegador para acessar o Jenkins conforme imagem abaixo._

***EX: https://64.227.10.97:8080***


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5zgnb303fkrf5bvsnqzq.png)

Acesse o caminho abaixo conforme informa na imagem acima para pegar a senha de Administrador.

```
cat /var/lib/jenkins/secrets/initialAdminPassword
```

Ex: Copia o conteúdo gerado e cola no local senha de administrador.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7ur285szbp5z17k3ogpo.png)

_10 - Na tela seguinte vamos costumizar o Jenkins._ 
_Nesse caso vou instalar os plugins que o próprio Jenkins sugere_ _conforme imagem._


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lero7gr6sm3r0ind4dyu.png)


11 - Agora aguardamos a finalização da Instalação.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6a0len05jpkpk9e7oiqz.png)

12 - Criaremos o nosso usuário de acesso preenchendo os campos conforme solicitado.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5g038rwqxqdxzolq7di6.png)

13 - Salva e Finaliza.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jolcst0cnwcn9ae45fm2.png)

14 - Clica em finalizar.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/oqzlmfeyvwz1c63v4wv6.png)

15 - Jenkins Instalado.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bjeouoiyfw4qhmfw0j09.png)

16 - Nesse caso como vamos trabalhar com docker e kubernetes vamos instalar alguns plugins.

Clique em “Gerenciar Jenkins” e “Gerenciar extensões”

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4wdtr9n408sdk9ioif90.png)

17 - Agora clica em “Disponíveis” na busca procuramos por Docker e instalamos os plugins: “Docker” e “Docker Pipeline”

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sd7y06xshqkhcev1zyob.png)

18 - Agora vamos instalar os plugins do kubernetes:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/65v86s2sr24bnvb1vepy.png)

19 - Vamos construir uma nova tarefa

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cyy921xk8flfltzoy1if.png)

20 - Colocamos um nome, clicamos em pipeline e depois em “Tudo certo”.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/osnbvziwscx0ciaglpsf.png)

21 - Vamos fazer as configurações conforme os prints abaixo.
Depois que estiver tudo configurado clique em “salvar”

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jr9z41szgpc7upiwkhdp.png)

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/71qev49o330bzbd0ezw5.png)

22 - Agora Vamos criar o “Jenkinsfile”.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/d3wbxj0ll3ywkqf1jc3s.png)

23 - Depois que o arquivo Jenkinsfile estiver com as configurações, voltamos no painel de controle no Jenkins. “Gerenciar Jenkins” e “Manage Credentials”

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/w5do2xaw3u0cv2lwm1h9.png)

24 - Clicamos em “global” e na próxima tela “Add Credentials”.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0b6kyvka3cqskgboyzay.png)

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n9qsdio4h3jthcyyfkh7.png)

25 - Preencher com os dados conforme o print abaixo.
OBS: Username e password são os do seu dockerhub

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/oa4wj27jcsqe7xbvxgxc.png)

26 - Temos que adicionar uma credencial para o ‘Deploy kubernetes’

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/med4xlk0xtz9f5t0ks99.png)

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k2hfqkwahw9quqtcrrj5.png)

27 - Temos que configurar o webhooks no github com o IP do servidor. Quando fizermos o push vai ser enviado um trigger e a pipeline vai rodar enviando a alteração em tempo real.
A configuração é feita com o IP do servidor do Jenkins

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0lfi01fekxmjrx7lxgj8.png)

28 - Deploy realizado com sucesso de uma pipeline com Jenkins.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z32tcmibqpl3ssxf9q3n.png)