Cómo parchear los equipos de Linux que residen en un entorno desconectado
Si tiene equipos clientes de Linux que residen en un entorno desconectado, el agente no podrá utilizar YUM para descargar paquetes RPM desde internet. En lugar de eso, deberá hacer lo siguiente:
- Ajuste y rellene uno o más repositorios locales "in situ" que contengan toda la biblioteca de RPM disponibles
- Configure sus equipos clientes para que busquen el repositorio local correcto en busca de RPM ausentes, en lugar de hacerlo desde internet.
La información siguiente es una ayuda general para configurar y usar un repositorio local. Si tiene preguntas o problemas específicos, contacte con el proveedor del sistema operativo Linux.
Cómo configurar un repositorio local
Requisitos
Puede usar cualquier equipo servidor de Linux como repositorio local. El único requisito es que tenga suficiente espacio en el disco para contener todo el inventario de paquetes RPM disponibles. Hay muchos repositorios públicos distintos que contienen paquetes RPM. Por ejemplo, hay un repositorio público para RPM del servidor RHEL 9, otro repositorio público para RPM de estaciones de trabajo de RHEL 8, etc. Como norma general, el equipo de repositorio local deberá tener, al menos, 100 GB de espacio para cada repositorio público que descargue.
Es probable que necesite dos o más equipos de servidores Linux para este proceso.
- Escenario 1: puede elegir usar un equipo que se usará como repositorio local para todas las versiones de RPM. En este escenario, el equipo que usted usa como repositorio puede descargar RPM de la misma versión que la distribución que se usa en el equipo del repositorio. No obstante, necesitará un equipo distinto para descargar los RPM para cada versión de cada distribución que se utilice en su empresa.
- Escenario 2: puede elegir mantener tres repositorios locales distintos: uno para todos los RPM de RHEL 9, otro para todos los RPM de RHEL 8 y un tercero para todos los RPM de CentOS 7. Este escenario requiere tres equipos dedicados que actúen como repositorios pero elimina el paso adicional de transferencia y la dificultad de mantener el repositorio conjunto.
Por ejemplo, si su empresa tiene equipos clientes de RHEL 9 x64, RHEL 8 x64 y CentOS 7 x64, puede usar un equipo servidor RHEL 9 x64 como repositorio local y usarlo para descargar todos los RPM para sus servidores, estaciones de trabajo, equipos de sobremesa, etc. de RHEL 9. Usará equipos RHEL 8 x64 y CentOS 7 x64 distintos para descargar todos los RPM para los servidores RHEL 8 y CentOS, estación de trabajo, escritorios, etc. y luego transferir esos RPM al equipo repositorio local.
Proceso de configuración
Debido a que es probable que la descarga al repositorio local de toda la biblioteca de paquetes RPM disponibles puede tardar varias horas, es recomendable realizar el proceso de configuración en dos fases diferentes. Fase 1, en la que descargará todos los RPM disponibles, se deberá realizar al final del día de trabajo para que el proceso de descarga se pueda ejecutar durante la noche. La fase 2 se puede realizar al día siguiente.
Debe tener privilegio raíz para ejecutar los comandos siguientes.
Fase 1
- Cree el directorio que desee usar como repositorio.
Por ejemplo, el siguiente comando crea un directorio que se usará para contener los RPM de Red Hat 9. - Muestre la lista de repositorios públicos que están disponibles para usar para rellenar el repositorio local.
Los repositorios públicos que hay disponibles se basan en su suscripción RHEL. - Usando YUM, instale el paquete que incluya reposync.
- Descargue todos los paquetes disponibles del repositorio público de su elección.
Por ejemplo, el siguiente comando descarga los RPM desde el repositorio público rhel-9-for-x86_64-baseos-rpms. - Repita el paso 3 para cada variante del repositorio público requerido.
mkdir –p /repos/redhat/7
yum repolist
yum instala yum-utils
reposync –-gpgcheck –l –-repoid=rhel-7-server-rpms –-download_path=/repos/redhat/7
El proceso de descarga durará bastante, téngalo en cuenta. La opción -gpgcheck elimina los paquetes que no superan la comprobación de firma durante el proceso de descarga.
Por ejemplo, si su empresa dispone de RHEL 9 tanto en Intel como en ARM, deberá descargar los RPM de ambos repositorios públicos asociados. Es posible que necesite varios días para llevar a cabo todas las descargas necesarias.
No intente descargar RPM para una versión distinta de Red Hat o de CentOS. Por ejemplo, un equipo RHEL 9 no se puede usar para descargar RPM para equipos RHEL 8 x64 o para equipos RHEL 7 x64.
Fase 2
El proceso que se describe aquí crea un repositorio accesible a través de HTTP. Se pueden usar otros métodos para crear un repositorio. Tiene libertad para usar cualquier método que le resulte más familiar.
- Mediante YUM, instale el programa que proporciona la capacidad de crear un repositorio.
- Cree el repositorio.
- Instale el servicio web Apache.
Esto proporcionará la capacidad de acceder al repositorio local mediante el protocolo HTTP. - Abra el puerto 80 de su cortafuegos local.
Esto se debe a que hemos configurado el repositorio para que use HTTP. HTTPS también es una opción, pero aquí se usa HTTP para simplificar el ejemplo. - Edite el archivo httpd.conf y agregue cualquiera de las siguientes entradas que falten.
- Enlace el nuevo repositorio en la ubicación del sitio web predeterminado.
- Verifique la sintaxis del servicio web Apache.
- Inicie el servicio web Apache.
- Obtener el archivo zip updateinfo.xml.gz.
- Copie los archivos *updateinfo.xml.gz de la ubicación predeterminada en la carpeta /repodata.
- Descomprima el archivo *updateinfo.xml.gz.
- Cambie el nombre del archivo *updateinfo.xml para eliminar los caracteres a la izquierda que no sean necesarios.
- Modifique el repositorio para reconocer que contiene el archivo updateinfo.xml
- (Solo se aplica a equipos que tengan habilitado SELinux) Proporcione permiso para que www/html/redhat acceda a /repos/redhat.
yum instala createrepo
createrepo /repos/redhat/9
Si recibe un error que indica que no se puede abrir un archivo *.rpm, verifique que no se ha quedado sin espacio en el disco. Si el espacio no es el problema, repita el paso de descarga (paso 3 de la fase 1). Es posible que algunos archivos se omitieran la primera vez que se llevó a cabo la descarga.
yum instala httpd
vi /etc/httpd/conf/httpd.conf
ServerAdmin root@localhost
DocumentRoot /var/www/html
ServerName <machinename>
ln -s /repos/redhat /var/www/html/redhat
httpd -t
systemctl start httpd
Es posible que deba repetir este comando cada vez que se reinicie el servidor. Puede usar los comandos siguientes para iniciar automáticamente el servicio siempre que se reinicie el servidor:systemctl enable httpd
.
Los pasos 9 - 13 solo se aplican a equipos Red Hat.
yum list-sec
cp /var/cache/yum/x86_64/9rhServer/rhel-9-for-x86_64-baseos-rpms/*updateinfo.xml.gz /repos/redhat/9/repodata/
gzip –d /repos/redhat/7/repodata/*updateinfo.xml.gz
mv /repos/redhat/7/repodata/*updateinfo.xml /repos/redhat/7/repodata/updateinfo.xml
modifyrepo /repos/redhat/7/repodata/updateinfo.xml /repos/redhat/7/repodata/
cd /var/www/html
chcon -R -t httpd_sys_content_t redhat/
Repita el proceso de configuración para otras versiones y distribuciones de Linux
Deberá repetir parte o todo el proceso de configuración para cada versión distinta de cada distribución de Linux que se admita en su empresa. Por ejemplo, debe usar un equipo RHEL 9 para descargar los RPM de RHEL 9, un equipo CentOS 7 x64 para descargar los RPM CentOS 7 x64, un equipo RHEL 8 x64 para descargar los RPM de RHEL 8 x64, etc. Modifique los comandos, como necesite, para cada versión única de Linux.
Escenario 1: si va a usar un repositorio para todas las versiones de Linux
Suponiendo que usa un equipo Red Hat 9 como repositorio, aquí le indicamos lo que debe repetir para recuperar los RPM de Red Hat 8:
- En el equipo repositorio de Red Hat 9, repita la fase 1, paso 1 a no ser que especifique /repos/redhat/8.
- En un equipo Red Hat 8, lleve a cabo la fase 1, pasos 3 y 4.
En el paso 3, el directorio repos/redhat/9 no existirá en el equipo Red Hat 8, por lo que deberá eliminar la opción -download_path y dejar que vaya a la ubicación predeterminada o especificar una ubicación distinta. - Cuando haya terminado de descargar los RPM, transfiéralos al directorio repos/redhat/8 de su repositorio local.
Cuando termine, tendrá un repositorio en un equipo que contendrá los paquetes RPM de todas las versiones soportadas de Red Hat.
Escenario 2: si tiene repositorios distintos para cada versión de Linux
Repita todo el proceso de configuración para cada versión de Linux que sea compatible con su empresa.
Indique el camino al repositorio local para los equipos clientes de Linux
Debe modificar YUM en cada cliente de Linux para que busque el repositorio local en busca de los RPM, y no lo haga en internet.
Si elige mantener un repositorio local distinto para cada versión de Linux, asegúrese de que apunta a cada cliente hacia el repositorio local correcto.
- Inicie sesión en el equipo cliente.
- Cambie al directorio que enumere dónde se ubican los repositorios.
- Cree un archivo denominado local.repo y configúrelo para que indique la ubicación del repositorio local.
- Especifique que si falta un RPM en el repositorio local, el cliente no deberá intentar localizarlo en internet (desconecta el equipo cliente).
cd /etc/yum.repos.d
nano local.repo
[mylocalrepo]
name=Local Rhel7 Server Repo
baseurl=http://es-nxt-rhel9-repo.example.com/redhat/9
gpgcheck=0
Es
vi cualquier archivo menos local.repo (ejemplo redhat.repo)
Busque su repoid (ejemplo rhel-9-for-x86_64-baseos-rpms)
Ajustar habilitado = 0
Mantenimiento periódico de su repositorio
Deberá mantener al día su repositorio local realizando sincronizaciones periódicas con el repositorio público. Cuando lleva a cabo el comando siguiente, solo los paquetes RPM nuevos se descargarán en el repositorio local.
reposync –gpgcheck –l –repoid=rhel-7-server-rpms –download_path=/repos/redhat/7
createrepo --update /repos/redhat/9
Redes Air Gap
Si su organización mantiene una red "air gap", que quiere decir que no permite a ningún equipo cliente conectarse a ningún equipo que tenga acceso a internet; debe configurar y mantener un segundo repositorio. Esto se ilustra en el siguiente diagrama.
En este caso, después de configurar el repositorio conectado como se describe arriba, configurará un segundo repositorio en un equipo desconectado y luego usará un medio extraíble para transferir manualmente los archivos del repositorio conectado al repositorio desconectado. Sus equipos clientes Linux se deberán configurar para indicar la ubicación del repositorio desconectado, en lugar del repositorio conectado.