¿Estás visitando desde Argentina?
Ingresá a Linware Argentina ⯈
Continuar en Linware Argentina ⯈
×
¿Qué estás buscando?
BUSCAR!
BLOG
Cree imágenes de SUSE Linux Enterprise para OCI a partir de recetas de barriles
Publicada el 07/02/2023

Este artículo describe cómo generar descripciones de imágenes de SUSE Linux Enterprise Server a partir de recetas de barriles y cómo usarlas para crear imágenes binarias para usar en Oracle Cloud Infrastructure, ya sea usando KIWI directamente, Open Build Service o SUSE Manager.

Keg-recipes es un repositorio de GitHub que contiene el origen de las imágenes de la nube pública que crea SUSE y las imágenes que se publican. Está abierto a contribuciones y también puede contener descripciones que sirvan como ejemplos, como las imágenes de la Infraestructura ruidosa de Oracle. SUSE eliminará las imágenes actuales publicadas en OCI en las próximas semanas. Las definiciones de imágenes en las recetas de barriles se pueden usar para generar descripciones de imágenes y construir estas imágenes como se describe a continuación.

Requisitos

git

Necesario para acceder al depósito de recetas de barriles.

barrilete

Se utiliza para generar descripciones de imágenes KIWI a partir de recetas de barriles. Consulte la documentación del barril para obtener instrucciones de instalación e información general.

KIWI (opcional)

KIWI es la herramienta que se utiliza para crear una imagen binaria a partir de una descripción de imagen generada por el barril. Se puede usar directamente, en cuyo caso deberá instalarse en el host de compilación. Consulte la documentación de KIWI para obtener información detallada sobre el uso de KIWI para crear dispositivos. KIWI está disponible para todas las distribuciones de openSUSE y SLES, así como desde PyPI .

Cuenta openSUSE Build Service (opcional)

En lugar de crear imágenes manualmente, el Servicio de compilación de openSUSE se puede utilizar para crear imágenes. Una ventaja de este enfoque es que las imágenes se reconstruyen automáticamente cuando los paquetes incluidos en la imagen se actualizan en su proyecto/repositorio de origen. NOTA : Todos los proyectos en openSUSE Build Service son públicos.

Consulte la Guía del usuario para obtener información detallada sobre Open Build Service.

Administrador de SUSE (opcional)

SUSE Manager tiene la capacidad de crear imágenes de sistema operativo a partir de descripciones de imágenes de KIWI.

Puede encontrar información sobre la creación y gestión de imágenes con SUSE Manager en la guía de administración de SUSE Manager .

Host de compilación de Linux

Cualquier sistema en el que se pueda instalar git, keg y, opcionalmente, KIWI debería funcionar. Git está incluido en la mayoría de las distribuciones. Keg es parte de la distribución de openSUSE Tumbleweed (nombre del paquete “python3-kiwi-keg”) y también está disponible para openSUSE Leap 15.4 y SLES 15.4 desde openSUSE Build Service y desde PyPI .

Construyendo una imagen binaria

Como se mencionó, hay algunas formas de construir la imagen binaria a partir de la descripción de la imagen generada anteriormente. Lo que sigue es una breve descripción de cada uno, con punteros a información más detallada.

KIWI

Para crear la imagen binaria manualmente con KIWI, debe estar disponible el acceso directo a los repositorios de paquetes de SLES 15 SP3. De forma predeterminada, las descripciones de imágenes generadas a partir de recetas de barriles usan la especificación de repositorio "obsrepositories:/", que solo funciona cuando se compila en Open Build Service. Para compilar manualmente, es necesario ajustar la especificación del repositorio. En esta guía, las opciones de la línea de comandos de KIWI se utilizan para proporcionar las rutas del repositorio.

Los paquetes pueden estar disponibles para KIWI a través de http(s), directorios locales o montajes ISO. Consulte 7.2 Configuración de repositorios  en la sección Concepto y flujo de trabajo de la documentación de KIWI.

