Criando sua própria nuvem
com Raspberry Pi
Prof. Me. Daniel Rodrigues de Sousa | professor.daniel.rsousa@gmail.com
Daniel Rodrigues de Sousa
 Engenheiro eletricista formado pela Universidade Cruzeiro do Sul –
2001
 Mestre em Ciências da Computação pela UFABC - 2016
 Autor dos livros Microcontroladores ARM7 – O poder dos 32 bits,
Desbravando o PIC24 – Conheça os Microcontroladores de 16 bits,
Desbravando o PIC18 – Recursos Avançados, Desbravando o
Desbravando o PIC18 – Ensino Didático, todos pela Editora Érica
Computação na nuvem (Cloud Computing)
Porque usar a nuvem?
• Muitos servidores e ocupa muito espaço;
• Pessoal qualificado para suporte;
• Necessidade de resfriamento;
• Alto custo de hardware e manutenção.
• Número reduzido de servidores e espaço;
• Complexidade reduzida e de pessoal
qualificado;
• Redução do consumo energético;
• Elimina hardware local e custos de
manutenção.
Principais serviços de nuvem
Office 365, OneDrive, Skype
and Azure
Google Apps for Nonprofits
File syncing and sharing,
and data backup
Existe alguma solução de baixo custo?
Consumo do servidor caseiro (Rpi)1
1
Teste realizado pelo http://blog.everpi.net
Sem vídeo rodando, Ethernet ligado e download de
arquivos a 200KB/s
Consumo do servidor caseiro (Rpi)
Consumo mensal Raspberry Pi:
Consumo do servidor caseiro (Rpi)
2
http://www.mundomax.com.br/blog/informatica/hd-
externo-rosa-e1eg5-sony/
Consumo de um HD externo 2,5’’2
: 4,5W
Consumo mensal:
Consumo total:
Custo mensal do servidor caseiro (Rpi)
3
https://www.aeseletropaulo.com.br/para-sua-
casa/prazos-e-tarifas/conteudo/tarifa-de-energia-eletrica
Custo kWh (Eletropaulo, sem impostos)3
: R$ 0,23887
Custo mensal do servidor:
Custo mensal do servidor caseiro (PC)
4
http://meiobit.com/10338/qual-o-consumo-de-energia-
de-um-pc-e-o-custo/
Consumo de um PC sem o monitor4
: 150W
Consumo mensal do servidor:
Custo mensal do servidor:
Custo mensal de serviços de Cloud5
5
https://www.tecmundo.com.br/office/104214-tenha-
pacote-office-1-tb-onedrive-minutos-no-skype-r-24-
mes.htm
One Drive (1 TB): R$24,00
Google Drive (1 TB): US$9,99 → R$31,19
Dropbox (1 TB): US$9,99 → R$31,19
Taxa de conversão:
US$1,00 → R$3,1221 (18/09/2017)
Proposta de servidor com RPi
Raspberry Pi + ownCloud = nuvem particular
https://owncloud.org/
Proposta de servidor com RPi
Servidor web
Banco de dados
Scripts CGI
Proposta de servidor com RPi
https://pt.wikipedia.org/wiki/MariaDB#/media/File:LA
MP_software_bundle.svg
Material necessário
●
Raspberry Pi, preferencialmente o modelo 2 ou 3;
●
SD Card de boa procedência, com tamanho mínimo de
2GB;
●
Case para proteger a Raspberry Pi;
●
Leitor de SD Card, se necessário;
●
Fonte de 5 Volts e corrente de 1 Ampère (pode ser utilizado
uma carregador de celular);
●
HD externo com fonte de alimentação, ou um pendrive com
boa capacidade de memória;
●
Cabo de rede;
●
Computador com acesso a rede local, preferencialmente
com Linux instalado (qualquer distribuição baseado no
Debian, como o Ubuntu, Lubuntu, entre outros).
Mãos a obra!
daniel@daniel-notebook:~$ sudo fdisk -l
Identificando a unidade
sudo → Permite a usuários comuns obter privilégios de outro usuário
(super usuário), para executar tarefas específicas dentro do sistema
de maneira segura e controlável pelo administrador.
fdisk → Utilitário que realiza particionamento de discos rígidos.
Identificando a unidade
Disco
Rígido
(HD)
Pendrive
HD externo
mmcblk0
daniel@daniel-notebook:~$ sudo dd if=2017-07-05-
raspbian-jessie-lite.img of=/dev/sdb
Gravando a imagem
dd → Permite converter e copiar arquivos. Ele também pode criar
imagens em discos flexíveis, discos rígidos, mídias ópticas, arquivos
de swap.
OBSERVAÇÃO: não usar a versão Stretch, buscar a versão Jessie
em https://downloads.raspberrypi.org/raspbian_lite/images/
Versões Debian
9.0 → Stretch 17 de junho de 2017
8.0 → Jessie 25 de abril de 2015
7.0 → Wheezy 4 de maio de 2013
6.0 → Squeeze 6 de fevereiro de 2011
5.0 → Lenny 15 de fevereiro de 2009
4.0 → Etch, 8 de abril de 2007
3.1 → Sarge, 6 de junho de 2005
3.0 → Woody, 19 de julho de 2002
2.2 → Potato, 15 de agosto 2000
2.1 → Slink, 9 de março de 1999
2.0 → Hamm, 24 de julho 1998
1.3 → Bo, 2 de junho de 1997
1.2 → Rex, 1996
1.1 → Buzz, 1996
Gravando a imagem
Gravando a imagem
dwc_otg.lpm_enable=0 console=serial0,115200
console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4
elevator=deadline fsck.repair=yes rootwait
Primeiras configurações
Imagem gerada terá duas partições. Dentro da partição boot, alterar o
arquivo cmdline.txt:
De:
Alterar:
dwc_otg.lpm_enable=0 console=serial0,115200
console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4
elevator=deadline fsck.repair=yes rootwait
ip=10.10.1.100
Primeiras configurações
Ainda dentro da partição boot, criar um arquivo vazio com o nome
ssh (sem extensão) na rais da partição.
É necessário este procedimento para a ativação do SSH.
Acessando a placa via SSH
Mudar a senha para o acesso via SSH
pi@raspberrypi:~ $ sudo raspi-config
raspi-config → Configura o hardware ou software da placa.
OBSERVAÇÃO: neste menu deve-se mudar a senha do SSH para
evitar que a placa seja hackeada
É possível aumentar a frequência da máquina para melhorar o
desempenho.
Mudar a senha para o acesso via SSH
pi@raspberrypi:~ $ sudo apt-get update -y &&
sudo apt-get upgrade -y
apt-get → Permite administrar os pacotes .deb de uma forma
automática, de modo que quando um programa é instalado ele instala
e/ou atualiza também todos os pacotes que são necessários para um
funcionamento do programa.
update →Adquire novas listas de pacotes.
upgrade →Faz uma atualização.
-y → confirma automaticamente
Atualização do sistema
Atualização do sistema
Instalação dos pacotes
pi@raspberrypi:~ $ sudo apt-get install
mariadb-server mariadb-client apache2
libapache2-mod-php5 php5-json php5-gd php5-mysql
php5-curl php5-intl php5-mcrypt php5-imagick
Instalação dos pacotes
Instalação dos pacotes
Instalação dos pacotes
Instalação dos pacotes
pi@raspberrypi:~ $ mysql -u root -p
Enter password:
MariaDB [(none)]> CREATE USER
'u_daniel'@'localhost' IDENTIFIED BY 'SUASENHA';
MariaDB [(none)]> CREATE DATABASE db_owncloud;
MariaDB [(none)]> GRANT ALL ON db_owncloud.* TO
'u_daniel'@'localhost';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> exit
Instalação dos pacotes
Instalação dos pacotes
Instalação do ownCloud
pi@raspberrypi:~ $ wget
https://download.owncloud.org/community/owncloud
-10.0.2.tar.bz2
wget→ Permite download via HTTP, HTTPS e FTP.
Instalação do ownCloud
pi@raspberrypi:~ $ sudo tar xvf
https://download.owncloud.org/community/owncloud
-10.0.2.tar.bz2 -C /var/www/html
tar→ Permite compactar e descompactar um arquivo
Instalação do ownCloud
pi@raspberrypi:~ $ sudo chown www-data:www.data
-R /var/html/owncloud/
chown→ Altera o dono de um determinada pasta.
pi@raspberrypi:~ $ sudo nano /etc/apache2/sites-
available/owncloud.conf
Instalação do ownCloud
<ifmodule mod_alias="" c="">
Alias /owncloud /var/www/html/owncloud
</ifmodule>
<directory var="" www="" html="" owncloud="">
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
allow from all
</directory>
Instalação do ownCloud
Instalação do ownCloud
pi@raspberrypi:~ $ sudo service apache2 restart
Instalação do ownCloud (media externa)
pi@raspberrypi:~ $ sudo apt-get install ntfs-3g
-y
pi@raspberrypi:~ $ sudo mkdir
/media/ownclouddrive
Instala o ntfs-3g
Cria o diretório ownclouddrive
Instalação do ownCloud (media externa)
pi@raspberrypi:~ $ id -g www-data
pi@raspberrypi:~ $ id -u www-data
pi@raspberrypi:~ $ ls -l /dev/disk/by-uuid
Instalação do ownCloud (media externa)
Instalação do ownCloud (media externa)
Instalação do ownCloud (media externa)
UUID=2928602C416FD43 /media/ownclouddrive auto
nofail,uid=33,gid=33,umask=0027,dmask=0027,noati
me 0 0
Login e senha
Pasta de
dados
Outras
configurações
Username: daniel
Password: 1234567890
Data Folder: /media/owncloud
Database User: u_daniel
Database password: 'SUASENHA'
Database Name: db_owncloud
Configuração inicial ownCloud
Login e senha
Pasta de
dados
Outras
configurações
Endereço público x endereço privado
Serviço de DNS gratuito: no-ip
Serviço de DNS gratuito: no-ip
Instalação do cliente de atualização do no-ip
cd /usr/local/src
sudo wget http://www.no-ip.com/client/linux/
noip-duc-linux.tar.gz
sudo tar xzf noip-duc-linux.tar.gz
cd no-ip-2.1.9
sudo make
sudo make install
Instalação do cliente de atualização do no-ip
sudo /usr/local/bin/noip2
Depois de instalado:
Perguntas?
Referências
https://pplware.sapo.pt/linux/tenha-propria-cloud-aprenda-
instalar-owncloud-9-0/
http://www.avoiderrors.net/owncloud-raspberry-pi/
http://www.noip.com/support/knowledgebase/installing-the-linux-
dynamic-update-client/
http://raspberrypi.org/
Obrigado!
professor.daniel.rsousa@gmail.com

