Esecuzione di MDI Lineage Migration Toolkit

Le seguenti istruzioni descrivono la migrazione a IBM Manta Data Lineage versione 5.3.0 e successive. Prima di eseguire l' Migration Toolkit MDI Lineage, è necessario completare tutti i passaggi indicati nella sezione dei prerequisiti.

Prerequisiti

Nota: il comando migration deve essere eseguito come root o da un utente con diritti sudo.
  1. Accedi a Cloud Pak for Data come utente con il nodo OCP ( Red Hat OpenShift Container Platform ).

    # Login to OCP HOST with root or a user with sudo access 
    # OCP hostname should start with "api."
    # OCP_USERNAME should be "root" or a user with sudo access
    OCP_HOST=<ocp hostname>
    OCP_USERNAME=<ocp username>
    ssh ${OCP_USERNAME}@${OCP_HOST}
    
  2. Se non hai effettuato l'accesso come utente root , avvia una BASH shell con root privilegi.

    sudo bash
    
  3. Verifica se il tuo ambiente Cloud Pak for Data è stato aggiornato alla versione 5.3.x.

    NAMESPACE=<namespace>
    oc get wkc wkc-cr -n ${NAMESPACE} | grep wkc-cr | awk '{print $2}'
    oc get wkc wkc-cr -n ${NAMESPACE} -o yaml | grep "wkcUpgradeStatus: Completed"
    
  4. Durante l'aggiornamento di Cloud Pak for Data, viene eseguita la migrazione delle connessioni. Verifica lo stato della migrazione delle connessioni.

    NAMESPACE=<namespace>
    oc get pods -n ${NAMESPACE} --sort-by=.metadata.creationTimestamp | tac | grep "post-install-upgrade-dsd-connections-job" | head -n 1
    

    Un esempio di output:

    post-install-upgrade-dsd-connections-job-fd67n                    0/1     Completed                0                2d
    
  5. Scarica ed estrai l'interfaccia a riga di comando (cpd-cli). Per ulteriori informazioni, consulta la sezione "Installazione dell'interfaccia a riga di comando di IBM Software Hub " (cpd-cli).

  6. Aggiungere la directory PATHcpd-cli a:

    # Ensure that cpd-cli is in the PATH
    export PATH=${PATH}:<cpd-cli-location>
    
  7. Verifica la classe di archiviazione del tuo cluster Cloud Pak for Data :

    oc get storageclass --all-namespaces
    
  8. Crea una richiesta di volume persistente (PVC) in base alla classe di archiviazione del tuo cluster Cloud Pak for Data. Vedi la sezione " Preparazione all'utilizzo dell'utilità di esportazione e importazione di IBM Software Hub.

  9. Crea cpd-cli un profilo per l'utente amministratore di Cloud Pak for Data. Vedi, Creazione di un profilo per utilizzare i comandi cpd-cli di gestione.

  10. Verifica se cpd-cli l'utente e il profilo sono stati creati:

    cpd-cli config users list
    cpd-cli config profiles list
    
  11. Avviare l'utilità di esportazione e importazione. Vedi: Inizializzazione dell'utilità di esportazione e importazione.

  12. Scarica il documento "MDI Lineage Migration Toolkit " dal sito Fix Central. Inserisci le tue credenziali di accesso a IBM quando richiesto.

  13. Copiare il file MDI Lineage Migration Toolkit nel ${MDIWORK_DIR} cluster Cloud Pak for Data.

    MDIWORK_DIR=/tmp/mdiwork
    mkdir -p ${MDIWORK_DIR}
    cd ${MDIWORK_DIR}
    
  14. Imposta il MDI_MIG_PATCH_NAME su:

    MDI_MIG_PATCH_NAME=mdi-lineage-migration-patch_5264.zip
    
  15. Installa la patch MDI Lineage Migration Toolkit :

    # set the namespace
    PROJECT_CPD_INST_OPERANDS=<namespace>
    # set OCP node hostname and OCP port
    OCP_URL=<https://<ocp> hostname>:<ocp port>
    NAMESPACE=${PROJECT_CPD_INST_OPERANDS}
    cd ${MDIWORK_DIR}
    unzip ${MDI_MIG_PATCH_NAME}
    chmod -R 755 mdi-lineage-migration-patch
    cd mdi-lineage-migration-patch
    ./install-mdi-lineage-migration-config-spec.sh -u <username> -p <password> -url ${OCP_URL} -n ${NAMESPACE}
    

Requisiti preliminari per un ambiente isolato fisicamente

