Red Hat Training

A Red Hat training course is available for RHEL 8

6.3.7. Personalizaciones de imagen soportadas

En este momento se admiten varias personalizaciones de imágenes dentro de los planos. Para hacer uso de estas opciones, deben ser configuradas inicialmente en el plano e importadas (empujadas) a Image Builder.

Nota

Estas personalizaciones no son compatibles actualmente con la interfaz gráfica de usuario de la cabina de mando.

Procedimiento

  1. Establezca el nombre de host de la imagen:

    [customizations]
    hostname = "baseimage"
  2. Especificaciones del usuario para la imagen del sistema resultante:

    [[customizations.user]]
    name = "USER-NAME"
    description = "USER-DESCRIPTION"
    password = "PASSWORD-HASH"
    key = "PUBLIC-SSH-KEY"
    home = "/home/USER-NAME/"
    shell = "/usr/bin/bash"
    groups = ["users", "wheel"]
    uid = NUMBER
    gid = NUMBER
    Importante

    Para generar el hash, debe instalar python3 en su sistema. El siguiente comando instalará el paquete python3.

    # yum install python3

    Sustituya PASSWORD-HASH por el hash de la contraseña real. Para generar el hash, utilice un comando como:

    $ python3 -c 'import crypt,getpass;pw=getpass.getpass();print(crypt.crypt(pw) if (pw==getpass.getpass("Confirm: ")) else exit())'

    Sustituya PUBLIC-SSH-KEY por la clave pública real.

    Reemplace los otros marcadores de posición con valores adecuados.

    Omita cualquiera de las líneas según sea necesario, sólo se requiere el nombre de usuario.

    Repita este bloque para cada usuario a incluir.

  3. Especificaciones del grupo para la imagen del sistema resultante:

    [[customizations.group]]
    name = "GROUP-NAME"
    gid = NUMBER

    Repite este bloque para cada grupo a incluir.

  4. Establecer la clave ssh de un usuario existente:

    [[customizations.sshkey]]
    user = "root"
    key = "PUBLIC-SSH-KEY"
    Nota

    Esta opción sólo es aplicable a los usuarios existentes. Para crear un usuario y establecer una clave ssh, utilice la personalización User specifications for the resulting system image.

  5. Añade una opción de parámetro de arranque del kernel a los valores por defecto:

    [customizations.kernel]
    append = "KERNEL-OPTION"
  6. Establezca el nombre del host de la imagen:

    [customizations]
    hostname = "BASE-IMAGE"
  7. Añade un grupo para la imagen del sistema resultante:

    [[customizations.group]]
    name = "USER-NAME"
    gid = "NUMBER"

    Sólo se requiere el nombre y el GID es opcional.

  8. Establezca la zona horaria y los servidores Network Time Protocol (NTP) para la imagen del sistema resultante:

    [customizations.timezone]
    timezone = "TIMEZONE"
    ntpservers = "NTP_SERVER"

    Si no se establece una zona horaria, el sistema utiliza por defecto Universal Time, Coordinated (UTC) . La configuración de los servidores NTP es opcional.

  9. Establezca la configuración regional para la imagen del sistema resultante:

    [customizations.locale]
    languages = ["LANGUAGE"]
    keyboard = "KEYBOARD"

    La configuración de las opciones de idioma y teclado es obligatoria. Puedes añadir varios idiomas. El primer idioma que añadas será el principal y los demás serán secundarios.

  10. Establezca el cortafuegos para la imagen del sistema resultante:

    [customizations.firewall]
    port = ["PORTS"]

    Puede utilizar los puertos numéricos, o sus nombres del archivo /etc/services para habilitar las listas.

  11. Personalizar los servicios del cortafuegos:

    Revise los servicios de firewall disponibles.

    $ firewall-cmd --get-services

    En el plano, en la sección customizations.firewall.service, especifique los servicios de firewall que desea personalizar.

    [customizations.firewall.services]
    enabled = ["SERVICES"]
    disabled = ["SERVICES"]

    Los servicios que aparecen en firewall.services son diferentes de los nombres disponibles en el archivo /etc/services.

    Opcionalmente, puede personalizar los servicios del cortafuegos para la imagen del sistema que piensa crear.

    Nota

    Si no desea personalizar los servicios del cortafuegos, omita las secciones [customizations.firewall] y [customizations.firewall.services] del plano.

  12. Establece los servicios que se deben habilitar durante el arranque:

    [customizations.services]
    enabled = ["SERVICES"]
    disabled = ["SERVICES"]

    Puede controlar los servicios que se activan durante el arranque. Algunos tipos de imagen ya tienen servicios habilitados o deshabilitados para que la imagen funcione correctamente y esta configuración no puede ser anulada.

  13. Añade archivos de un repositorio git a tu plano:

    [[repos.git]]
    rpmname = "RPM-NAME"
    rpmversion = "RPM-VERSION"
    rpmrelease = "RPM-RELEASE"
    summary = "RPM-SUMMARY"
    repo = "REPO-URL"
    ref = "GIT-REF"
    destination = "SERVICES"

    Puede utilizar entradas para añadir archivos de un repositorio git a la imagen creada.

    Por ejemplo, para crear un paquete RPM llamado server-config-1.0-1.noarch.rpm, añada la siguiente información a su proyecto:

    Sustituya _RPM-NAME por el nombre del paquete RPM a crear. Este es también el nombre del prefijo en el archivo tar resultante.

    Sustituya RPM-VERSION por la versión del paquete RPM, por ejemplo, "1.0.0".

    Sustituya RPM-RELEASE por la versión del paquete RPM, por ejemplo, \ "1".

    Sustituya RPM-SUMMARY por la cadena de resumen del paquete RPM.

    Sustituye REPO-URL por la URL del repositorio get para clonar y crear el archivo desde él.

    Sustituya GIT-REF por la referencia git que desea consultar, por ejemplo, origin/branch-name, git tag, o git commit hash.

    Sustituya SERVICES por la ruta de instalación del directorio del repositorio git al instalar el paquete RPM.

    Como consecuencia, se clona el repositorio git proporcionado, se comprueba la referencia git especificada y se crea un paquete RPM para instalar los archivos en una ruta de destino, por ejemplo, /opt/server/. El RPM incluye un resumen con los detalles del repositorio y la referencia utilizada para crearlo. El paquete RPM también se incluye en los metadatos de construcción de la imagen.

    Nota

    Cada vez que se inicia una compilación, se clona el repositorio. Si se refiere a un repositorio con una gran cantidad de historia, puede tomar un tiempo para clonar y utilizar una cantidad significativa de espacio en disco. Además, el clon es temporal y se elimina una vez que se crea el paquete RPM.