Introdução

Introdução

Este artigo é a continuação lógica do nosso artigo do PXE, porque depois de ler isso, você poderá conectar em rede e realmente instalar a distribuição de sua escolha. Mas existem outros usos para criar seu próprio repositório. Por exemplo, largura de banda. Se você gerencia uma rede e todos os sistemas (ou alguns) estão executando a mesma distribuição, é mais fácil para você apenas RSYNC em conjunto com um espelho próximo e servir atualizações a si mesmo. Em seguida, talvez você tenha alguns pacotes criados por você que sua distro não aceitará na árvore principal, mas os usuários acham úteis. Obtenha um nome de domínio, configure um servidor da web e lá está você. Não detalharemos a configuração de um servidor da web aqui, apenas tarefas básicas de instalação e a configuração básica de um repositório para o Fedora ou Debian Systems. Portanto, espera -se que você tenha o hardware necessário (o servidor e o equipamento de rede necessário, dependendo da situação) e algum conhecimento sobre Linux e Web Servvers. Então vamos começar.

OBSERVAÇÃO:Este artigo foi transferido do nosso domínio anterior LinuxCareer.com.

Criando um repositório em sistemas de Fedora

Instalando as ferramentas

Fedora tem uma ferramenta chamada CreaterEpo que simplifica a tarefa em questão. Então, tudo o que precisamos instalar é isso e httpd como servidor da web:

 # yum instalar creaceropepo httpd 

Configurando os repositórios

Agora, depois de configurar seu servidor da web, assumiremos que o diretório raiz é AR /VAR /www. Temos que criar os diretórios necessários em uma questão organizada (sinta -se à vontade para se ajustar ao gosto, se necessário ou apenas seguir o layout oficial):

 # cd/var/www/html # mkdir -p fedora/15/x86_64/base # mkdir fedora/15/x86_64/atualizações 

É isso por agora. Tudo o que precisamos fazer é rsync nas pastas criadas e garantir que tenhamos muito espaço disponível:

 # rsync -avrt rsync: // ftp.Heanet.ie/pub/fedora/linux/liberações/15/tudo \/x86_64/os/packages//var/www/html/fedora/15/x86_64/base 

Agora use o CreaterEpo para a pasta base:

 # CreaterEpo/var/www/html/fedora/15/x86_64/base 

Isso é obrigatório, pois criará o diretório de repodata que o yum precisa ao usar seu repositório. Agora vamos repetir a mesma etapa que acima, mas desta vez teremos as atualizações:

 # rsync -avrt rsync: // ftp.Heanet.ie/pub/fedora/linux/\ updates/15/x86_64//var/www/html/fedora/15/x86_64/atualizações 

No final, recomendamos que você verifique se o HTTPD está definido para iniciar na inicialização e também use o Cron para obter atualizações regularmente:

 # SystemCtl Ativar httpd.Serviço # Crontab -e 

Lembre -se de que o comando rsync a ser adicionado é o segundo, o relacionado a atualizações e que o SystemCTL está disponível apenas no Fedora 15 ou acima. Use NTSYSV ou CHKCONFIG em sistemas Fedora mais antigos.

Configuração do cliente

Você deve dizer às máquinas que receberão atualizações do seu servidor onde encontrá -las, então começamos criando o .Arquivos reposos:

# Isso será base-lan.Repo [base -lan] nome = fedora $ releasever - $ Basearch FailoverMethod = priority Baseurl = http: // 192.168.1.2/fedora/$ releasever/$ Basearch/base ativado = 1 # Certifique -se de desativar o oficial .Arquivos repositórios com habilitado = 0 gpgCheck = 0 # Isso será atualizações-lan.repo [atualizações -lan] nome = fedora $ releasever - $ Basearch - Atualiza FailoverMethod = priority Baseurl = http: // 192.168.1.2/fedora/$ releasever/$ Basearch/atualizações gpgcheck = 0 

Agora, basta fazer um

 # yum atualização 

E você está pronto para ir.

Assinatura do pacote