Nota: i passaggi seguenti devono essere utilizzati esclusivamente per la patch MDI Lineage Migration Toolkit in un ambiente isolato dalla rete.
  1. Accedi alla console OpenShift come amministratore del cluster.

  2. Preparare le credenziali di autenticazione per accedere al repository di produzione IBM. Utilizza lo stesso auth.json file utilizzato per il download di CASE e il mirroring delle immagini, oppure crea un auth.json file contenente le credenziali per accedere icr.io a e al tuo registro privato locale. Per ulteriori informazioni sul file auth.json , consultare la sezione "Sintassi del file di autenticazione del Registro di sistema".

    Un esempio di percorso di directory:

    ${HOME}/.airgap/auth.json
    

    Un esempio di creazione di un auth.json file:

    {
    "auths": {
    "cp.icr.io":{"email":"unused","auth":"<base64 encoded id:apikey>"},
    "<private registry hostname>":{"email":"unused","auth":"<base64 encoded
    id:password>"}
    }
    }
    
  3. Installa skopeo:

    yum install skopeo
    
  4. Confermare il percorso del registro privato locale in cui copiare le immagini dell'hotfix:

    oc describe pod <hotfix image pod> | grep -i "image:"
    

    Un esempio:

    oc describe pod catalog-api | grep Image:
    Image: cp.icr.io/cp/cpd/catalog-api@sha256:03c88c69b986f24d39e4556731c0d171169d2bd91b0fb22f6367fd51c9020e64
    
  5. Ottieni i dettagli relativi alla fonte del registro privato locale:

    oc get imageContentSourcePolicy
    oc describe imageContentSourcePolicy [cloud-pak-for-data-mirror]
    

    Un esempio di output:

    - mirrors:
      - ${PRIVATE_REGISTRY_LOCATION}/cp/
      source: cp.icr.io/cp/cpd
    

    Per ulteriori informazioni sul mirroring delle immagini, consultare la guida "Mirroring IBM Software Hub images to a private container registry ".

  6. Utilizza il skopeo comando per copiare le immagini patch dal registro di produzione di IBM al registro privato locale. Utilizzando il file auth.json appropriato, copia le immagini delle patch dal registro di produzione IBM al registro del cluster OpenShift.

    • Per la versione di 5.3.0, utilizzare il seguente comando:
    DOCKER_IMAGE_ID=6c39dabf5931e20d32e16516ae1ce74b030eea7af5ed552e9e4b1038e7852b97
    skopeo copy --all --authfile "<folder path>/auth.json" \
        --dest-tls-verify=false --src-tls-verify=false \
        docker://cp.icr.io/cp/cpd/mdi-lineage-migration@sha256:${DOCKER_IMAGE_ID} \
        docker://${PRIVATE_REGISTRY_LOCATION}/cp/cpd/mdi-lineage-migration@sha256:${DOCKER_IMAGE_ID}
    
    • Utilizza il seguente comando per la versione 5.3.1 :
    DOCKER_IMAGE_ID=ed185bc3b3e4c2c2bdd3fa91990d0e396b6b0ffb76b76443244e2afa8af649a2
    skopeo copy --all --authfile "<folder path>/auth.json" \
        --dest-tls-verify=false --src-tls-verify=false \
        docker://cp.icr.io/cp/cpd/mdi-lineage-migration@sha256:${DOCKER_IMAGE_ID} \
        docker://${PRIVATE_REGISTRY_LOCATION}/cp/cpd/mdi-lineage-migration@sha256:${DOCKER_IMAGE_ID}
    

Esecuzione della migrazione

Nota:

Il comando migration deve essere eseguito come root o da un utente con accesso sudo. Vedi la sezione " Prerequisiti per l'esecuzione dell' Migration Toolkit MDI ".

  1. Aggiungi cpd-cli la directory a PATH:

    export PATH=${PATH}:<cpd-cli-location>
    
  2. Recupera l'elenco dei profili.

    cpd-cli config profiles list
    
  3. Imposta un nome per il profilo utilizzando un valore dall'elenco dei profili.

    CPD_PROFILE_NAME=<cpd-profile-name>
    
  4. Impostare le variabili d'ambiente per i seguenti parametri obbligatori:

    NAMESPACE=<namespace>
    CP4D_HOST=<cp4d hostname>
    MIGRATION_USERNAME=<migration username>
    MIGRATION_USER_APIKEY=<migration user apikey>
    MIGRATION_INSTANCE_NAME=<migration instance name>
    DSD_ADMIN_USERNAME=<dsd admin username>
    LINEAGE_ADMIN_USERNAME=<lineage admin username>
    LOG_LEVEL=debug
    MDIWORK_DIR=/tmp/mdiwork
    
    • Per MIGRATION_USERNAME il parametro, assegnare all'utente l'autorizzazione " Gestisci progetti ". Questo utente è anche denominato "utente di migrazione".

    • Per MIGRATION_USER_APIKEY il parametro, inserire la chiave API dell'utente di migrazione.

    • Per DSD_ADMIN_USERNAME il parametro, assegnare all'utente le autorizzazioni " Crea definizioni di origine dati " e "Gestisci definizioni di origine dati ". Questo utente deve essere aggiunto al gruppo Platform assets catalog con il ruolo di amministratore.

    • Per LINEAGE_ADMIN_USERNAME il parametro, inserire il nome utente dell'amministratore di sistema. L'utente amministratore di sistema deve disporre almeno delle seguenti autorizzazioni: Amministrazione della piattaforma, Gestione dei cataloghi, Gestione degli utenti, Gestione dell'individuazione delle risorse, Accesso alla tracciabilità dei dati, Gestione della tracciabilità dei dati.

    • Se si desidera che la migrazione utilizzi l'utente amministratore di sistema per creare e gestire le definizioni delle origini dati, è possibile specificare lo stesso nome utente amministratore di sistema sia per il parametro DSD_ADMIN_USERNAME che LINEAGE_ADMIN_USERNAME per il parametro.

    • Se desideri eseguire la migrazione in modalità debug, imposta LOG_LEVEL=debug. Altrimenti, imposta LOG_LEVEL=info.

  5. Crea un file YAML dei parametri di migrazione:

    MIGRATION_USER_BEARER_TOKEN=$(curl -i -s -k -X POST "https://${CP4D_HOST}/icp4d-api/v1/authorize" -H "Accept: application/json" -H "Content-Type: application/json" -d "{\"username\":\"${MIGRATION_USERNAME}\",\"api_key\":\"${MIGRATION_USER_APIKEY}\"}" | grep '"token":' | grep -o '"token":\S*"' | awk -F , '{print$1}' | awk -F : '{print$2}' | tr -d '"')
    cd ${MDIWORK_DIR}
    cat <<EOF > mdi-lineage-mig-params.yaml
    mdi-lineage-migration-aux:
     MIGRATION_INSTANCE_NAME: ${MIGRATION_INSTANCE_NAME}
     MIGRATION_USER_BEARER_TOKEN: ${MIGRATION_USER_BEARER_TOKEN}
     DSD_ADMIN_USERNAME: ${DSD_ADMIN_USERNAME}
     LINEAGE_ADMIN_USERNAME: ${LINEAGE_ADMIN_USERNAME}
    EOF
    
  6. Esegui l'esportazione utilizzando il file YAML dei parametri di migrazione:

    cd ${MDIWORK_DIR}
    cpd-cli export-import export create -c mdi-lineage-migration -n ${NAMESPACE} --profile=${CPD_PROFILE_NAME} --backoff-limit=0 -f mdi-lineage-mig-params.yaml ${MIGRATION_INSTANCE_NAME} --log-level=${LOG_LEVEL}
    
  7. Controlla lo stato dell'esportazione e verifica che la migrazione sia stata completata:

    cpd-cli export-import export status -n ${NAMESPACE} ${MIGRATION_INSTANCE_NAME} --profile=${CPD_PROFILE_NAME}
    

    Un esempio di output:

    cpd-cli export-import export status -n ${NAMESPACE} ${MIGRATION_INSTANCE_NAME} --profile=${CPD_PROFILE_NAME}
    Name:        	14febtest02                    
    Job Name:    	cpd-ex-14febtest02             
    Active:      	0                              
    Succeeded:   	1                              
    Failed:      	0                              
    Start Time:  	Fri, 14 Feb 2025 00:18:42 -0800
    Completed At:	Fri, 14 Feb 2025 00:21:20 -0800
    Duration:    	2m38s
    
  8. Ottieni l'elenco delle importazioni:

    cpd-cli export-import import list --profile=${CPD_PROFILE_NAME}
    
  9. Eliminare l'importazione esistente se individuata nel passaggio precedente:

    OLD_IMPORT_NAME=<name of the existing import>
    cpd-cli export-import import delete ${OLD_IMPORT_NAME} -n ${NAMESPACE} --profile=${CPD_PROFILE_NAME}
    
  10. Esegui l'importazione:

    cd ${MDIWORK_DIR}
    cpd-cli export-import import create -n ${NAMESPACE} --profile=${CPD_PROFILE_NAME} -f mdi-lineage-mig-params.yaml ${MIGRATION_INSTANCE_NAME}im1 --backoff-limit 0 --log-level=${LOG_LEVEL} --from-export ${MIGRATION_INSTANCE_NAME}
    
  11. Controlla lo stato dell'importazione e verifica che la migrazione sia stata completata:

    cpd-cli export-import import status -n ${NAMESPACE} ${MIGRATION_INSTANCE_NAME}im1 --profile=${CPD_PROFILE_NAME}
    

    Un esempio di output:

    cpd-cli export-import import status -n ${NAMESPACE} ${MIGRATION_INSTANCE_NAME}im1 --profile=${CPD_PROFILE_NAME}
    Name:        	14febtest02im1                    
    Job Name:    	cpd-im-14febtest02             
    Active:      	0                              
    Succeeded:   	1                              
    Failed:      	0                              
    Start Time:  	Fri, 14 Feb 2025 00:18:42 -0800
    Completed At:	Fri, 14 Feb 2025 00:24:20 -0800
    Duration:    	5m38s