GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo configurar el servidor de repositorio APT local en Ubuntu 20.04

Una de las razones por las que puede considerar configurar un servidor de repositorio apt local es minimizar el ancho de banda requerido si tiene varias instancias de Ubuntu para actualizar. Tomemos, por ejemplo, una situación en la que tiene aproximadamente 20 servidores que deben actualizarse dos veces por semana. Podría ahorrar una gran cantidad de ancho de banda porque todo lo que necesita hacer es actualizar todos sus sistemas a través de una LAN desde su servidor de repositorio local.

En esta guía, aprenderá a configurar un servidor de repositorio apt local en Ubuntu 20.04 LTS.

Requisitos

  • Sistema Ubuntu 20.04 LTS
  • Servidor Web Apache
  • Mínimo de 170 GB de espacio libre en disco en el sistema de archivos /var/www/html
  • Conexión a Internet estable

Paso 1) Crear un servidor web Apache local

En primer lugar, inicie sesión en su Ubuntu 20.04 y configure el servidor web Apache como se muestra.

$ sudo apt install -y apache2

Habilite el servicio Apache2 para que sea persistente durante el reinicio. Ejecutar siguiente comando

$ sudo systemctl enable apache2

El directorio raíz de documentos predeterminado de Apache se encuentra en la ruta /var/www/html. Más tarde vamos a crear un directorio de repositorio en esta ruta que contendrá los paquetes necesarios necesarios.

Paso 2) Cree un directorio de repositorio de paquetes

A continuación, crearemos un directorio de repositorio local llamado ubuntu en la ruta /var/www/html.

$ sudo mkdir -p /var/www/html/ubuntu

Establezca los permisos necesarios en el directorio creado anteriormente.

$ sudo chown www-data:www-data /var/www/html/ubuntu

Paso 3) Instalar apt-mirror

El siguiente paso es instalar el paquete apt-mirror, después de instalar este paquete, obtendremos el comando o la herramienta apt-mirror que descargará y sincronizará los paquetes remotos de debian con el repositorio local en nuestro servidor. Así que para instalarlo, ejecuta lo siguiente

$ sudo apt update
$ sudo apt install -y apt-mirror

Paso 4) Configurar repositorios para replicar o sincronizar

Una vez que apt-mirror está instalado, su configuración '/etc/apt/mirrror.list' se crea automáticamente. Este archivo contiene una lista de repositorios que se descargarán o sincronizarán en la carpeta local de nuestro servidor Ubuntu. En nuestro caso, la carpeta local es ‘/var/www/html/ubuntu/’. Antes de realizar cambios en este archivo, primero hagamos una copia de seguridad.

$ sudo cp /etc/apt/mirror.list /etc/apt/mirror.list-bak

Ahora edite el archivo usando el editor vi y actualice base_path y repositorios como se muestra a continuación.

$ sudo vi /etc/apt/mirror.list

############# config ###################
set base_path    /var/www/html/ubuntu
set nthreads     20
set _tilde 0
############# end config ##############
deb http://archive.ubuntu.com/ubuntu focal main restricted universe \
 multiverse
deb http://archive.ubuntu.com/ubuntu focal-security main restricted \
universe multiverse
deb http://archive.ubuntu.com/ubuntu focal-updates main restricted \
universe multiverse
clean http://archive.ubuntu.com/ubuntu

Guarde y salga del archivo.

En caso de que haya notado que he usado repositorios de paquetes Ubuntu 20.04 LTS y he comentado los repositorios de paquetes src porque no tengo suficiente espacio en mi sistema. Si también desea descargar o sincronizar paquetes src, elimine los comentarios de las líneas que comienzan con 'deb-src'.

Paso 5) Comience a duplicar los repositorios remotos en la carpeta local

Antes de comenzar a duplicar o sincronizar, primero copie el script postmirror.sh a la carpeta /var/www/html/ubuntu/var usando el siguiente comando cp.

$ sudo mkdir -p /var/www/html/ubuntu/var
$ sudo cp /var/spool/apt-mirror/var/postmirror.sh /var/www/html/ubuntu/var

Ahora es el momento de comenzar a duplicar los paquetes de repositorios remotos a la carpeta local de nuestro sistema. Ejecutar a continuación:

$ sudo apt-mirror

El comando anterior también se puede iniciar en segundo plano usando el comando nohup a continuación,

$ nohup sudo apt-mirror &

Para monitorear el progreso de la duplicación, use lo siguiente,

$ tail nohup.out

En Ubuntu 20.04 LTS, apt-mirror sincroniza el directorio CNF y sus archivos, por lo que debemos descargar y copiar manualmente la carpeta y sus archivos. Entonces, para evitar descargar manualmente el directorio CNF, cree un script de shell con los siguientes contenidos,