Como apontado por um de nossos leitores, deve -se estar ciente dos problemas de segurança ao instalar pacotes. O software pode ser baixado de servidores comprometidos e pode conter executáveis ​​maliciosos. Yum (e Apt, Zypper e outros sistemas de gerenciamento de pacotes) supera esse problema usando as teclas GPG. Conversamos sobre refletir um repositório do Fedora. Esses pacotes já estão assinados e as chaves podem ser encontradas em/etc/pki/rpm-gpg. Se você já usou um repositório oficial do Fedora como cliente antes de ativar seus repositórios locais, esse diretório já conterá as chaves necessárias. Caso contrário, as chaves podem ser baixadas de getfedora.org/keys/. Agora, temos que alterar nosso .arquivos repos.

# Estas são as únicas linhas que precisam ser alteradas gpgcheck = 1 gpgKey = arquivo: /// etc/pki/rpm-gpg/rpm-gpg-key-fedora 

Se você estiver usando um repositório de pacotes personalizados local, Yum reclamará que seus pacotes personalizados não são assinados. Você pode usar o sinalizador YUM -NogpgCheck se você for o mantenedor de espelho/repositório e só serve pacotes para sua organização ou, da maneira segura, assinar os pacotes personalizados também. Isso ocorre porque o servidor que mantém o repositório personalizado/local também pode ser comprometido. Portanto, você terá que criar uma chave GPG no servidor e usar o RPM para assinar o pacote personalizado:

$ GPG-Gen-key $ GPG-Lista-Sigs

Como você pode ver, o ID do usuário está no nosso caso "Linux Career". Agora, para tornar o principal público:

 $ gpg --mor --export "userID"> meu.chave.arquivo.ASC $ GPG -KeyServer PGP.mit.Edu 

Obviamente, seu ID do usuário será diferente, então alterará as informações de acordo. Observe que no Fedora 16, no qual testamos isso, o executável se chama GPG2 em vez de GPG.

Só precisamos criar um .O arquivo rpmmacros no diretório inicial do usuário que assinará os pacotes e colocará o seguinte lá:

%_Signature gpg %_gpg_name userid %_gpgbin/usr/bin/gpg2 

O comando para assinar um pacote, agora que tudo está definido, será

 $ rpm --addign name_of_package.RPM

Agora, o download do cliente do seu repo personalizado usará 'rpm -import $ key' para poder baixar esses pacotes personalizados.

Criando um repositório em sistemas Debian

Instalação

Como a estrutura do repositório do Debian é mais complicada, você verá que é preciso um pouco mais de trabalho no lado do servidor, mas menos do lado do cliente. Em todos os momentos, haverá três seções: estável, testando e instável (sem contar experimentais), cada um com três componentes, dependendo de como os pacotes são licenciados: principal, contribuinte e não livre. É sua decisão de fazer a parte da distribuição que você deseja refletir, mas é nosso dever avisá -lo: Debian tem muito mais pacotes a oferecer do que o Fedora, para que os requisitos do espaço do disco cresçam significativamente. Existem muitas ferramentas que você pode usar para criar um repositório personalizado com seus próprios pacotes personalizados, mas seguiremos os pacotes oficiais por enquanto. Então, voltaremos à nossa configuração para o artigo do PXE e criaremos um repositório local para a instalação. Vamos precisar de um servidor da web, então vamos instalá -lo:

 # Aptitude Install Apache2 

Certifique -se de que o Apache esteja configurado e iniciado antes de continuar.

Configuração do servidor

O diretório raiz padrão, assim como em Fedora, é /var /www, então vamos criar um diretório debian lá:

 # mkdir/var/www/debian 

O pessoal do Debian recomenda o FTPSYNC, uma coleção de scripts Perl que pretendia ajudá -lo a obter o que precisa no seu espelho local. De interesse especial é o --excluir Opção, como você não deseja obter todo o conteúdo de um arquivo Debian (apenas AMD64, apenas principal e contribuinte, apenas espreme, sem CDs, etc.). Se você deseja criar um repositório para usar após a instalação, basta apontar seu/etc/apt/fontes.Liste para o diretório que contém os pacotes (você já tem um modelo de trabalho lá) e isso é tudo. Por exemplo:

 Deb http: // 192.168.1.2/debian squeeze principal contribon 

