Convert2RHEL es una herramienta de Red Hat que convierte los sistemas operativos similares a Red Hat Enterprise Linux (RHEL) o que se basan en él, como CentOS Linux y Oracle Linux. Si desea conocer la lista completa de los sistemas operativos compatibles, consulte este documento. Para obtener más información, lea las entradas del blog de Terry Bowling aquí y aquí sobre Oracle Linux.

Red Hat Satellite 6.10 incorporó por primera vez la función para realizar operaciones de Convert2RHEL a gran escala. Escribí sobre este tema aquí en el blog. Satellite 6.11 se basa en esas funciones de dos maneras:

  1. Una función de Ansible automatiza la configuración y la preparación del servidor de Satellite para Convert2RHEL.

  2. Un playbook de Ansible automatiza las conversiones del host.

En el siguiente diagrama de flujo verá una descripción general de las tareas necesarias para realizar una operación a gran escala de Convert2RHEL en Satellite 6.11.

 

Flowchart of tasks required to perform a bulk Convert2RHEL operation

Cuando esté listo, registre los hosts de CentOS y Oracle Linux en Satellite y programe un trabajo para convertirlos a RHEL.

Tenga en cuenta que puede aplicar la función de Ansible al servidor de Satellite de forma manual, con un servidor de Ansible diferente.

A continuación, se detallan todos los pasos necesarios para implementar esta automatización nueva.

Prepare el servidor de Satellite

Para empezar, siga estas instrucciones para importar las funciones incluidas de Ansible.

Primero, vaya a Configure > Roles (Configurar > Funciones).

 

first go to Configure > Roles

Haga clic en "Import…" (Importar…).

 

Click on Import

Haga clic en "Select All" (Seleccionar todas) y después en "Submit" (Enviar).

 

Click on Select All and then Submit

Luego, tendremos que crear variables para la función de Ansible antes de ejecutarla en el servidor de Satellite.Estas variables le indicarán a la función cómo desea configurar la operación a gran escala de Convert2RHEL en el servidor de Satellite. Esto incluye especificar el manifiesto de suscripción, la empresa, la ubicación, las credenciales de administrador, etc.

Descubrí que la forma más sencilla y rápida de configurar las variables de la función de Ansible es mediante la herramienta Hammer de la línea de comandos en el servidor de Satellite. También puede hacerlo a través de la interfaz de usuario web de Satellite.

En este servidor específico de Satellite, establecí las siguientes variables.

Variable

Valor

satellite_rhel_wait_for_syncs

true

satellite_manifest_path

/usr/share/satellite/manifest_satellite_20220815T193102Z.zip

satellite_organization

Acme Org

satellite_password

Ha ha no you don’t

satellite_username

myee

satellite_server_url

https://ip-172-31-29-4.us-west-1.compute.internal

satellite_validate_certs

true

satellite_content_rhel_enable_rhel7

true

satellite_content_rhel_enable_rhel8

true

De esta manera, creamos las variables para la función de Ansible con la herramienta Hammer.

satellite_rhel_wait_for_syncs

La función de Ansible configura y sincroniza los repositorios necesarios para realizar la operación a gran escala de Convert2RHEL. La variable satellite_rhel_wait_for_syncs le indica a la operación que espere a que los repositorios se sincronicen.

Ingrese lo siguiente en la interfaz de la línea de comandos del servidor de Satellite mientras está conectado como superusuario:

hammer ansible variables create --location "Vancouver" --organization "Acme Org" --ansible-role redhat.satellite.convert2rhel --variable satellite_rhel_wait_for_syncs --variable-type boolean --default-value false --override true

satellite_manifest_path

Cuando se ejecuta la función de Ansible, carga el manifiesto de suscripción, lo cual garantiza que todos los hosts nuevos tengan la licencia adecuada. Si ya cargó un manifiesto válido, tendrá que volver a hacerlo.

hammer ansible variables create --location "Vancouver" --organization "Acme Org" --ansible-role redhat.satellite.convert2rhel --variable satellite_manifest_path --variable-type string --default-value "/usr/share/satellite/manifest_satellite_20220815T193102Z.zip" --override true

satellite_organization/usr

Mi empresa en Satellite es "Acme Org".

hammer ansible variables create --location "Vancouver" --organization "Acme Org" --ansible-role redhat.satellite.convert2rhel --variable satellite_organization --variable-type string --default-value "Acme Org" --override true

satellite_password

La función de Ansible requerirá las credenciales de administrador de Satellite. Ingrese la contraseña aquí.

hammer ansible variables create --location "Vancouver" --organization "Acme Org" --ansible-role redhat.satellite.convert2rhel --variable satellite_password --variable-type string --default-value "YOUR_ADMIN_PASSWORD" --override true

NotaPara evitar el uso de contraseñas, puede configurar tokens de acceso personal.

 

To avoid using passwords you can set up Personal Access Tokens instead

satellite_username

Ingrese el nombre de usuario del administrador aquí.

hammer ansible variables create --location "Vancouver" --organization "Acme Org" --ansible-role redhat.satellite.convert2rhel --variable satellite_username --variable-type string --default-value "myee" --override true

satellite_server_url

La URL del servidor de Satellite es a la que deberán acceder los hosts con la herramienta curl.

hammer ansible variables create --location "Vancouver" --organization "Acme Org" --ansible-role redhat.satellite.convert2rhel --variable satellite_server_url --variable-type string --default-value "https://ip-172-31-29-4.us-west-1.compute.internal" --override true

satellite_validate_certs

Este valor debe establecerse como true.

hammer ansible variables create --location "Vancouver" --organization "Acme Org" --ansible-role redhat.satellite.convert2rhel --variable satellite_validate_certs --variable-type boolean --default-value true --override true

satellite_content_rhel_enable_rhel7

Esta variable indica que quiere que la función de Ansible sincronice el contenido de RHEL7 para permitir la conversión de los hosts de CentOS 7 (u Oracle) a RHEL7. Si no desea sincronizar el contenido de RHEL7, use esta variable para especificar false

.hammer ansible variables create --location "Vancouver" --organization "Acme Org" --ansible-role redhat.satellite.convert2rhel --variable satellite_content_rhel_enable_rhel7 --variable-type boolean --default-value true --override true

satellite_content_rhel_enable_rhel8

Esta variable indica que quiere que la función de Ansible sincronice el contenido de RHEL8 para permitir la conversión de los hosts de CentOS 8 (u Oracle) a RHEL8. Si no desea sincronizar el contenido de RHEL8, use esta variable para especificar false

hammer ansible variables create --location "Vancouver" --organization "Acme Org" --ansible-role redhat.satellite.convert2rhel --variable satellite_content_rhel_enable_rhel8 --variable-type boolean --default-value true --override true

Puede comprobar que las variables se hayan configurado de forma correcta en la interfaz de usuario web. Vaya al menú secundario Variables (Variables) de Ansible.

 

Go to the Ansible Variables sub-menu

Desplácese por las variables hasta que encuentre las que acaba de crear.

 

Ansible variables

Ahora tenemos que configurar Satellite para que pueda poner en marcha trabajos de ejecución remota.

Nota: No es necesario que realice este paso si ya puede poner en funcionamiento los trabajos de ejecución remota en el servidor de Satellite.

Inicie sesión en el servidor de Satellite como superusuario y ejecute el siguiente comando:

satellite-installer \ --foreman-proxy-plugin-remote-execution-ssh-install-key true

El resultado se verá de la siguiente manera.

 

Satellite installer sample output

Luego, aplicaremos la función de Ansible al servidor de Satellite.

Haga clic en Hosts > All Hosts (Hosts > Todos los hosts).

 

Click on Hosts > All Hosts

Edite el servidor de Satellite.

 

Edit your Satellite server

Haga clic en la pestaña Ansible Roles (Funciones de Ansible).

 

Click on the Ansible Roles tab

La función Convert2RHEL se encuentra en la segunda página del menú secundario. Haga clic en el signo + para asignar la función redhat.sa satellite.convert2rhel al servidor de Satellite.

 

The Convert2RHEL roles is on the second page

Luego, haga clic en "Submit" (Enviar).

 

Click Submit

Será redirigido a la página de información del host. Haga clic en el botón "Schedule Remote Job" (Programar trabajo remoto) y seleccione "Run Ansible roles" (Ejecutar las funciones de Ansible).

 

Click on the Schedule Remote Job button and select Run Ansible roles

Será redirigido a una página que muestra el estado del trabajo. Haga clic en el host de Satellite para ver el estado del trabajo en tiempo real.

 

Click on the Satellite host to see the real-time status of the job

Aquí puede ver cada tarea en el trabajo que está en ejecución.

 

Here you can see each task in the job being executed

Nota: La función de Ansible sincroniza el contenido requerido, crea grupos de hosts y claves de activación, entre otras tareas. Satellite 6.11 presenta un error: la clave de activación creada para registrar los hosts de CentOS 7, "Convert2RHEL7", habilita el repositorio Convert2RHEL8. Para solucionarlo, debe anular el repositorio en la clave de activación "convert2rhel_centos7".

 

To work around this bug, you must override this repo in the "convert2rhel_centos7" activation key

Ejecute la conversión

IMPORTANTE: Antes de ejecutar la conversión, los hosts que se pretenden utilizar deben estar actualizados y deben reiniciarse con el kernel más reciente.

Primero, tendremos que registrar los hosts para convertirlos. En este caso, utilizo los hosts de CentOS7. Haga clic en Hosts > Register host (Hosts > Registrar host).

 

Click on Hosts > Register Host

En los hosts de CentOS de prueba, no copié los archivos de autoridad de certificación del servidor de Satellite. Puede obtener más información sobre cómo hacerlo aquí.

En el menú de registro de hosts, seleccione 1) "CentOS 7 converting" (conversión de CentOS 7) para el grupo de hosts, luego 2) "Insecure" (Inseguro) y posteriormente vaya a la pestaña 3) "Advanced" (Opciones avanzadas). La opción "Insecure" (Inseguro) permite que el script se ejecute al inicio sin verificar el certificado autogenerado. La comunicación posterior está totalmente protegida. Si prefiere no utilizar el método "Insecure" (Inseguro), lea más sobre la importación de certificados aquí.

 

Register Host

A continuación, haga clic en "Advanced" (Opciones avanzadas).

Lleve a cabo las siguientes tareas en el contexto "Advanced" (Opciones avanzadas) del menú "Register Host" (Registrar host).

  1. Compruebe que las "Activation Keys" (Claves de activación) provengan del grupo de hosts "convert2rhel_centos7". No debería tener que hacer clic en ninguna opción aquí.

  2. Haga clic en "Generate" (Generar). Esto generará el script curl que copiará y pegará en la CLI del host de CentOS.

  3. Haga clic en el botón de copia para copiar el script curl.

 

Register Host Advanced Tab

Ahora inicie sesión en uno de los hosts que pretende utilizar. Exporte la configuración regional correcta del host.

export LANG = en_US.UTF-8

Pegue el script curl y ejecútelo. A continuación, verá un ejemplo del resultado.

 

Some example output

Repita esta tarea para todos los hosts que pretende utilizar.

En el menú Hosts (Hosts), verá todos los hosts de CentOS registrados en Satellite.

 

In the Hosts menu, you see all your CentOS hosts registered to Satellite.

Para iniciar la operación de Convert2RHEL, lleve a cabo las siguientes tareas.

  1. Seleccione los hosts que pretende utilizar.

  2. Haga clic en "Select Action" (Seleccionar acción) y elija "Schedule Remote Job" (Programar trabajo remoto).

 

Click on "Select Action" and select "Schedule Remote Job".

En el menú Job invocation (Invocación de trabajo), realice las siguientes tareas.

  1. En la lista desplegable "Job category" (Clase del trabajo), seleccione "Convert 2 RHEL".

  2. En la de "Activation Key" (Clave de activación), seleccione "convert2rhel_rhel7".

  3. Haga clic en "Submit" (Enviar) para iniciar la operación a gran escala de Convert2RHEL.

 

Click "Submit" to start the bulk Convert2RHEL operation.

Será redirigido al menú "Job Overview" (Descripción general del trabajo), donde puede hacer clic en los hosts para conocer el estado en tiempo real del trabajo en cada uno de ellos.

 

You’ll be redirected to the "Job Overview" menu

Esta es la visualización del trabajo en tiempo real.

 

Here’s the real-time view of the job.

Finalmente, todos los hosts se convirtieron a RHEL de forma simultánea.

 

The final result, all hosts converted to RHEL at once!

Para obtener más información, consulte la documentación oficial de Convert2RHEL aquí.

 


About the author

As a Senior Principal Technical Marketing Manager in the Red Hat Enterprise Linux business unit, Matthew Yee is here to help everyone understand what our products do. He joined Red Hat in 2021 and is based in Vancouver, Canada.

Read full bio