Servidor MQTT-Mosquitto em Raspberry pi 3 B+
Tags: mosquitto, linux, docker, ubuntu
Published: 2021-08-30 17:16:06

## Instalação do Ubuntu Server no Raspberry
<br>

Para a instalação é necessário a formatação do seu cartão SD, no meu caso eu utilizei o <a href="https://www.sdcard.org/downloads/formatter/">*SD Card Formatter*</a>. Também devemos ter a imagem do <a href="https://ubuntu.com/download/server">*Ubuntu Server*</a>. Tendo completado essas duas etapas tenha instalado em seu computador um software que escreve a imagem em seu cartão SD, temos o <a href="https://www.balena.io/etcher/">balenaetcher</a> que é bastante utilizado, mas eu optei em utilizar o <a href="https://www.raspberrypi.org/software/">*Raspberry Pi Imager*</a>, feito isso basta você escrever a imagem utilizando algum desses softwares citados.
<br>
![Ubuntu Server](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wd0b88uiucfiy3847gq2.jpg)
<br>

![Raspberry Pi Imager](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rtqhzbclp2munggr9fro.jpg)

## Configuração do Ubuntu Server
Se você planeja deixar o seu raspberry em uma conexão Wi-fi deve seguir esses passos:<br>
Primeiro abra o diretório do cartão SD em seu computador e ache a pasta *“system-boot”* e encontre o arquivo *network-config*. Abra esse arquivo em algum editor de texto remova os "#", que fazem com que a linha seja lida como um comentário.<br>
![wifi exemplo](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/c2bt8gx7z1s4kfl87gx1.jpg)
Mude os valores do *wifi network name*, para o nome da sua rede wifi e o *wifi password* para sua senha. Como no exemplo abaixo:
![wifi](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hmkjh1e8jp4svk9jc71h.jpg) 
Caso você vá utilizar seu raspberry com o cabo de rede, pode pular a parte de cima.<br>
Tendo feito alguma dessas etapas você já pode colocar o cartão SD em seu raspberry. Conectando em um monitor e com teclado basta ligar o seu raspberry e logar no server com o login e senha padrão: ubuntu.<br>
Para uma conexão via SSH faça o download do <a href="https://www.putty.org">*Putty*</a> e do <a href="https://angryip.org"><i>angry ip scanner</i></a> ou o <a href="https://play.google.com/store/apps/details?id=com.myprog.netscan"><i>network scanner</i></a> no android, para obter o IP do seu raspberry. 

## Instalação do Docker no Ubuntu Server

Para esse projeto eu escolhi utilizar o docker para estar "virtualizando" a imagem do *mosquitto*, para que futuramente eu possa utilizar um cluster com 3 (três) raspberrys para ter uma orquestração utilizando *Kubernetes*. Para poder colocar em pratica oque aprendi com o curso *DESCOMPLICANDO DOCKER* da <a href="https://www.linuxtips.io">Linuxtips</a>.

Para a instalação:
```
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
```
Para testar se a instalação foi bem sucedida digite: `docker version`.

## Baixando imagem do Mosquitto e inicialização do container

Para baixar o imagem basta você digitar:  `docker pull eclipse-mosquitto`, com isso basta digitar `docker image ls` para ver todas as imagens digite  e selecionar a *mosquitto*, digitando `docker container run <"ID da imagem">`. 

Com isso o seu container estará em execução e pronto para ser configurado para comunicação com seu arduino.