Ok, agora você conhece os requisitos e sabe como oferecer os serviços, mas não sabe como obtê-los. :-) Esta seção explica como realmente espelhar as várias partes do FreeBSD, quais ferramentas utilizar e de onde espelhar.
A área FTP possui a maior quantidade de dados a serem espelhados. Ela inclui os conjuntos de distribuição necessários para a instalação em rede, os branches que são snapshots das árvores de código fonte, as Imagens ISO para gravar CD-ROMs com a distribuição de instalação, um sistema de arquivos ativo e um snapshot da árvore de ports. E claro, tudo isso para as várias versões do FreeBSD e diversas arquiteturas.
A melhor maneira de espelhar a área FTP é com o rsync. Você pode instalar o port net/rsync e então usar o rsync para sincronizar com seu host upstream. O rsync já foi mencionado em Seção 2.4.2, “Rsync (opcional para o conjunto de arquivos do FTP)”. Como o acesso rsync não é necessário, seu site de upstream preferido pode não permitir isso. Talvez você precise procurar um pouco mais para localizar um site que permita acesso por rsync.
Como o número de clientes rsync terá um impacto significativo na performance do servidor, a maioria dos administradores impõe limitações em seus servidores. Para um espelho, você deve perguntar ao mantenedor do site com o qual você está sincronizando sobre sua política, e talvez pedir uma exceção para o seu host (já que você também é um site espelho).
Um exemplo de linha de comando para espelhar o FreeBSD pode ser verificada abaixo:
%
rsync -vaHz --delete rsync://ftp4.de.FreeBSD.org/FreeBSD/ /pub/FreeBSD/
Consulte a documentação do rsync, que também está disponível em http://rsync.samba.org/, sobre as várias opções a serem usadas com o rsync. Se você sincronizar o módulo inteiro (diferentemente dos subdiretórios), esteja ciente de que o diretório do módulo (aqui "FreeBSD") não será criado, então você não pode omitir o diretório de destino. Além disso, você pode querer configurar um script que chame tal comando via cron(8).
O site do FreeBSD deve ser espelhado apenas via rsync.
Uma linha de comando para espelhar o site do FreeBSD pode parecer com:
%
rsync -vaHz --delete rsync://bit0.us-west.freebsd.org/FreeBSD-www-data/ /usr/local/www/
Devido a exigências muito altas de largura de banda, armazenamento e administração, o Projeto FreeBSD decidiu não permitir espelhos públicos de pacotes. Para sites com muitas máquinas, pode ser vantajoso executar um proxy HTTP para fazer cache do pkg(8). Alternativamente, pacotes específicos e suas dependências podem ser baixados executando algo assim:
%
pkg fetch -d -o
/usr/local/mirror
vim
Quando esses pacotes forem baixados, os metadados do repositório devem ser gerados executando:
%
pkg repo
/usr/local/mirror
Uma vez que os pacotes tenham sido baixados e os metadados para o repositório tenham sido gerados, sirva os pacotes até as máquinas clientes via HTTP. Para obter informações adicionais, consulte as páginas de manual do pkg(8), mais especificamente a página pkg-repo(8).
Todo site espelho deve ser atualizado no mínimo uma vez por dia. Certamente, um script com bloqueio para impedir que várias execuções ocorram ao mesmo tempo será necessário para executar a partir do cron(8). Como quase todo administrador faz isso à sua maneira, instruções específicas não podem ser fornecidas. Mas poderia ser algo como:
Coloque o comando para executar seu aplicativo de espelhamento em um script. Recomenda-se o uso de um script simples /bin/sh
.
Adicione alguns redirecionamentos de saída para que as mensagens de diagnóstico sejam registradas em um arquivo.
Teste se o seu script funciona. Verifique os logs.
Use o crontab(1) para adicionar o script ao crontab(5) do usuário apropriado. Este deve ser um usuário diferente daquele sob o qual o daemon FTP está sendo executado, de forma que, se as permissões de arquivo dentro de sua área FTP não forem legíveis por todos, esses arquivos não poderão ser acessados por FTP anônimo. Isto é usado para fazer o “stage” de uma release - assegurando que todos os sites espelhos oficiais tenham todos os arquivos necessários da release no dia do lançamento.
Aqui estão alguns agendamentos recomendados:
Conjunto de arquivos FTP: diariamente
Páginas WWW: diariamente
All FreeBSD documents are available for download at https://download.freebsd.org/ftp/doc/
Questions that are not answered by the
documentation may be
sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.