Una forma conveniente de brindar acceso al árbol de paquetes completo y actualizado es usar una instancia BYOS de nube pública. La instancia debe utilizar el mismo sistema operativo base (SLES 15 SP3 en este caso) y registrarse directamente en el Centro de atención al cliente de SUSE (no en la infraestructura de actualización de SUSE, es decir, el registro debe realizarse con SUSEConnect, no con registercloudguest ). Debe tener todos los módulos habilitados que se requieren para la compilación, en este caso, son contenedores, aplicaciones de escritorio, desarrollo, nube pública y módulos de aplicaciones de servidor.

Si ese es el caso, la instancia tiene acceso https a todos los repositorios de paquetes. El siguiente comando genera una lista de argumentos de la línea de comandos para usar con KIWI desde todos los repositorios habilitados de SUSE Linux Enterprise de la instancia:

rc=establecer; para id en $(zypper lr -E | grep SLE- | cut -d'|' -f1); do echo -n "--${rc}-repo=$(zypper lr -r ${id} | sed -n -e '/^URI/ s/URI *: *//p') "; rc=añadir; hecho > repositorios

Luego, la imagen se puede construir con el siguiente comando:

compilación del sistema kiwi --target-dir=/var/tmp/kiwi-out --description=sles15-sp3-oci --add-bootstrap-package ca-certificates-mozilla $(cat repos)

La ruta para “–description” debe ajustarse si el directorio sles15-sp3-oci no está en el directorio de trabajo actual. El directorio de destino puede ser cualquier ruta que deba usarse para el proceso de compilación. El paquete "ca-certificates-mozilla" debe agregarse al arranque para que https funcione dentro del entorno de compilación.

Una vez que KIWI haya terminado, debería haber un archivo llamado SLES15-SP3-OCI-BYOS.x86_64-0.9.0.qcow2 en /var/tmp/kiwi-out . Esta es la imagen binaria que se puede cargar en Oracle Cloud Infrastructure.

En caso de que se utilice una instancia de nube pública para la creación de imágenes, se debe cancelar el registro del Centro de atención al cliente de SUSE con el comando

registrarsecloudguest --limpiar

antes de terminar la instancia.

Servicio de compilación openSUSE

OpenSUSE Build Service puede crear imágenes de SUSE Linux Enterprise de forma automatizada. Una descripción de imagen producida por el barril se puede usar tal cual en Open Build Service, aunque es ventajoso agregar un archivo _constraints al directorio de salida del barril con el siguiente contenido:

<restricciones>n  <hardware>n    <disco>n      <unidad de tamaño="G">12</tamaño>n    </disco>n  </hardware>n</restricciones>

Esto evita que las compilaciones fallen debido a que se ejecutan en un trabajador sin suficiente espacio libre en el disco.

Consulte la Guía del usuario para obtener documentación sobre Open Build Service.

Consulte el proyecto SUSE:Templates:Images:SLE-15-SP3:Base para ver un ejemplo de un proyecto de Open Build Service configurado para crear imágenes de SUSE Linux Enterprise Server.

Administrador de SUSE

SUSE Manager tiene la capacidad de crear una imagen de sistema operativo a partir de una descripción de imagen KIWI en un host administrado por él. La descripción de la imagen generada por el barril debe colocarse en un repositorio de Git al que pueda acceder el host de compilación, y el host de compilación debe usar el mismo sistema operativo base que la imagen de destino (SLES 15 SP3 en este caso de ejemplo). La clave de activación utilizada para la compilación debe incluir todos los canales de repositorio necesarios para la imagen.

Consulte la guía de administración de SUSE Manager para obtener detalles sobre cómo crear imágenes con SUSE Manager.

Subir imagen a Oracle Cloud Infrastructure

Para usar una imagen binaria recién creada en Oracle Cloud Infrastructure, debe cargarse en un depósito de almacenamiento de objetos y luego importarse a OCI Compute. Consulte la sección Importación de una máquina virtual basada en Linux en la documentación de Oracle Cloud Infrastructure para obtener instrucciones detalladas sobre cómo hacerlo manualmente. El tipo de imagen es QCOW2 .

El proyecto MASH proporciona una solución para automatizar la carga de imágenes en varios marcos de proveedores de servicios en la nube, incluido Oracle Cloud Infrastructure, y tiene soporte para Open Build Service.

Ir al Blog