sábado, 18 de setembro de 2021

Instalando o plugin Plex no TrueNAS

Pessoal,

Confesso que tentei, muito e muito, de verdade, instalar o contêiner do Transmission no Ubuntu.

Tentei montar o disco do TrueNAS no Ubuntu (consegui), tentei acrescentar e apagar arquivos no TrueNAS utilizando o Shell do Ubuntu (consegui) mas não consegui, de jeito nenhum, fazer o Transmission baixar arquivos. Sempre dava o mesmo erro: pasta não encontrada!


A pasta estava lá e eu conseguir acessar pelo Ubuntu, pelo Mac e pelo diabo a quatro, mas o Transmission sempre dava o mesmo erro. Liberei porta no roteador, mudei pasta, instalei e desinstalei o contêiner, apaguei as pastas para que o Docker as criasse, monte e desmontei pasta. Nada.

Interessante é que ele criou as pastas de configuração que foram montadas no mesmo disco... E quando coloco o Transmission no Mac para baixar o mesmo arquivo, o download ocorre sem nenhum problema. E as permissões no TrueNAS para acessar a pasta estão todas corretas.

Imaginei que a mesma coisa ocorreria com o Plex. Aí, para facilitar minha vida, resolvi tentar instalar o Plex direto no TrueNAS.

Pensei comigo: não pode ser tão difícil, o plugin oficial do Plex para o TrueNAS TEM que ser mobral de instalar!

E foi.

Certa vez tinha visto no Youtube alguns tutoriais para instalar esse plugin. Até tinha instalado antes. O cara criava usuário e grupo, criava o jail, instalava o plugin, parava o plugin e o jail, mexia nas permissões, uma confusão de vai pra frente e pra trás. Isso não pode ser tão complicado...

Então fiz diferente. O usuário é o mesmo que eu tenho para acessar o pool pela minha rede doméstica. Esse já estava feito e funcionando normal.

Aí instalei direto o plugin em Plugins -> Plex Media Server -> Install. Aí abre isso aqui:


Deixei esse nome mesmo e coloquei Plex no jail. O jail, pelo que entendi, é o nome que a montagem será feita no sistema de arquivos do TrueNAS. É a mesma coisa que montar o disco no Ubuntu, por exemplo. Deixei também o DHCP, assim o Plex vai criar um IP pra ele diferente do IP do TrueNAS. Enquanto o TrueNAS é acessado pelo 192.168.1.3, o Plex vai ser acessado pelo 192.168.1.35:32400/web. Acredito que se tivesse marcado NAT, seria 192.168.1.3:32400/web o endereço para acessar o Plex.

Aí o plugin e baixado e instado. Depois disso, eu parei o Plex:

(para para o Plex, clique nessa seta primeiro...)

E depois clique em "Stop":

(clique em "Stop" para parar o plugin)

Depois clique em "Mount Points" para acessar o jail diretamente. Clique em "Actions -> Add" para criar um novo jail. Escolha a origem (onde estão seu arquivos de mídia) e o ponto de montagem, ou seja, onde será criado a montagem no TrueNAS (essa montagem não copia nenhum arquivo, só mostra ao plugin onde ele deve buscar no disco remoto os arquivos). No meu caso ficou assim:


Isso aqui tem dois modos de fazer. Um é como eu fiz, criei um jail apenas, um ponto de montagem só. Depois usei o Plex para saber o que deveria buscar em cada pasta (se era filme, clipe de música, documentário, desenho, etc).

Outro modo é criar um jail para cada coisa. Um jail que vai apontar para a pasta "Filmes", outro jail que apontará para "Clipes", outro para "Documentários" e assim por diante. Na hora de criar a biblioteca no Plex, aí você aponta cada coisa para cada jail que criou.

Não sei se uma opção é melhor que outra.

Depois volte aos plugins, selecione o plugin do Plex (já instalado) e mande reiniciar o serviço. Pronto, é só isso. Note que o próprio TrueNAS já mostra qual o endereço para acessar o Plex Server.


No TrueNAS acabou. Agora acesse o endereço do seu Plex no navegador. Vai perguntar se você quer assinar o PlexPass (eu não quis), vai pedir para criar um login/senha para o administrador e depois vai pedir para você criar a biblioteca.