Mas vamos ver em detalhes o que você precisa baixar se você não gosta de usar ftpsync. Debian (e Ubuntu, e provavelmente outros derivados do Debian) têm um pacote chamado apt-utils, que oferece, entre outros, o apt-ftparchive programa que usaremos para o nosso repositório personalizado. Então…

 # Aptidão Instale Apt-Utils 

obterá a ferramenta necessária instalada em seu sistema. Já temos o diretório base criado em nosso servidor da web, por isso precisaremos de subdiretos personalizados para nossas necessidades:

 # cd/var/www/debian # mkdir -p pool/main # mkdir pool/contrib # mkdir -p dists/squeeze/main/binário -amd64 # mkdir -p dists/squeeze/contrib/binário -amd64 # mkdir .cache 

Agora que temos a estrutura do diretório em vigor, vamos criar os arquivos de configuração necessários para ajudar a achado apt-ftparchive e indexar nosso software. Observe que você pode usar esta configuração para refletir pacotes oficiais do Debian ou criar um repositório com seus próprios pacotes, pois as etapas são iguais.

O primeiro arquivo dos dois que precisaremos criar (ambos morarão em/var/www/debian) é nomeado APT-Release.conf.

 # CD/var/www/debian # $ editor apt-release.conf 

O conteúdo, relacionado às nossas necessidades, como mostrado acima, seria assim:

Apt :: ftParchive :: Release :: Codename "Squeeze"; Apt :: ftParchive :: Release :: Origin "LinuxCareer.com "; apt :: ftParchive :: Release :: Components" principal Contrib "; apt :: ftParchive :: Release :: Label" LinuxCareer.com Debian repo "; apt :: ftparchive :: release :: Architecturas" amd64 "; apt :: ftparchive :: release :: suite" squeeze "; 

Você também pode usar o apt-ftparchive para gerar arquivos de configuração com base nos argumentos da linha de comando. Use qualquer abordagem que você preferir.

O segundo arquivo de configuração é nomeado apt-ftparchive.Conf e seu conteúdo seria assim:

 Dir Archivedir "."; Cachedir"./.cache ";; default packages :: compress". gzip bzip2 "; Conteúdo :: Compressa". gzip bzip2 ";; Treedefault Bincachedb" Pacotes-$ (seção)-$ (arch).db "; diretório" pool/$ (seção) "; pacotes" $ (dist)/$ (seção)/binário-$ (arco)/pacotes "; conteúdo" $ (dist)/conteúdo-$ (arch) "; ; Árvore "dists/squeeze" seções "principal contrible"; arquiteturas "amd64"; 

Como você pode ver, a sintaxe é muito auto-explicativa em relação aos dois arquivos.

Por uma questão de exemplo, agora vamos baixar um .Deb de um espelho Debian para ilustrar adequadamente nossa ideia.

 # cd/var/www/debian/pool/main # wget -c ftp: // ftp.Heanet.ie/espelhos/ftp.Debian.org/debian/pool/main/\ p/patch/patch_2.6.1.85-423D-3_AMD64.Deb 

Agora vamos gerar o conteúdo (isso terá que ser repetido toda vez que você adicionar ou remover pacotes).

 # CD/var/www/Debian # apt-ftparchive Gerate apt-ftparchive.conf # apt-ftparchive -c apt-release.Confibração conflida/squeeze> \ dists/squeeze/liberação 

Essas ações fizeram o que é chamado de “Construindo o Repositório”. Agora, como instruído acima, adicione uma linha às suas fontes.Lista e você pode ter acesso ao seu repositório de software. Se você precisar se tornar um espelho debian e ainda não gostar de ftpsync, use o rsync com o diretório remoto chamado Pool/$ seção e vá pegar um café ou algo assim. Além disso, use um espelho, não sobrecarregue FTP.Debian.org, por favor.

Assinatura do pacote

Se você deseja usar uma imagem CD/DVD/Blu-ray para servir conteúdo para seus clientes, o arquivo de liberação nas imagens de mídia óptica não é assinada por padrão. Mas se você servir por rsync'ing o conteúdo de um espelho, é provável que você não precise fazer nada. Se você tem um repositório personalizado, veja como fazer. Primeiro, como no exemplo do Fedora, gerar a chave GPG:

 $ GPG-Gen-Key 

Agora, por causa do bug #639204 no Debsign (última atualização em agosto), parece que teremos que seguir uma rota alternativa. Como os pacotes do Debian são basicamente apenas arquivos de AR, usaremos a maneira de assinar nossos pacote:

 $ ar x package_name.Deb $ Cat Debian-Biny Control.alcatrão.Dados GZ.alcatrão.gz> tempfile $ gpg -abs -o _gpgorigin tempfile $ ar rc package_name.Deb _GPGorigin Debian-Biny Control.alcatrão.Dados GZ.alcatrão.gz 

Então, o que fizemos aqui foi extrair o .O arquivo Deb com AR, concatenando seu conteúdo para um arquivo temporário (lembre -se da ordem), assine o arquivo que recomponha o .Deb para o seu 'estado original. Agora precisamos exportar a chave GPG (como você pode ver, o processo não é tão diferente do aplicado no Fedora).

 $ gpg --export -a> mydebsign.ASC 

Agora vamos extrair a chave para uso adicional:

 $ GPG -Fingerprint 

Lembre -se dos últimos quatro grupos na impressão digital principal (como visto abaixo), pois será o ID principal, que usaremos mais tarde.

Na máquina cliente, verifique se você tem o Debsig-Verify instalado e, em seguida, você pode criar um local para a chave:

 # mkdir/usr/share/debsig/keyrings/$ key_id 

Como você pode ver na captura de tela, nosso exemplo de identificação de chave é 8760c540b4fc5c21. Agora vamos importar a chave:

 # gpg-não-default-kyyring-Keyring \/usr/share/debsig/keyrings/$ key_id/Debsign.GPG -Mydebsign.ASC 

Agora, aqui vem a parte complicada: precisaremos de um arquivo de política para as chaves. O idioma usado é XML, mas não há necessidade de se preocupar: in/usr/share/doc/Debisg-Verify/Exemplos Você encontrará um arquivo chamado genérico.Pol que pode ser copiado em algum lugar para ser editado e renomeado. Um exemplo desse arquivo poderia parecer assim:

 xmlns = "http: // www.Debian.org/debsig/1.0/">  Nome = "Linux Career" Descrição = "Pacote oferecido pela carreira Linux"/>   Type = "origem" file = "Debsign.gpg "/>   Minoptional = "0">  Type = "origem" file = "Debsign.gpg "/>  

O que você vê acima é apenas a parte essencial do arquivo de política. Depois de verificar com o exemplo e fazer as alterações necessárias, salve este arquivo em/etc/Debsig/Policies/$ key_id/$ policy_name.Pol. Após esta etapa, se você seguir as etapas corretamente, poderá usar o Debsig-Verify com o nome do pacote como um argumento para verificar seus pacotes baixados. Obrigado a Purplefloyd por seu artigo útil sobre isso.

Configuração do cliente

Então, vamos iniciar nossa máquina cliente, certificando -se de que ela está configurada para inicializar a partir da rede e, quando você é solicitado a escolher um espelho, selecione “Digite informações manualmente”. Digite o IP do seu servidor, depois o local em relação ao /var /www (Debian, no nosso caso) e você deve estar pronto para instalar.

Conclusão

Nunca se pode enfatizar o suficiente a importância de salvar a largura de banda, mesmo em uma pequena rede. É claro que existem outras vantagens em uma abordagem local de espelho, como servir software personalizado para sua empresa (patches especiais aplicados ou apenas alterações para atender às necessidades da empresa) ou servir seu software embalado para sua distribuição favorita.

Tutoriais do Linux relacionados:

  • Como configurar um Raspberry Pi como um servidor de inicialização PXE
  • Espelhos do Ubuntu
  • Exemplos RSYNC no Linux
  • Uma introdução à automação, ferramentas e técnicas do Linux
  • Coisas para instalar no Ubuntu 20.04
  • Coisas para fazer depois de instalar o Ubuntu 20.04 fossa focal linux
  • Como imprimir a árvore do diretório usando o Linux
  • Coisas para fazer depois de instalar o Ubuntu 22.04 Jellyfish…
  • Mastering Bash Script Loops
  • Ubuntu 20.04 Guia