Se você deseja um NAS flexível, é quase obrigatório usar um sistema operacional baseado em Linux. Ubuntu Server se presta perfeitamente como um servidor Linux para compartilhar arquivos. Além disso, você pode executar facilmente todos os tipos de serviços extras com o Docker. O Ansible-NAS torna o compartilhamento de arquivos e a execução de serviços adicionais ainda mais fáceis no Ubuntu Server, incluindo um painel baseado na web. Neste artigo, vamos começar.
O Ansible-NAS surgiu da frustração de David Stephens com o FreeNAS, que frequentemente falhava na atualização para ele. E foi exatamente por isso que descobri o Ansible-NAS: o FreeNAS é um ótimo sistema operacional de código aberto para executar um NAS em sua casa, mas depois da enésima vez, tive que conectar um teclado e uma tela ao meu NAS para estar cansado de resolver um atualização problemática.
Procurei uma alternativa e encontrei o Ansible-NAS (que achei interessante), instalei primeiro o Ubuntu Server e depois o Ansible-NAS. Desde então, estou muito satisfeito. Agora executo ainda mais serviços nele do que jamais fiz no FreeNAS.
01 Escolha o hardware
Em primeiro lugar, você precisa pensar sobre o hardware no qual deseja executar o Ansible NAS. Em princípio, qualquer processador de 64 bits compatível com Intel executando o Ubuntu Server será suficiente. A quantidade de memória interna e sua capacidade de armazenamento obviamente dependem do que exatamente você deseja fazer com ela e de quantos arquivos você possui. O processador é especialmente importante se você planeja executar muitos serviços extras em seu NAS. A maioria das pessoas realmente não precisa de uma máquina super rápida para seu NAS. Há anos uso o servidor compacto Dell PowerEdge T110 II em torre com FreeNAS e ele funciona perfeitamente com o Ubuntu Server. David Stephens testa o NAS Ansible em um HP Proliant Microserver N54L.
O Ansible-NAS presume que você usa o sistema de arquivos ZFS para seus discos de dados, o que é muito confiável. Não é necessário, mas no meu caso meus discos de dados já tinham ZFS, porque o FreeNAS também usa esse sistema de arquivos. Então eu poderia facilmente importá-los para o Ubuntu Server. Se você trabalha com ZFS, recomenda-se pelo menos 8 GB de RAM, embora também seja possível com menos.
Para um NAS, é certamente aconselhável introduzir alguma redundância para segurança extra se um disco falhar. A maneira mais fácil é configurar dois discos de dados em uma configuração de espelho (também conhecida como raid 1): dois discos de tamanhos iguais que copiam um ao outro. Com o ZFS, isso é fácil de criar. O próprio sistema operacional é melhor instalado em um disco menor separado.
02 Instale o Ubuntu Server
O Ansible-NAS não é um sistema operacional nas como o FreeNAS, mas você deve pensar nele como uma configuração nas de um servidor Ubuntu. Portanto, você precisa instalar o Ubuntu Server primeiro. O Ansible-NAS oferece suporte à versão LTS atual, Ubuntu 18.04 LTS. Baixe a imagem do site do Ubuntu e direcione-a para um stick USB ou DVD-RW. Consulte também o artigo da versão de desktop do Ubuntu na página ## para obter mais instruções.
A instalação é semelhante à do Ubuntu Desktop, mas sem interface gráfica: em vez disso, as etapas são mostradas em janelas de texto consecutivas. Escolha o layout do teclado e selecione Instale o Ubuntu. Depois disso, uma conexão de rede é normalmente configurada automaticamente se você usar dhcp em sua rede. Na próxima etapa, você escolhe seu armazenamento. Selecione Use um disco inteiro e escolha a unidade em que deseja instalar o Ubuntu. Confirme o particionamento sugerido (por padrão, o Ubuntu usa o sistema de arquivos ext4, que é adequado para a unidade de inicialização) com Feito e confirme novamente com Prosseguir. Depois disso, o disco escolhido será apagado e a instalação será iniciada.
Em seguida, preencha algumas informações, como o nome do servidor, seu nome de usuário e senha. Então você tem que esperar que a instalação seja concluída. Como o Ubuntu Server só instala software útil para servidores, ele é mais rápido do que o Ubuntu Desktop. Em seguida, remova a mídia de instalação e escolha Reinicie agora. Em seguida, reinicie seu nas e execute o Ubuntu Server. Veja como fazer o login na caixa 'Acessar o servidor Ubuntu'.
Acesse seu servidor Ubuntu
O Ubuntu Server não possui uma interface gráfica, então você terá que inserir todos os tipos de comandos. Você pode fazer isso por meio do teclado e da tela que conectou durante a instalação, mas também pode ser feito sem, ou seja, via ssh (shell seguro) de outro computador na rede. Se você estiver executando uma versão do Windows antes de abril de 2018, deve instalar o programa PuTTY. Se você tiver uma versão mais recente do Windows 10, poderá usar o cliente ssh integrado. Primeiro vá para Configurações / Aplicativos / Itens opcionais e então clique Adicionar uma parte. Escolher Cliente OpenSSH e reinicie o seu computador. Em seguida, você pode fazer login em seu servidor Ubuntu no prompt de comando do Windows com o comando ssh username @ server. Confirme com sim que você confia na impressão digital e digite sua senha. A propósito, o Linux e o macOS já têm um cliente ssh instalado por padrão, então você pode começar imediatamente.
03 Preparando discos de dados
Nesta masterclass, presumimos que você usa ZFS para seus discos de dados. Instale as ferramentas necessárias com:
sudo apt install zfsutils
Em seguida, queremos criar um sistema de arquivos ZFS em dois discos em uma configuração de espelho. Primeiro, use o comando lsblk para ver quais discos o Ubuntu conhece. Provavelmente é chamado de disco de inicialização sda e suas outras duas unidades sdb e sdc. Agora crie uma nova tabela de partição nessas duas últimas:
sudo parted / dev / sdb
(dividido) mklabel gpt
(parted) sair
sudo parted / dev / sdc
(dividido) mklabel gpt
(parted) sair
Agora veja quais são os IDs de suas duas unidades de dados:
ls -l / dev / disk / by-id /
Afinal, não há garantia de que os nomes permanecerão os mesmos; os IDs fazem. Um ID parece ata-SAMSUNG_HD204UI_S2H7J9JB712549. Então você precisa saber o tamanho do setor de seus discos rígidos. Para discos rígidos modernos, são 4 kilobytes, mas alguns mentem e mostram 512 bytes se você perguntar, porque o Windows XP tem problemas com 4 kilobytes.
04 Criar Pool ZFS
Com todas essas informações, podemos agora criar um 'pool' nas duas unidades:
sudo zpool create -o ashift = espelho de 12 tanques ata-SAMSUNG_HD204UI_S2H7J9JB712549 ata-SAMSUNG_HD204UI_S2H7J9JB712552
O texto shift = 12 aponta para o tamanho do setor de 4 kilobytes (2 ^ 12); tanque é o nome da piscina. É tradição escolher personagens do filme Matrix, como tanque, buldôzer ou freixo, mas você também pode chamá-los de datas. Só não o prolongue muito para que seja fácil de digitar.
Então, com zpool list você pode ver todos os seus pools, com zpool status o status de todos os seus pools e com zfs list todos os seus sistemas de arquivos ZFS. Por padrão, zpool create cria um sistema de arquivos com o mesmo nome de seu pool e o monta em sua partição raiz. Portanto, sua piscina chamada tanque será montada sob /tanque.
É comum criar vários sistemas de arquivos ZFS em seu pool, porque você pode definir por sistema de arquivos se deseja usar compactação, se os arquivos são executáveis e assim por diante. Para fazer isso, verifique as dicas de configuração do ZFS no site da Ansible-NAS.
05 Instale o Ansible NAS
Agora que a base está pronta, podemos instalar o Ansible-NAS. Primeiro, precisamos habilitar outro repositório com o comando:
sudo add-apt-repository universe
Em seguida, instalamos o Ansible:
sudo apt install ansible
Ansible é um software de automação que permite configurar automaticamente seus sistemas Linux. O Ansible-NAS é na verdade apenas uma configuração predefinida da linguagem Ansible (um "playbook") para transformar seu servidor Ubuntu em um NAS. Portanto, instalar o Ansible NAS é apenas uma questão de baixar essa configuração do GitHub:
git clone //github.com/davestephens/ansible-nas.git
Em seguida, vá para o diretório que contém o Ansible-NAS:
cd ansible nas
06 Configurar NAS Ansible
O Ansible NAS vem com uma configuração padrão group_vars / all.yml.dist. Copie primeiro para que possa personalizar sua própria configuração:
cp group_vars / all.yml.dist group_vars / all.yml
Agora abra este último arquivo com o editor nano:
nano group_vars / al.yml
Toda a configuração do Ansible-NAS é feita neste arquivo. Regras com # começar, são linhas de comentários. Eles estão em todo o arquivo para explicação. É assim que você pode habilitar qualquer serviço definido por falso desagradável verdade mudar.
Mas primeiro você envia Em geral para definir algumas coisas importantes, como o nome do host do seu servidor Ubuntu, seu fuso horário e o nome de usuário sob o qual você deseja executar o Ansible-NAS. Insira também o caminho sob o qual o Docker armazena seus dados de contêiner.
abaixo samba é a configuração de seu compartilhamento de arquivos. Aqui você define o caminho em que todos os arquivos que deseja compartilhar serão localizados. Abaixo disso, o Ansible-NAS define todos os tipos de subpastas para seus downloads, filmes, séries, torrents, músicas, podcasts e assim por diante. Para cada um desses compartilhamentos, você pode definir se eles estão disponíveis publicamente e semelhantes.
Salve suas alterações com Ctrl + O e saia do nano com Ctrl + X.
07 Aplicar configuração
Em seguida, copie mais um arquivo com:
inventário cp inventário.dist
E remova o hash na frente da segunda linha, para que fique assim:
localhost ansible_connection = local
Salve o arquivo e instale mais algumas dependências:
ansible-galaxy install -r requirements.yml
Finalmente, aplique sua configuração Ansible-NAS com:
ansible-playbook -i inventário nas.yml -b -K
Atualizar o Ansible NAS
O Ansible-NAS é mantido ativamente e novos serviços são adicionados continuamente. Mas, como o Ansible-NAS não é um programa, mas uma coleção de arquivos de configuração, a atualização é um pouco atípica. Para fazer isso, vá para o diretório Ansible-NAS e extraia as alterações mais recentes do GitHub com o comando git pull. Em seguida, envie todas as novas seções de configuração no arquivo group_vars / all.yml.dist para copiar para sua própria versão group_vars / all.yml. Uma maneira prática de visualizar essas mudanças é a seguinte: na saída do git pull, procure por uma linha como 84e0c96..7860ab5 mestre -> origem / mestre. Em seguida, execute o seguinte comando para mostrar as diferenças:
git diff 84e0c96: group_vars / all.yml.dist 7860ab5: group_vars / all.yml.dist
Em verde você vê as novas regras, em vermelho você vê as regras excluídas. Em seguida, faça essas alterações group_vars / all.yml. Em seguida, aplique a configuração novamente com:
ansible-playbook -i inventário nas.yml -b -K
08 Painel para todos os seus serviços
A partir de agora, seu NAS compartilhará as pastas configuradas em sua rede. No Windows, você pode acessá-lo facilmente no Windows Explorer. Mas o que mais você pode fazer com o Ansible NAS? A primeira coisa que você deve fazer é adicionar todos os serviços extras que você configurou no arquivo de configuração do Ansible-NAS ao painel do Heimdall.
O conceito de Heimdall pode parecer um pouco simples e inútil: é um servidor web simples com uma página web à qual você pode adicionar ícones de aplicativos web. Não mais. Mas se, como no caso do Ansible-NAS, você instalar todos os tipos de serviços, cada um com sua própria interface web, você rapidamente perderá a visão geral se não tiver um lugar de onde possa alcançá-los a todos. Heimdall se destaca nisso, que por padrão é executado na porta 10080 do seu NAS.
09 Adicionar serviços ao seu painel
Abra o painel em seu navegador e clique no ícone com as três linhas horizontais no canto inferior direito. Clique em Adicionar e, em seguida, insira um nome e url do serviço que deseja adicionar. Se o serviço for suportado por Heimdall, o nome do serviço também aparecerá em tipo de aplicação, onde você também pode definir o tipo se, por exemplo, preferir chamar o roteador OPNsense de 'roteador' no painel. Você também pode definir um ícone ou uma cor de fundo. Finalmente, verifique se no topo fixado está habilitado e clique Salve para adicionar o serviço ao seu painel.
Agora faça isso para todos os serviços Ansible-NAS, cujos números de porta podem ser encontrados na documentação do Ansible-NAS. Você também pode adicionar outros sites, como o seu webmail ou outros sites que você usa com frequência.
10 recipientes
O Ansible-NAS instala todos os serviços (exceto o gerenciador de arquivos) em contêineres Docker. Um contêiner é um tipo de máquina virtual, mas usa o mesmo kernel do sistema operacional subjacente. Isolar cada serviço em um contêiner separado garante que eles não interfiram uns com os outros e levem a problemas de incompatibilidade.
Você não precisa se preocupar com isso para o uso normal, mas se quiser realizar algumas tarefas de configuração mais avançadas ou até mesmo instalar serviços extras que o Ansible-NAS não oferece suporte por padrão, é útil trabalhar com o Docker. Veja o quadro 'Gerenciar containers com Portainer'.
11 Instale serviços adicionais
O Ansible-NAS contém vários serviços adicionais que você pode instalar. Para muitos, basta entrar no arquivo group_vars / all.yml uma variável com o nome do serviço e então _ativado sobre verdade para habilitar o serviço. Opções de configuração adicionais, como nomes de usuário, diretórios, etc. para esse serviço específico, podem ser encontradas na parte inferior do arquivo de configuração. Certifique-se de verificar a documentação online do Ansible-NAS, pois ela contém algumas explicações extras para alguns dos serviços.
Sempre que você modificar o arquivo de configuração, deverá aplicar a configuração Ansible:
ansible-playbook -i inventário nas.yml -b -K
Isso instalará o contêiner Docker necessário e definirá sua configuração.
12 serviços interessantes em seu Nas
Iria longe demais abordar todos os serviços do Ansible-NAS, mas mencionamos alguns serviços interessantes. A Watchtower é interessante porque baixa a versão mais recente de todos os seus contêineres diariamente e os reinicia com essa nova versão quando há uma atualização. Cloudflare Dynamic DNS Updater atualiza seu DNS dinâmico na Cloudflare. O Traefik pode permitir o acesso remoto a todos os seus serviços, incluindo um certificado TLS para cada serviço via Let's Encrypt.
Você também tem todos os tipos de serviços para download de multimídia, como Transmission for BitTorrent e NZBGet para Usenet. Também um serviço Time Machine para fazer backup de seus Macs, um servidor DLNA, Plex Media Server e até mesmo Nextcloud para compartilhar seus arquivos com outras pessoas. Resumindo, com o Ansible-NAS você aproveita muito mais o seu NAS.
Gerenciar contêineres com Portainer
Portainer é uma interface da web amigável para Docker. É o único outro serviço além do Heimdall que o Ansible-NAS habilita por padrão, precisamente porque os dois serviços são muito convenientes. Você encontrará o Portainer na porta 9000. Faça login no seu navegador da web com o nome de usuário que você criou para o seu servidor Ubuntu e a senha correspondente. Então clique containers para ver seus contêineres. Cada contêiner pode ser interrompido, reiniciado, pausado, excluído e assim por diante. Mas tenha cuidado ao excluir um contêiner: na próxima vez que você aplicar a configuração do Ansible-NAS, o contêiner será recriado se você não o desativou no arquivo group_vars / all.yml. Com um clique em Adicionar recipiente você também pode instalar serviços adicionais que o Ansible-NAS não oferece. Para fazer isso, digite Imagem o nome de uma imagem que reside no Docker Hub.