Na coluna da esquerda, desça até "Gerenciar" e clique em "Biblioteca". Escolha "Adicionar Biblioteca":


Escolha o tipo de mídia que você quer criar na biblioteca, depois escolha "Adicionar Pasta" (1) para usar o ponto de montagem que você criou e clique em Próximo (2):


Clique em "Procurar Pasta de Mídia":


Clique no ícone de pasta (1) para navegar até o pasta de montagem (não é a pasta do arquivo, é a pasta de montagem - 2):


E clique em adicionar para... adicionar!


Agora o Plex vai criar os links das mídias.

Depois baixe o aplicativo do Plex para o dispositivo que você vai usar para ver o conteúdo: iPad, iPhone, AppleTV, SmartTV, etc.

O aplicativo é muito bom, caso você não conheça. Quando baixar novas mídias, coloque na pasta lá no pool do TrueNAS, volte ao aplicativo do Plex Server (esse do 192.168.1.35:32400/web), vá novamente em "Gerenciar -> Biblioteca", mas agora clique em "Examinar Arquivos da Biblioteca":


Agora o Plex vai procurar tudo que tem de novo e acrescentar para você poder assistir.

É isso! O objetivo aqui não é explicar o Plex, mas explicar apenas como instalá-lo como plugin do TrueNAS.

Até o próximo post.

terça-feira, 14 de setembro de 2021

Dica - Como montar uma pasta remota no Ubuntu Server

Pessoal,

Tentei instalar o Transmission no Ubuntu Server. Configurei tudo direitinho (igual expliquei aqui), coloquei um Torrent qualquer pra testar e baixou direitinho.

Entretanto, na hora de escolher a pasta para baixar, coloquei o endereço "/mnt/NAS/Transmission/Downloads" do TrueNAS, mas nada do arquivo aparecer no Finder do Mac.

Depois de gastar algum fosfato, entendi o problema. Como o Portainer roda no Ubuntu Server (ip 192.168.1.44), ele criou a pasta acima. NO UBUNTU SERVER. O TrueNAS roda no 192.168.1.3.

Preciso resolver como acessar isso ou vou ter que repensar como usar o Docker no Ubuntu Server (até porque a ideia era fazer isso para o Plex também).

O TrueNAS tem plugins para o Transmission e para o Plex, mas queria fazer isso pelo Docker e gastar menos recursos da máquina.

Consultei um amigo que usa Linux a bastante tempo e ele me passou esse tutorial aqui. Segui e deu certo.

Basicamente é o seguinte:

No meu caso, no Ubuntu (192.168.1.44, em modo superuser, vou criar uma pasta para montar o compartilhamento com o comando:

mkdir -p /mnt/Transmission

Caso não tenha instalado, é necessário ter o CIFS. Instale assim:

apt install cifs-utils

E agora uso o seguinte comando para montar o compartilhamento na pasta que criei:

mount -t cifs //servidor/compartilhamento -o username=usuario,password=senha /mnt/windows

A minha linha fica assim:

mount -t cifs //192.168.1.3/NAS/Transmission -o username=meu_usuário,password=minha_senha /mnt/Transmission

Para que a pasta seja montada automaticamente quando o Ubuntu for inicializado, deve-se incluir esta linha no final do arquivo /etc/fstab:

//192.168.1.3/NAS/Transmission /mnt/Transmission cifs rw,username=meu_usuário,password=minha_senha 0 0

É isso por enquanto.

segunda-feira, 13 de setembro de 2021

Proxmox - instalando o Docker e o Portainer no Ubuntu

Pessoal,

Continuando a migração para o Proxmox, vou instalar o Docker e o Portainer no Ubuntu Server.

O TrueNAS é uma poço sem fundo de memória. Tudo que você colocar de RAM, ele vai usar! O Ubuntu Server, ao contrário, gasta pouco. Qualquer miserê de memória deixa ele feliz e saltitante. Assim, prefiro instalar o Docker e rodar algumas coisas nele que criar outra VM que vai sugar ainda mais memória e espaço em disco. Além disso, com o Portainer (que fui conhecer no OMV), a administração do Docker fica bem legal.

O Portainer é  uma interface para facilitar a instalação e administração dos conteiners do Docker. Fica muito mais fácil.

Assim, para instalar, vá ao Shell do Ubuntu Server e digite os comandos abaixo para instalar o Docker CE (Community Edition), o Docker Compose e, por fim, o Portainer.

Você também pode usar o SSH/Putty para copiar os comandos e colar no Shell do MacOS, Linux ou Windows, a seu gosto.


Instalando o Docker CE:

Primeiro, atualize o Ubuntu Server e instale os pré-requisitos do sistema:
sudo apt update
sudo apt upgrade
sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
Agora instale a chave GPG do Docker:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
E agora instale o repositório Docker (eu prefiro sempre a versão estável):
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
Atualize novamente o repositório com:
sudo apt update
E agora certifique-se que o Docker está sendo instalado a partir do repositório do Docker e não do repositório do Ubuntu com:
apt-cache policy docker-ce
A saída deve ser assim, mostrando várias versões disponíveis:


Repare na terceira linha que mostra a versão instalada do meu Docker. Se você nunca instalou, deve receber uma coisa mostrando que não está instalado ainda, tipo isso aqui:


Para instalar a versão estável mais recente, use isso:
sudo apt install docker-ce
E verifique o status do serviço com:
sudo systemctl status docker

Deve sair algo assim, mostrando que está ok:


Pronto, Docker instalado. Para testar se está tudo ok, rode um Docker para testar:
sudo docker run hello-world
E deve sair mais ou menos isso:


Fácil, né? Vamos seguir.


Instale o Docker Compose:

Vou instalar o Docker Compose a partir do repositório deles no GitHub. Vá na página deles e descubra qual é a última versão:


Agora instale com:
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
Depois de instalar, aplique as permissões para o binário e crie o link para /usr/binary:
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
Para saber se deu certo, use o comando abaixo:
docker-compose --version
A resposta deve ser algo assim:


Configurar o Portainer:

Para instalar o Portainer, usaremos o Docker:
cd ~/
docker volume create portainer_data
docker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
Agora acesse o Portainer pela porta 9000. Aqui em casa, o Ubuntu está rodando no 192.168.1.44. Assim, digite:

    <ip_do_seu_Ubuntu>:9000


Pronto! Crie a senha e entre. Como estamos instalando o Portainer na mesma máquina onde está o Docker, escolha para administrar localmente a aplicação:




Pronto!

No próximo post, vamos reinstalar o Plex.

domingo, 12 de setembro de 2021

Proxmox - instalando o TrueNAS e configurando os discos!

Pessoal,

Como disse no post anterior, o próximo passo seria instalar o TrueNAS.

Vamos criar uma VM onde ele será instalado e faremos o resto por lá (veja aqui como criar uma VM no Proxmox).

Tentei fazer o boot via UEFI na VM. Não deu, ficou travado. Apaguei a VM e reinstalei, agora dando boot via BIOS. deu certo. Aloquei 8GB de RAM, 128GB para o disco do TrueNAS (sendo 16GB de swap, seguindo o programa de instalação) e dois núcleos para o TrueNAS:


Pronto.

Para acessar a interface web do TrueNAS, é só digitar o endereço 192.168.1.30.


Até aqui nenhum mistério. Coloque "root" no usuário e a senha que você escolheu na instalação em "Password".



Depois de gastar algumas horas para e tentar várias formas para fazer o disco ficar disponível para o TrueNAS, entendi que deveria, primeiro, parar a VM com o TrueNAS para conseguir acrescentar o disco.

Acrescentei fazendo um bypass no Proxmox através das configurações da VM do TrueNAS: fui em hardware e acrescentei um disco via USB na VM do TrueNAS. Só depois disso liguei a VM e aí o disco apareceu. Talvez exista outro modo (e acredito que realmente deva existir), mas apenas esse funcionou para mim.

Gastei algumas horas pra descobrir isso. E confesso que a reinicialização da VM demora bastante, pelos menos uns 10 minutos.


Repare que um disco aqui deu erro na inicialização. Na verdade, 3 dos 4 discos deram erro. E como disse, o boot demora demais devido a essa tentativa de ficar tentando achar e montar os discos. Os quatro discos aparecem disponíveis e montados na VM:


Mas apenas um dele está de fato funcionando na VM. Os outros três dão erro ao tentar criar um pool utilizando-os. Esse disco que está funcionando coloquei pra TimeMachine e funcionou ok. Já os outros três não aparecem de jeito nenhum. Quando eu tento criar o pool, parece que vai:


Mas aí dá erro:



Bom, desse jeito não dá pra ficar. Num momento de desespero pensei até em usar o OMV (na verdade cheguei a instalar começar a configurar, mas ele ficou excluindo automaticamente os discos USB).

Obviamente estava fazendo alguma coisa errada. Obviamente esse bypass do USB está errado. Se deu errado no TrueNAS e deu errado no OMV, o erro na verdade é com o jeito que estou fazendo.

Então resolvi imaginar e fazer a coisa mais simples. Ora, vou criar um "disco virtual", ou seja, vou deixar o Proxmox administrar esse disco, sem fazer bypass.

Assim fui em "pve -> Disks". Lá tem algumas opções, entre elas ZFS e Diretório.

Primeiro usei o ZFS (veja aqui o que é ZFS) para criar no HD 03TB uma partição. Isso feito, fui no na VM do TrueNAS, em hardware, e adicionei um "Disco Rígido". O chato aqui é apenas definir o tamanho do disco, que o Proxmox mostra em GB. Fui acrescentando e acrescentado tamanho até chegar ao limite do disco. Depois disso, no TrueNAS, fui em Storage -> Pool e criei um pool com esse disco para fazer o TimeMachine. Deu certo!

Depois repeti o processo com os discos de 04TB. Esses dois disco são de marcas diferentes (um WD e o outro Samsung) e, da primeira vez que tentei usar, o TrueNAS não criar um pool alegando que eram discos de tamanhos diferentes.

Para esses, o processo foi um pouco diferente: em pve -> Disks, criei um "diretório" para cada disco, formatando em ext4. Depois adicionei como "Disco Rígido" todo o conteúdo de cada disco ao TrueNAS. E eis que eles apareceram lá.

O interessante deste último caso é que agora eles não são mais identificados pelo fabricante nem aparece o serial do disco no TrueNAS. Eles estão como discos "do emulador".

Criei o pool com esses dois discos em mirror, por segurança. Dentro deste pool criei um "dataset", ou seja, uma pasta inicial onde tudo será guardado, e coloquei para o Carbon Copy Cloner fazer o backup. O pool funciona como o nome do dispositivo e o dataset como partição primária. Pronto!

Agora preciso ver como vou fazer com o HD de 08TB.

E preciso refazer o Plex e outros dockers que eu estava usando.

terça-feira, 7 de setembro de 2021

Resolvido -> erro ao deletar um diretório no Proxmox

Pessoal,

Aconteceu uma coisa estranha.

Criei um diretório no Proxmox chamado "Disco1" durante um teste. Quando fui apagar, a desgraça não apagava de jeito nenhum, ficava mostrando que estava montado ainda. Exclui a partição e nada. Só fica assim:


Aí achei isso no site de suporte do Proxmox:

    grep -R -i /mnt/pve/Disco1 /etc/

Nada de resolver. Tentei então desabilitar o serviço e desmontar o diretório:

    systemctl disable mnt-pve-Disco1.mount

    umount /mnt/pve/Disco1

Nada de novo, a coisa continuava lá.

Então fui na pasta "/etc/systemd/system/" e deletei o arquivo "mnt-pve-Disco1.mount"

Resolvido!

Proxmox - Instalando discos externos via USB

Pessoal,

No último post, falei sobre a instalação do Proxmox e a criação de uma VM onde rodam algumas coisas fundamentais, "estruturais",  como atualização do IP e VPN.

Agora o passo é incluir os discos externos (um de 8TB e dois de 4TB para rodarem como RAID 1 (veja aqui e aqui o que significa RAID e quais os tipos disponíveis). Ainda tenho um outro HD de 4TB rodando "por fora", onde o MacMini faz alguns backups e um outro de 3TB só para rodar o TimeMachine.

Bom, a minha primeira dúvida era se os discos deveriam estar disponíveis apenas para a VM do TrueNAS ou se deveriam estar no Proxmox e a VM utilizar esse pool criado. Acho que essa segunda opção é a melhor. Acho, de achar mesmo.

Bom, vamos lá.



Dentro de "Datacenter -> pve" vá em Disks. Repare que vários discos aparecem. O /dev/sda é o disco onde está instalado o Proxmox. É como se fosse o disco "c:" do Windows. Os discos /dev/sdb (4TB), /dev/sdc (8TB) e o /dev/sdd (4TB) farão parte do pool para backup do TrueNAS. O último disco, o /dev/sde, de 3TB, será o disco só para TimeMachine.

Dentro de "Datacenter -> pve -> Disks -> LVM", aparecerá apenas o /sda, ou seja, os outros discos estão conectados mas não estão acessíveis. Para isso é necessário ir ao Shell e formatar e montar esses discos com:

    # fdisk /dev/sdb (para escolher o disco)

    # d (para deletar a partição; dentro desta opção, você poderá escolher a partição que será deletada)

    # w (para escrever a ordem, ou seja, deletar a partição)

Após fazer isso com todas as partições / discos escolhidos, os discos ainda não estarão disponíveis. Para isso, ainda no Shell, faça o seguinte (para cada disco):

    # mkfs.ext4 /dev/sdb (para criar a partição em formato ext4)

Se você não sabe o que formato ext4, recomendo que assista dois vídeos muito bons, esse primeiro e esse depois. São longos, mas contam, bem explicados, sobre os tipos de formatos para formatação de discos, vantagens e desvantagens. Recomento muitíssimo. Aqui, do Wikipedia, também explica bem esses tipos de formatos.

Tome cuidado apenas para não apagar o disco /dev/sda, uma vez que ele é o disco onde está instalado o Proxmox.

Agora os discos estão assim no Proxmox:


Estranhamente, o disco /dev/sdb não aparecia de jeito nenhum para ser adicionado em diretórios. Assim, fiz uma coisa "bruta": criei partição em todos eles e depois apaguei a partição. Aí, tão estranhamente, ele (e todos os outros) estavam disponíveis para trabalhar.

Repare que os discos estão sem partição. Para resolver isso, volte ao Shell e entre no fdisk novamente, agora escolhendo "g" para criar uma tabela de partição GPT (veja mais aqui), depois "n" para criar uma partição e por fim "w" para gravar e sair do fdisk.

Agora ficará assim:


Agora o Proxmox consegue enxergar e montar todos os discos.

Para apagar as partições, volte ao fdisk (escolhendo o disco que você vai apagar a partição), escolha "d" para deletar a partição e "w" gravar e sair.

No próximo post, vou mostrar como instalar o TrueNAS, adicionar os discos para criar os storages e configurar o TrueNAS.

Resolvido -> apagando a mensagem "No valid subscription" da tela inicial do Proxmox

Pessoal,

O Proxmox é um serviço "gratuito", porém ele vende uma licença para contratação de assistência.

Geralmente os usuários domésticos, meu caso, não irão contratar esse serviço. Porém, o aviso da licença continua aparecendo.




Para retirar esse aviso, há duas formas.

Ou você se conecta remotamente via SSH (precisa ser via Shell e o Datacenter não tem acesso ao Shell, apenas os nós tem esse acesso) utilizando "root@<ip-do-seu-Proxmox" e digitar o usuário e senha, navegar até a pasta "/usr/share/javascript/proxmox-widget-toolkit" e editar o arquivo "proxmoxlib.js". Aí dentro, deve comentar a linha de validação.

OU, o jeito beemmmm mais fácil, ainda via SSH, é simplesmente usar o comando abaixo:

    sed -Ezi.bak "s/(Ext.Msg.show\(\{\s+title: gettext\('No valid sub)/void\(\{ \/\/\1/g" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js && systemctl restart pveproxy.service


Esse comando cria uma cópia do arquivo "proxmoxlib.js" para caso você precise dele no futuro, comenta a linha e reinicia o serviço.

Para conferir, vá no seu navegador e apague o cache de navegação e entre novamente no Proxmox. Você verá que a mensagem sumiu.

(Dica deste vídeo aqui)

É isso.