Cómo configurar un repositorio de red para instalar o actualizar paquetes – Parte 11

La instalación, actualización y eliminación (cuando sea necesario) de programas instalados son responsabilidades clave en la vida diaria de un administrador de sistemas. Cuando una máquina está conectada a Internet, estas tareas se pueden realizar fácilmente utilizando un sistema de gestión de paquetes como aptitude (o apt-get), yum o zypper, dependiendo de la distribución elegida, como se explica en Parte 9 – Gestión de Paquetes de Linux de la serie LFCE (ingeniero certificado por la Fundación Linux). También puedes descargar archivos independientes .deb o .rpm e instalarlos con dpkg o rpm, respectivamente.

Linux Foundation Certified Engineer – Part 11
Presentación del Programa de Certificación de la Fundación Linux

Sin embargo, cuando una máquina no tiene acceso a la red mundial, se necesitan otros métodos. ¿Por qué alguien querría hacer eso? Las razones van desde ahorrar ancho de banda de Internet (evitando así varias conexiones concurrentes al exterior) hasta asegurar paquetes compilados localmente desde la fuente, e incluyendo la posibilidad de proporcionar paquetes que por razones legales (por ejemplo, software restringido en algunos países) no pueden incluirse en los repositorios oficiales.

Justo ahí es donde entran en juego los repositorios de red, que es el tema central de este artículo.

Nuestro Entorno de Pruebas
Network Repository Server:	CentOS 7 [enp0s3: 192.168.0.17] - dev1
Client Machine:			CentOS 6.6 [eth0: 192.168.0.18] - dev2

Configuración de un Servidor de Repositorio de Red en CentOS 7

Como primer paso, manejaremos la instalación y configuración de un servidor de repositorio CentOS 7 [dirección IP 192.168.0.17] y una máquina CentOS 6.6 como cliente. La configuración para openSUSE es casi idéntica.

Para CentOS 7, siga los siguientes artículos que explican instrucciones paso a paso sobre la instalación de CentOS 7 y cómo configurar una dirección IP estática.

  1. Instalación de CentOS 7.0 con Capturas de Pantalla
  2. Cómo Configurar una Dirección IP Estática de Red en CentOS 7

En cuanto a Ubuntu, hay un excelente artículo en este sitio que explica, paso a paso, cómo configurar su propio repositorio privado.

  1. Configurar Repositorios Locales con ‘apt-mirror’ en Ubuntu

Nuestra primera elección será la forma en que los clientes accederán al servidor de repositorio: FTP y HTTP son los más utilizados. Elegiremos este último ya que la instalación de Apache se cubrió en Parte 1 – Instalando Apache de esta serie LFCE. Esto también nos permitirá mostrar la lista de paquetes usando un navegador web.

A continuación, necesitamos crear directorios para almacenar los paquetes .rpm. Crearemos subdirectorios dentro de /var/www/html/repos en consecuencia. Para nuestra conveniencia, también podemos querer crear otros subdirectorios para alojar paquetes de diferentes versiones de cada distribución (por supuesto, aún podemos agregar tantos directorios como sea necesario más adelante) e incluso diferentes arquitecturas.

Configuración del Repositorio

Una cosa importante a tener en cuenta al configurar su propio repositorio es que necesitará una cantidad considerable de espacio en disco disponible (~20 GB). Si no lo tiene, redimensione el sistema de archivos donde planea almacenar el contenido del repositorio, o incluso mejor, agregue un dispositivo de almacenamiento dedicado adicional para alojar el repositorio.

Dicho esto, comenzaremos creando los directorios que necesitaremos para alojar el repositorio:

# mkdir -p /var/www/html/repos/centos/6/6

Después de haber creado la estructura de directorios para nuestro servidor de repositorio, inicializaremos en /var/www/html/repos/centos/6/6 la base de datos que realiza un seguimiento de los paquetes y sus dependencias correspondientes utilizando createrepo.

Instale createrepo si aún no lo ha hecho:

# yum update && yum install createrepo

Luego inicialice la base de datos,

# createrepo /var/www/html/repos/centos/6/6
Createrepo Repository Initialization

Actualización del Repositorio

Suponiendo que el servidor de repositorio tiene acceso a Internet, extraeremos un repositorio en línea para obtener las últimas actualizaciones de paquetes. Si ese no es el caso, aún puede copiar todo el contenido del directorio de Paquetes de una instalación de CentOS 6.6 DVD.

En este tutorial asumiremos el primer caso. Para optimizar nuestra velocidad de descarga, elegiremos un espejo de CentOS 6.6 desde una ubicación cercana a nosotros. Ve a espejo de descarga de CentOS y elige el que esté más cerca de tu ubicación (en mi caso, Argentina):

Select CentOS Download Mirror

Luego, navega hasta el directorio os dentro del enlace resaltado y elige la arquitectura adecuada. Una vez allí, copia el enlace de la barra de direcciones y descarga el contenido en el directorio dedicado en el servidor del repositorio:

Download CentOS Mirror
# rsync -avz rsync://centos.ar.host-engine.com/6.6/os/x86_64/ /var/www/html/repos/centos/6/6/ 

En caso de que el repositorio elegido esté fuera de línea por alguna razón, vuelve atrás y elige uno diferente. No hay problema.

Ahora es el momento en el que quizás quieras relajarte y tal vez ver un episodio de tu programa de televisión favorito, porque la creación de espejos del repositorio en línea puede llevar bastante tiempo.

Una vez que la descarga haya finalizado, puedes verificar el uso del espacio en disco con:

# du -sch /var/www/html/repos/centos/6/6/*
Check CentOS Mirror Size

Finalmente, actualiza la base de datos del repositorio.

# createrepo --update /var/www/html/repos/centos/6/6

También puedes abrir tu navegador web y navegar hasta el directorio repos/centos/6/6 para verificar que puedas ver el contenido:

Verify CentOS Packages

¡Y estás listo para continuar, ahora es el momento de configurar el cliente.

Source:
https://www.tecmint.com/setup-yum-repository-in-centos-7/