$ vi cnf.sh
#!/bin/bash
for p in "${1:-focal}"{,-{security,updates}}\
/{main,restricted,universe,multiverse};do >&2 echo "${p}"
wget -q -c -r -np -R "index.html*"\
 "http://archive.ubuntu.com/ubuntu/dists/${p}/cnf/Commands-amd64.xz"
wget -q -c -r -np -R "index.html*"\
 "http://archive.ubuntu.com/ubuntu/dists/${p}/cnf/Commands-i386.xz"
done

guarde y cierre el script.

Ejecute el script para descargar el directorio CNF y sus archivos.

$ chmod +x cnf.sh
$ bash  cnf.sh

Este script creará una carpeta con el nombre 'archive.ubuntu.com' en el directorio de trabajo actual. Copie esta carpeta a la carpeta espejo,

$ sudo cp -av archive.ubuntu.com  /var/www/html/ubuntu/mirror/

Nota: Si no sincronizamos el directorio cnf, en las máquinas cliente obtendremos los siguientes errores, por lo que para resolver estos errores tenemos que crear y ejecutar el script anterior.

E: Failed to fetch http://x.x.x.x/ubuntu/mirror/archive.ubuntu.com/ubuntu/dists/\
focal/restricted/cnf/Commands-amd64  404  Not Found [IP:169.144.104.219 80]
E: Failed to fetch http://x.x.x.x/ubuntu/mirror/archive.ubuntu.com/ubuntu/dists/\
focal-updates/main/cnf/Commands-amd64  404  Not Found [IP:169.144.104.219 80]
E: Failed to fetch http://x.x.x.x/ubuntu/mirror/archive.ubuntu.com/ubuntu/dists/\
focal-security/main/cnf/Commands-amd64  404  Not Found [IP:169.144.104.219 80]

Programación de sincronización automática de repositorios

Configure un trabajo cron para actualizar automáticamente nuestros repositorios apt locales. Se recomienda configurar este trabajo cron en la noche todos los días.

Ejecute 'crontab -e' y agregue el siguiente comando para que se ejecute todos los días a la 1:00 a. m. de la noche.

$ sudo crontab -e

00  01  *  *  *  /usr/bin/apt-mirror

Guardar y cerrar.

Nota:En caso de que Firewall se esté ejecutando en Ubuntu Server, permita el puerto 80 usando el siguiente comando

$ sudo ufw allow 80

Paso 6) Acceso al repositorio APT local a través del navegador web

Para acceder a nuestro repositorio apt configurado localmente a través del navegador web, escriba la siguiente URL:

http:///ubuntu/mirror/archive.ubuntu.com/ubuntu/dists/

Paso 7) Configure el cliente Ubuntu 20.04 para usar el servidor de repositorio apt local

Para probar y verificar si nuestro servidor de repositorio apt funciona bien o no, tengo otro sistema Ubuntu 20.04 lts donde actualizaré el archivo /etc/apt/sources.list para que el comando apt apunte a repositorios locales en lugar de remotos.

Por lo tanto, inicie sesión en el sistema, cambie lo siguiente en source.list

http://archive.ubuntu.com/ubuntu
to
http://169.144.104.219/ubuntu/mirror/archive.ubuntu.com/ubuntu

Aquí '169.144.104.219' es la dirección IP de mi servidor de repositorio apt, reemplace esta dirección IP que se adapte a su entorno.

También asegúrese de comentar todos los demás repositorios que no están reflejados en nuestro servidor de repositorios apt. Entonces, después de hacer los cambios en el archivo source.list, se vería como a continuación:

Ahora ejecute el comando 'apt update' para verificar que la máquina cliente está recibiendo actualizaciones de nuestro servidor de repositorio local apt,

$ sudo apt update

Perfecto, el resultado anterior confirma que la máquina del cliente puede conectarse con éxito a nuestro repositorio para obtener los paquetes y las actualizaciones. Eso es todo de este artículo, espero que esta guía lo ayude a configurar el servidor de repositorio apt local en el sistema Ubuntu 20.04.

Leer también :14 ejemplos útiles de comandos 'ls' en Linux


Ubuntu
  1. Configuración del servidor WebDAV en Ubuntu Linux

  2. Cómo configurar el servidor Rsyslog en Ubuntu 18.04 LTS

  3. 4 pasos para configurar el repositorio local en Ubuntu usando APT-mirror

  4. Cómo configurar el servidor NTP en Ubuntu y LinuxMint

  5. Configurar el servidor Rsyslog en Ubuntu 20.04 - ¿Cómo hacerlo?

Cómo configurar el servidor Mosquitto MQTT en Ubuntu 16.04

Cómo configurar el servidor multijugador de Minecraft en Ubuntu 16.04

Cómo configurar OpenVPN en Ubuntu Server

Cómo configurar el servidor Git en Ubuntu 20.04

Cómo configurar el servidor Rsyslog en Ubuntu

Cómo configurar el servidor DHCP en Ubuntu