Carregando...
CentOSDistrosServidores Linux

Criando e atualizando um repositório local no CentOS 7

Tempo de leitura: 5 minutos

CentOS Yum

Que tal mantermos um repositório de pacotes do CentOS 7 na nossa rede local, assim teremos sempre disponível no nosso ambiente pacotes para instalação e atualização de máquinas com CentOS.

O que é um repositório

Repositório é um local para armazenar arquivos que permite manter pacotes de software, onde usuários podem baixar e instalar em suas máquinas. O Red Hat/CentOS mantém vários repositórios pela Internet que são utilizados na instalação e atualização de seus sistemas.

Vamos criar e manter um repositório de pacotes na rede local, com script automatizado que faz a sincronização dos pacotes locais com os repositórios da Internet. Também vamos configurar as máquinas com CentOS na nossa rede para buscar os pacotes do nosso repositório.

Vantagens

Entre as vantagens de se ter um repositório local podemos destacar:

  • Economia no uso do link da Internet, já que as máquinas clientes irão baixar do servidor local.
  • Instalação é atualização de máquinas que não tenham acesso a Internet.
  • Criação de repositório com pacotes personalizados, imagina que você cria seus próprios pacotes e deseja que eles fiquem disponíveis para instalação pelas demais máquinas da rede, com o repositório local fica mais simples.

Preparando ambiente do servidor

Para nossos testes iremos utilizar duas máquinas com CentOS 7 com as seguintes configurações:

Máquina: Repositório
Host: repos [ repos.linuxnaweb.com ]
IP: 172.16.0.100

Máquina: Cliente
Host: centos [ centos.linuxnaweb.com ]
IP: 172.16.0.101

Primeiramente vamos fazer a atualizção dos pacotes do nosso ambiente:

Também precisamos fazer instalação de alguns pacotes necessários:

epel-release: Pacotes adicionais para o CentOS/Red Hat.
createrepo: Ferramenta para criação de repositórios.
yum-utils: Ferramentas adicionais do yum.
vim: Editor de textos para terminal.
tcpdump: Ferramenta para análise de tráfego rede.

Para que nosso repositório funcione iremos desabilitar o SELinux:

Pronto, já podemos criar nosso repositório!

Criando o repositório

Precisamos criar a estrutura de pastas do nosso repositório com o comando abaixo:

base: Pacotes que formam a base do CentOS.
centosplus: Pacotes adicionais que acrescentam funcionalidades de pacotes existentes.
extras: Pacotes adicionais que podem ser uteis.
updates: Pacotes de atualizações lançadas.
epel: Pacotes com diversos softwares.

Com os diretórios criados, já podemos sincronizar os repositórios para pastas, para isso execute os comandos abaixo, o processo é bem demorado, aproveite para dar uma olhadinha nos outros artigos no site 😉

A saída dos comandos é semelhante a imagem abaixo:

CentOS reposync

Obs.: Os repositórios ocupam aproximadamente 30GB, lembre-se de deixar bastante espaço em disco para a partição /var. A sincronização dos arquivos irá demorar de acordo com a velocidade da sua Internet.

Após a sincronização dos arquivo, devemos inicializar os diretórios para disponibilizá-los para o Yum. O comando createrepo irá criar o arquivo repomd.xml das pastas.

O repomd.xml é um arquivo que contém metadados dos repositórios. Execute os comando abaixo, o processo pode demorar um pouco:

A saída dos comandos é semelhante a imagem abaixo:

CentOS createrepo

Após criar, sincronizar e gerar os metadados para o Yum, devemos disponibilizá-los para acesso pela rede!

Configurando o Nginx

Para acessar os repositórios que criamos, vamos instalar o servidor web Nginx. O Yum também aceita o protocolo FTP, mas pela facilidade e costume vamos subir um servidor Web mesmo.

Vamos instalar o Nginx com o seguinte comando:

Vamos configurar o Nginx para disponibilizar a pasta do repositório, criando o arquivo abaixo:

Iniciando o Nginx e habilitando ele para iniciar no boot do CentOS:

Para finalizar precisamos liberar a porta 80 no firewall:

Tente acessar pelo browser. Você pode acessar pelo IP do seu servidor, como estou utilizando DNS na rede vou acessar pelo endereço repos.linuxnaweb.com. Pronto, nosso repositório já pode ser utilizado.

Acesso repositório CentOS

Sincronizando repositórios automaticamente

Com o tempo novos pacotes são criados e atualizados pelo pessoal responsável pelo CentOS, e para que você não tenha que ficar atualizando manualmente os pacotes, vamos criar um job no Cron para fazer isso automaticamente.

Você pode definir a execução do script por mês, por semana ou por dia, eu prefiro que seja executado diariamente então vamos criar o seguinte arquivo:

Obs.: Não vou explicar em detalhes o script, mas basicamente ele executa a sincronização em cada pasta do repositório

Para finalizar definimos a permissão de execução para o script:

Se quiser testar o script basta executar no terminal o script:

Update Repository CentOS

Ufa! Finalizamos a configuração do nosso servidor como repositório de pacotes.

Preparando ambiente do cliente

Agora só falta configurar uma máquina cliente e testar se está tudo funcionando. Mas antes vamos faze o backup dos arquivos do repositório que vêm por padrão na instalação do CentOS:

Após remover os scripts antigos, vamos criar o script com a indicação das pastas do nosso repositório local:

Obs.: Caso não tenha DNS na sua rede pode acrescentar o IP do seu servidor ao invés de repos.linuxnaweb.com.

Executando os comandos abaixo iremos limpar o cache do yum e recarregar os novos repositórios que criamos:

CentOS repolist

Bem, para testar se a comunicação com o repositório está funcionando corretamente vamos instalar o pacote completo do vim, que não vem instalado por padrão no CentOS:

No repositório podemos executar o tcpdump para verificar se o servidor está sendo acessado pela máquina cliente. Também podemos ver qual pacote ele está acessando:

tcpdump CentOS

OK, tudo funcionando \o/

Para maiores informações você podem consultar os seguintes sites:

 

Um comentário
Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

%d blogueiros gostam disto: