Convert2RHEL è un'utility Red Hat che converte sistemi operativi simili o derivati da Red Hat Enterprise Linux (RHEL), come CentOS Linux e Oracle Linux. Per un elenco completo dei sistemi operativi supportati, leggi questo documento. Per ulteriori informazioni, consulta gli articoli del blog di Terry Bowling qui e qui su Oracle Linux.

Red Hat Satellite 6.10 è stata la prima versione compatibile con le operazioni Convert2RHEL in blocco. Ne ho parlato nell'articolo del blog disponibile qui. Satellite 6.11 sfrutta queste funzionalità in due modi:

  1. Un ruolo Ansible automatizza la configurazione/preparazione del server Satellite per Convert2RHEL.

  2. Un Ansible Playbook automatizza le conversioni degli host.

Il seguente diagramma di flusso illustra con chiarezza la procedura necessaria per eseguire un'operazione Convert2RHEL in blocco in Satellite 6.11.

 

Flowchart of tasks required to perform a bulk Convert2RHEL operation

Quando è tutto pronto, registrare gli host Centos/Oracle Linux su Satellite e pianificare un processo di conversione degli host in RHEL.

È importante tenere presente che il ruolo Ansible può essere applicato manualmente al server Satellite, con un server Ansible distinto.

Di seguito è illustrata dettagliatamente la procedura necessaria per distribuire questa nuova automazione.

Preparazione del server Satellite

Innanzitutto, bisogna seguire queste istruzioni per importare i ruoli Ansible inclusi.

Innanzitutto, andare a "Configure" > "Roles".

 

first go to Configure > Roles

Fare clic su "Import…".

 

Click on Import

Fare clic su "Select All" e poi su "Submit".

 

Click on Select All and then Submit

Poi bisognerà creare le variabili per il ruolo Ansible prima di eseguirlo sul server Satellite.  Queste variabili indicano al ruolo Ansible come configurare l'operazione Convert2RHEL in blocco sul server Satellite, specificando il manifest di sottoscrizione, l'organizzazione, la posizione, le credenziali dell'amministratore e così via.

Secondo la mia esperienza, il metodo più semplice e veloce per configurare le variabili del ruolo Ansible prevede l'impiego dell'utility a riga di comando Hammer sul server Satellite. È inoltre possibile configurare le variabili del ruolo Ansible tramite l'interfaccia utente web Satellite

Nello specifico, per questo server Satellite sto definendo le seguenti variabili.

Variabile

Valore

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

È così che si creano le variabili del ruolo Ansible con l'utility Hammer.

satellite_rhel_wait_for_syncs

Il ruolo Ansible configura e sincronizza i repository necessari per eseguire l'operazione Convert2RHEL in blocco. La variabile satellite_rhel_wait_for_syncs indica all'operazione di attendere la sincronizzazione dei repository.

Digitare quanto segue nell'interfaccia a riga di comando del server Satellite dopo aver effettuato l'accesso come root:

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

Quando viene eseguito, il ruolo Ansible carica il manifest di sottoscrizione, in modo che tutti i nuovi host vengano autorizzati adeguatamente. Laddove sia già stato caricato un manifest valido, purtroppo occorre ripetere l'operazione.

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

La mia organizzazione Satellite è "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

Il ruolo Ansible richiede le credenziali dell'amministratore di Satellite. Digitare la password qui.

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

Nota: per evitare di utilizzare le password, è possibile configurare i token di accesso personali.

 

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

satellite_username

Digitare il nome utente dell'amministratore qui.

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

L'URL del server Satellite è l'URL cui gli host dovranno accedere con l'utility 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

Questo valore deve essere impostato su "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

Questa variabile specifica che si desidera che il ruolo Ansible sincronizzi il contenuto di RHEL7, per consentire la conversione degli host Centos 7 (o Oracle) in RHEL7. Per impedire la sincronizzazione del contenuto RHEL7, utilizzare questa variabile per specificare 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

Questa variabile specifica che si desidera che il ruolo Ansible sincronizzi il contenuto di RHEL8, per consentire la conversione degli host Centos 8 (o Oracle) in RHEL8. Per impedire la sincronizzazione del contenuto RHEL8, utilizzare questa variabile per specificare 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

È possibile verificare la corretta impostazione delle variabili nell'interfaccia utente web. Andare al sottomenu "Ansible Variables".

 

Go to the Ansible Variables sub-menu

Scorrere le variabili per individuare quelle appena create.

 

Ansible variables

A questo punto bisogna configurare Satellite per consentirvi lo svolgimento di processi di esecuzione remoti.

Nota: questo passaggio non è necessario se è già possibile l'esecuzione remota di processi sul server Satellite. 

Accedere al server Satellite come root ed eseguire il seguente comando:

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

Il risultato sarà simile a quello riportato di seguito.

 

Satellite installer sample output

A questo punto, bisogna applicare il ruolo Ansible al server Satellite.

Fare clic su "Hosts" > "All Hosts".

 

Click on Hosts > All Hosts

Modificare il server Satellite.

 

Edit your Satellite server

Fare clic sulla scheda "Ansible Roles".

 

Click on the Ansible Roles tab

Il ruolo Convert2RHEL si trova nella seconda pagina del sottomenu. Fare clic sul segno + per assegnare il ruolo redhat.satellite.convert2rhel al server Satellite.

 

The Convert2RHEL roles is on the second page

Quindi fare clic su "Submit".

 

Click Submit

A questo punto avviene il reindirizzamento alla pagina delle informazioni sull'host. Fare clic sul pulsante "Schedule Remote Job" e selezionare "Run Ansible roles".

 

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

Avviene così il reindirizzamento a una pagina indicante lo stato del processo. Fare clic sull'host Satellite per visualizzare lo stato del processo in tempo reale.

 

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

Qui è possibile vedere ogni attività del processo in esecuzione.

 

Here you can see each task in the job being executed

Nota: il ruolo Ansible sincronizza il contenuto richiesto e crea gruppi di host e chiavi di attivazione, tra le altre attività. Satellite 6.11 presenta un bug per il quale la chiave di attivazione creata per registrare gli host CentOS 7, "Convert2RHEL7", attiva il repository Convert2RHEL8. Per aggirarlo, bisogna sostituire questo repository nella chiave di attivazione "convert2rhel_centos7".

 

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

Esecuzione della conversione

IMPORTANTE: prima di eseguire la conversione, gli host candidati devono essere aggiornati e riavviati con il kernel più recente. 

Per prima cosa, occorre registrare gli host da convertire. In questo caso sto effettuando la conversione di host CentOS7. Fare clic su "Hosts" > "Register Host".

 

Click on Hosts > Register Host

Sui miei host CentOS di prova, non ho copiato i file dell'autorità di certificazione dal server Satellite. Ulteriori informazioni su questa procedura sono disponibili qui.

Nel menu "Register Host", selezionare 1) il gruppo di host "CentOS 7 converting", quindi 2) "Insecure"  e poi 3) "Advanced". L'opzione "Insecure" consente di eseguire subito lo script, senza dover verificare il certificato autofirmato. La comunicazione successiva è del tutto sicura. Per chi preferisce evitare l'utilizzo del metodo "Insecure", ulteriori informazioni sull'importazione dei certificati sono disponibili qui.

 

Register Host

Poi fare clic su "Advanced".

Procedere come indicato di seguito nella sezione "Advanced" del menu "Register Host".

  1. Verificare che le "Activation Keys" siano ereditate dal gruppo di host "convert2rhel_centos7". Qui non bisogna effettuare alcun clic.

  2. Fare clic su "Generate" per generare lo script curl da copiare e incollare nella CLI dell'host CentOS.

  3. Fare clic sul pulsante di copia per copiare lo script curl. 

 

Register Host Advanced Tab

A questo punto bisogna accedere a uno degli host candidati. Esportare le impostazioni locali corrette dell'host.

export LANG=en_US.UTF-8

Incollare lo script curl ed eseguilo. Di seguito è riportato un esempio del risultato.

 

Some example output

Ripetere questa procedura per tutti gli host candidati.

Nel menu "Hosts" sono riportati tutti gli host CentOS registrati su Satellite.

 

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

Per avviare l'operazione Convert2RHEL, attenersi alla seguente procedura.

  1. Selezionare gli host candidati.

  2. Fare clic su "Select Action" e selezionare "Schedule Remote Job".

 

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

Nel menu "Job invocation", procedere come indicato di seguito.

  1. Nel menu a discesa "Job category", selezionare "Convert 2 RHEL".

  2. Nel menu a discesa "Activation Key", selezionare "convert2rhel_rhel7".

  3. Fare clic su "Submit" per avviare l'operazione Convert2RHEL in blocco.

 

Click "Submit" to start the bulk Convert2RHEL operation.

A questo punto avviene il reindirizzamento al menu "Job Overview" da cui è possibile scegliere di visualizzare lo stato in tempo reale del processo su ciascun host, facendo clic sull'host stesso.

 

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

Questa è la visualizzazione in tempo reale del processo.

 

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

Al termine dell'operazione tutti gli host sono stati convertiti in una volta in RHEL.

 

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

Per ulteriori informazioni, consultare la documentazione ufficiale su Convert2RHEL qui.

 


Sull'autore

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