Criando sua própria nuvem com Raspberry Pi

  • 1.
    Criando sua próprianuvem com Raspberry Pi Prof. Me. Daniel Rodrigues de Sousa | professor.daniel.rsousa@gmail.com
  • 2.
    Daniel Rodrigues deSousa  Engenheiro eletricista formado pela Universidade Cruzeiro do Sul – 2001  Mestre em Ciências da Computação pela UFABC - 2016  Autor dos livros Microcontroladores ARM7 – O poder dos 32 bits, Desbravando o PIC24 – Conheça os Microcontroladores de 16 bits, Desbravando o PIC18 – Recursos Avançados, Desbravando o Desbravando o PIC18 – Ensino Didático, todos pela Editora Érica
  • 3.
    Computação na nuvem(Cloud Computing)
  • 4.
    Porque usar anuvem? • Muitos servidores e ocupa muito espaço; • Pessoal qualificado para suporte; • Necessidade de resfriamento; • Alto custo de hardware e manutenção. • Número reduzido de servidores e espaço; • Complexidade reduzida e de pessoal qualificado; • Redução do consumo energético; • Elimina hardware local e custos de manutenção.
  • 5.
    Principais serviços denuvem Office 365, OneDrive, Skype and Azure Google Apps for Nonprofits File syncing and sharing, and data backup
  • 6.
    Existe alguma soluçãode baixo custo?
  • 7.
    Consumo do servidorcaseiro (Rpi)1 1 Teste realizado pelo http://blog.everpi.net Sem vídeo rodando, Ethernet ligado e download de arquivos a 200KB/s
  • 8.
    Consumo do servidorcaseiro (Rpi) Consumo mensal Raspberry Pi:
  • 9.
    Consumo do servidorcaseiro (Rpi) 2 http://www.mundomax.com.br/blog/informatica/hd- externo-rosa-e1eg5-sony/ Consumo de um HD externo 2,5’’2 : 4,5W Consumo mensal: Consumo total:
  • 10.
    Custo mensal doservidor caseiro (Rpi) 3 https://www.aeseletropaulo.com.br/para-sua- casa/prazos-e-tarifas/conteudo/tarifa-de-energia-eletrica Custo kWh (Eletropaulo, sem impostos)3 : R$ 0,23887 Custo mensal do servidor:
  • 11.
    Custo mensal doservidor caseiro (PC) 4 http://meiobit.com/10338/qual-o-consumo-de-energia- de-um-pc-e-o-custo/ Consumo de um PC sem o monitor4 : 150W Consumo mensal do servidor: Custo mensal do servidor:
  • 12.
    Custo mensal deserviços de Cloud5 5 https://www.tecmundo.com.br/office/104214-tenha- pacote-office-1-tb-onedrive-minutos-no-skype-r-24- mes.htm One Drive (1 TB): R$24,00 Google Drive (1 TB): US$9,99 → R$31,19 Dropbox (1 TB): US$9,99 → R$31,19 Taxa de conversão: US$1,00 → R$3,1221 (18/09/2017)
  • 13.
    Proposta de servidorcom RPi Raspberry Pi + ownCloud = nuvem particular https://owncloud.org/
  • 14.
    Proposta de servidorcom RPi Servidor web Banco de dados Scripts CGI
  • 15.
    Proposta de servidorcom RPi https://pt.wikipedia.org/wiki/MariaDB#/media/File:LA MP_software_bundle.svg
  • 16.
    Material necessário ● Raspberry Pi,preferencialmente o modelo 2 ou 3; ● SD Card de boa procedência, com tamanho mínimo de 2GB; ● Case para proteger a Raspberry Pi; ● Leitor de SD Card, se necessário; ● Fonte de 5 Volts e corrente de 1 Ampère (pode ser utilizado uma carregador de celular); ● HD externo com fonte de alimentação, ou um pendrive com boa capacidade de memória; ● Cabo de rede; ● Computador com acesso a rede local, preferencialmente com Linux instalado (qualquer distribuição baseado no Debian, como o Ubuntu, Lubuntu, entre outros).
  • 18.
  • 19.
    daniel@daniel-notebook:~$ sudo fdisk-l Identificando a unidade sudo → Permite a usuários comuns obter privilégios de outro usuário (super usuário), para executar tarefas específicas dentro do sistema de maneira segura e controlável pelo administrador. fdisk → Utilitário que realiza particionamento de discos rígidos.
  • 20.
  • 21.
    daniel@daniel-notebook:~$ sudo ddif=2017-07-05- raspbian-jessie-lite.img of=/dev/sdb Gravando a imagem dd → Permite converter e copiar arquivos. Ele também pode criar imagens em discos flexíveis, discos rígidos, mídias ópticas, arquivos de swap. OBSERVAÇÃO: não usar a versão Stretch, buscar a versão Jessie em https://downloads.raspberrypi.org/raspbian_lite/images/
  • 22.
    Versões Debian 9.0 →Stretch 17 de junho de 2017 8.0 → Jessie 25 de abril de 2015 7.0 → Wheezy 4 de maio de 2013 6.0 → Squeeze 6 de fevereiro de 2011 5.0 → Lenny 15 de fevereiro de 2009 4.0 → Etch, 8 de abril de 2007 3.1 → Sarge, 6 de junho de 2005 3.0 → Woody, 19 de julho de 2002 2.2 → Potato, 15 de agosto 2000 2.1 → Slink, 9 de março de 1999 2.0 → Hamm, 24 de julho 1998 1.3 → Bo, 2 de junho de 1997 1.2 → Rex, 1996 1.1 → Buzz, 1996
  • 23.
  • 24.
  • 25.
    dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblk0p2rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait Primeiras configurações Imagem gerada terá duas partições. Dentro da partição boot, alterar o arquivo cmdline.txt: De: Alterar: dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait ip=10.10.1.100
  • 26.
    Primeiras configurações Ainda dentroda partição boot, criar um arquivo vazio com o nome ssh (sem extensão) na rais da partição. É necessário este procedimento para a ativação do SSH.
  • 27.
  • 28.
    Mudar a senhapara o acesso via SSH pi@raspberrypi:~ $ sudo raspi-config raspi-config → Configura o hardware ou software da placa. OBSERVAÇÃO: neste menu deve-se mudar a senha do SSH para evitar que a placa seja hackeada É possível aumentar a frequência da máquina para melhorar o desempenho.
  • 29.
    Mudar a senhapara o acesso via SSH
  • 30.
    pi@raspberrypi:~ $ sudoapt-get update -y && sudo apt-get upgrade -y apt-get → Permite administrar os pacotes .deb de uma forma automática, de modo que quando um programa é instalado ele instala e/ou atualiza também todos os pacotes que são necessários para um funcionamento do programa. update →Adquire novas listas de pacotes. upgrade →Faz uma atualização. -y → confirma automaticamente Atualização do sistema
  • 31.
  • 32.
    Instalação dos pacotes pi@raspberrypi:~$ sudo apt-get install mariadb-server mariadb-client apache2 libapache2-mod-php5 php5-json php5-gd php5-mysql php5-curl php5-intl php5-mcrypt php5-imagick
  • 33.
  • 34.
  • 35.
  • 36.
  • 38.
    pi@raspberrypi:~ $ mysql-u root -p Enter password: MariaDB [(none)]> CREATE USER 'u_daniel'@'localhost' IDENTIFIED BY 'SUASENHA'; MariaDB [(none)]> CREATE DATABASE db_owncloud; MariaDB [(none)]> GRANT ALL ON db_owncloud.* TO 'u_daniel'@'localhost'; MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> exit Instalação dos pacotes
  • 39.
  • 40.
    Instalação do ownCloud pi@raspberrypi:~$ wget https://download.owncloud.org/community/owncloud -10.0.2.tar.bz2 wget→ Permite download via HTTP, HTTPS e FTP.
  • 41.
    Instalação do ownCloud pi@raspberrypi:~$ sudo tar xvf https://download.owncloud.org/community/owncloud -10.0.2.tar.bz2 -C /var/www/html tar→ Permite compactar e descompactar um arquivo
  • 42.
    Instalação do ownCloud pi@raspberrypi:~$ sudo chown www-data:www.data -R /var/html/owncloud/ chown→ Altera o dono de um determinada pasta. pi@raspberrypi:~ $ sudo nano /etc/apache2/sites- available/owncloud.conf
  • 43.
  • 44.
    <ifmodule mod_alias="" c=""> Alias/owncloud /var/www/html/owncloud </ifmodule> <directory var="" www="" html="" owncloud=""> Options Indexes FollowSymLinks AllowOverride All Order allow,deny allow from all </directory> Instalação do ownCloud
  • 45.
    Instalação do ownCloud pi@raspberrypi:~$ sudo service apache2 restart
  • 47.
    Instalação do ownCloud(media externa) pi@raspberrypi:~ $ sudo apt-get install ntfs-3g -y pi@raspberrypi:~ $ sudo mkdir /media/ownclouddrive Instala o ntfs-3g Cria o diretório ownclouddrive
  • 48.
    Instalação do ownCloud(media externa) pi@raspberrypi:~ $ id -g www-data pi@raspberrypi:~ $ id -u www-data pi@raspberrypi:~ $ ls -l /dev/disk/by-uuid
  • 49.
    Instalação do ownCloud(media externa)
  • 50.
    Instalação do ownCloud(media externa)
  • 51.
    Instalação do ownCloud(media externa) UUID=2928602C416FD43 /media/ownclouddrive auto nofail,uid=33,gid=33,umask=0027,dmask=0027,noati me 0 0
  • 52.
    Login e senha Pastade dados Outras configurações
  • 53.
    Username: daniel Password: 1234567890 DataFolder: /media/owncloud Database User: u_daniel Database password: 'SUASENHA' Database Name: db_owncloud Configuração inicial ownCloud Login e senha Pasta de dados Outras configurações
  • 55.
    Endereço público xendereço privado
  • 56.
    Serviço de DNSgratuito: no-ip
  • 57.
    Serviço de DNSgratuito: no-ip
  • 58.
    Instalação do clientede atualização do no-ip cd /usr/local/src sudo wget http://www.no-ip.com/client/linux/ noip-duc-linux.tar.gz sudo tar xzf noip-duc-linux.tar.gz cd no-ip-2.1.9 sudo make sudo make install
  • 59.
    Instalação do clientede atualização do no-ip sudo /usr/local/bin/noip2 Depois de instalado:
  • 60.
  • 61.
  • 62.