Salta al contenuto

Come posso risolvere un errore di installazione di AWS Replication Agent sul mio server Linux?

8 minuti di lettura
0

Desidero installare AWS Replication Agent per AWS Application Migration Service o AWS Elastic Disaster Recovery, ma l'installazione ha dato esito negativo.

Risoluzione

Per identificare automaticamente i problemi durante l'installazione dell'agente di replica per Application Migration Service o Elastic Disaster Recovery in server di origine Linux, utilizza il runbook di automazione AWSSupport-TroubleshootLinuxMGNDRSAgentLogs. Il runbook utilizza i file di log di installazione di AWS Replication Agent per fornire un elenco degli errori rilevati e indicazioni sulla loro risoluzione.

Prima di avviare il runbook AWSSupport-TroubleshootLinuxMGNDRSAgentLogs, assicurati che l'utente o il ruolo AWS Identity and Access Management (AWS IAM) abbia le autorizzazioni richieste. Per ulteriori informazioni, consulta Autorizzazioni IAM richieste in AWSSupport-TroubleshootLinuxMGNDRSAgentLogs. Inoltre, carica il file di log dell'agente di replica installer-path/aws_replication_agent_installer.log in un bucket Amazon Simple Storage Service (Amazon S3).

Per eseguire AWSSupport-TroubleshootLinuxMGNDRSAgentLogs, consulta Istruzioni in AWSSupport-TroubleshootLinuxMGNDRSAgentLogs.

Configura i seguenti parametri di input per ServiceName (Required):

  • Per utilizzare Application Migration Service, seleziona AWS MGN.
  • Per utilizzare Elastic Disaster Recover, seleziona AWS DRS.

In alternativa, esegui questo comando per identificare manualmente gli errori di installazione di AWS Replication Agent:

less +G installer-path/aws_replication_agent_installer.log

Nota: sostituisci installer-path con il percorso utilizzato per installare l'agente di replica.

In base all'errore che hai identificato, utilizza i seguenti passaggi per risolvere il problema.

Errore "failed to map segment from shared object: Operation not permitted"

Lo script di installazione utilizza la directory /tmp. Se imposti noexec su /tmp, libz.so non può mappare i segmenti e ricevi il seguente messaggio di errore:

"error while loading shared libraries: libz.so.1: failed to map segment from shared object: Operation not permitted"

Per risolvere l'errore, monta il volume con autorizzazioni di esecuzione eseguendo questo comando:

# sudo mount /tmp -o remount,exec

Se non vuoi rimuovere noexec dalla directory /tmp, aggiungi la seguente variabile di ambiente al comando:

TMPDIR='my_temp_dir' AGENT INSTALLATION COMMAND

Nota: sostituisci my_temp_dir con una directory che non contiene noexec e AGENT INSTALLATION COMMAND con il comando che utilizzi per installare l'agente.

Esempio di comando:

TMPDIR='temp1' sudo chmod +x aws-replication-installer-init; sudo ./aws-replication-installer-init

Errore "security token included in the request is expired"

Se il ruolo IAM scade, le chiamate API all'endpoint di Application Migration Service o Elastic Disaster Recovery hanno esito negativo e ricevi il seguente messaggio di errore:

"botocore.exceptions.ClientError: An error occurred (ExpiredTokenException) when calling the GetAgentInstallationAssetsForDrs operation: The security token included in the request is expired [installation_id: 1a9af9d3-9485-4e02-965e-611929428c61, agent_version: 3.7.0, mac_addresses: 206915885515739,206915885515740, _origin_client_type: installer]"

Per risolvere l'errore, richiedi credenziali di sicurezza temporanee per generare un nuovo token. Oppure installa il ruolo con una chiave di accesso o una chiave di accesso segreta per Application Migration Service o Elastic Disaster Recovery.

Errore "ssl.SSLCertVerificationError"

Se utilizzi una versione precedente del sistema operativo con Python 3.10 o versioni successive, potresti ricevere il seguente messaggio di errore:

"ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:997) - urllib.error.URLError: urlopen error unknown url type: https"

Le versioni precedenti del sistema operativo non dispongono della libreria OpenSSL più recente che supporta Python 3.10. Per ulteriori informazioni, consulta PEP 644 -- Require OpenSSL 1.1.1 or newer (PEP 644 -- Richiedere OpenSSL 1.1.1 versioni più recenti) sul sito web Python Enhancement Proposals. In tal caso, l'installazione di AWS Replication Agent non è in grado di verificare il certificato SSL sull'endpoint di Application Migration Service o Elastic Disaster Recovery.

Per evitare l'errore, utilizza una versione di Python precedente, come la versione 2.7 o 3.8.

Nota: per risolvere la maggior parte degli errori "urllib" or "SSL", utilizza una versione di Python precedente.

Errore "botocore.exceptions.CredentialRetrievalError"

Quando modifichi il ruolo del servizio IAM AWSElasticDisasterRecoveryAgentRole o AWSApplicationMigrationAgentRole, ricevi il seguente messaggio di errore:

"botocore.exceptions.CredentialRetrievalError: Error when retrieving credentials from cert: Oct 17, 2022 9:38:54 AM com.amazonaws.cloudendure.credentials_provider.SharedMain createAndSaveJks"

Per risolvere l'errore, aggiorna la policy delle autorizzazioni per il ruolo di servizio IAM in base al servizio che utilizzi.

Policy delle autorizzazioni di Application Migration Service:

{      "Version": "2012-10-17",  
    "Statement": [  
        {  
            "Effect": "Allow",  
            "Principal": {  
                "Service": "mgn.amazonaws.com"  
            },  
            "Action": [  
                "sts:AssumeRole",  
                "sts:SetSourceIdentity"  
            ],  
            "Condition": {  
                "StringLike": {  
                    "sts:SourceIdentity": "s-*",  
                    "aws:SourceAccount": "AWS-Account-Number"  
                }  
            }  
        }  
    ]

Nota: sostituisci AWS-Account-Number con l'ID del tuo account AWS.

Policy delle autorizzazioni di Elastic Disaster Recovery:

{      "Version": "2012-10-17",  
    "Statement": [  
        {  
            "Effect": "Allow",  
            "Principal": {  
                "Service": "drs.amazonaws.com"  
            },  
            "Action": [  
                "sts:AssumeRole",  
                "sts:SetSourceIdentity"  
            ],  
            "Condition": {  
                "StringLike": {  
                    "sts:SourceIdentity": "s-*",  
                    "aws:SourceAccount": "AWS-Account-Number"  
                }  
            }  
        }  
    ]  
}

Nota: sostituisci AWS-Account-Number con l'ID del tuo account.

Errore "A dependency job for aws-replication.target failed"

Se la directory /var ha 754 autorizzati o si è verificato un problema durante la creazione di un gruppo Linux per l'utente aws-replication, ricevi il seguente messaggio di errore:

"stderr: A dependency job for aws-replication.target failed. See 'journalctl -xe' for details"

Per risolvere l'errore relativo a /var, esegui questo comando:

sudo chmod 755 /var

Per risolvere l'errore relativo al gruppo Linux, completa i seguenti passaggi:

  1. Disinstalla AWS Replication Agent per Application Migration Service o Elastic Disaster Recovery.

  2. Esegui questi comandi per eliminare l'utente aws-replication e il gruppo aws-replication:

    sudo userdel aws-replication
    sudo groupdel aws-replication
  3. Reinstalla AWS Replication Agent per Application Migration Service o Elastic Disaster Recovery.

Per i prerequisiti di installazione relativi ad Application Migration Service, consulta Installation requirements (Requisiti di installazione). Per i requisiti di installazioni relativi a Elastic Disaster Recovery, consulta Installation requirements for AWS Replication Agent (Requisiti di installazione per AWS Replication Agent).

Errore "Exception in thread "main" com.amazonaws.services.drs.model.InternalServerException"

Se disattivi l'endpoint del Servizio di token di sicurezza AWS (AWS STS), ricevi il seguente messaggio di errore:

"Exception in thread "main" com.amazonaws.services.drs.model.InternalServerException: An unexpected error has occurred (Service: Drs; Status Code: 500; Error Code: InternalServerException; Request ID: 4f4a76cb-aaec-44cc-a07a-c3579454ca55; Proxy: null"

L'errore si verifica perché Application Migration Service ed Elastic Disaster Recovery chiamano AWS STS per assumere il ruolo nell'account client. Per risolvere l'errore, attiva l'endpoint di STS nel client.

Errore "could not insert module ./aws-replication-driver.ko:"

Se hai attivato SecureBoot sul server di origine, ricevi uno dei seguenti messaggi di errore:

"insmod: ERROR: could not insert module ./aws-replication-driver.ko: Required key not available"

-oppure-

"insmod: ERROR: could not insert module ./aws-replication-driver.ko: Key was rejected by service"

Non puoi utilizzare SecureBoot in un sistema operativo Linux con Application Migration Service o Elastic Disaster Recovery.

Per risolvere l'errore, disattiva SecureBoot per il sistema operativo Linux.

Nota: in genere, SecureBoot si disattiva con l'hypervisor.

Per verificare lo stato di SecureBoot, esegui questo comando:

sudo mokutil --sb-state

Errore "could not insert module ./aws-replication-driver.ko: Cannot allocate memory"

Se il sistema operativo Linux non dispone di memoria sufficiente per installare l'agente, ricevi il seguente messaggio di errore:

"insmod: ERROR: could not insert module ./aws-replication-driver.ko: Cannot allocate memory"

Per risolvere l'errore, assicurati che il sistema operativo disponga di almeno 300 MB di memoria libera quando esegui l'installazione. L'errore potrebbe verificarsi a causa della frammentazione della memoria. Per risolvere i problemi di frammentazione della memoria, riavvia il server di origine. Inoltre, controlla se un software di sicurezza o antivirus come Falcon, Trend Micro, SentinelOne o McAfee causa una protezione della memoria o del kernel che può bloccare l'installazione dell'agente.

"Unexpected error while making agent driver! ", "Kernel development package ...missing from repositories", or "Kernel development or header package...did not install" errors

Quando installi l'agente, l'installazione scarica un pacchetto kernel-devel che corrisponde al pacchetto kernel attualmente in esecuzione. Puoi trovare il pacchetto corrente nel repository dei pacchetti configurato nel sistema operativo Linux. Se l'installazione dell'agente non riesce a installare il pacchetto kernel-devel nel kernel in esecuzione del sistema operativo Linux, ricevi uno dei seguenti messaggi di errore:

"Unexpected error while making agent driver! Are kernel linux headers installed correctly?"

-oppure-

"Kernel development package for '************' are missing from repositories"

-oppure-

"Kernel development or header package for ************ did not install"

Per risolvere l'errore, verifica eventuali problemi di accesso al repository consultando il log di installazione.

Quindi cerca e scarica manualmente il pacchetto kernel-devel in base alla distribuzione:

  • Per la directory dei pacchetti di Red Hat Enterprise Linux (RHEL), CentOS, Oracle e SUSE, consulta Search (Ricerca) sul sito web RPM.
  • Per Debian, consulta Packages (Pacchetti) sul sito web Debian.
  • Per Ubuntu, consulta Ubuntu packages search (Ricerca dei pacchetti Ubuntu) sul sito web packages.ubuntu.

Dopo aver scaricato il pacchetto, esegui nuovamente l'installazione. AWS Replication Agent installa anche le dipendenze richieste dall'installazione, come make gcc perl tar gawk rpm. Per ulteriori informazioni, consulta Linux installation requirements (Requisiti di installazione per Linux).

Informazioni correlate

Troubleshooting agent issues (Risoluzione dei problemi relativi all'agente)

Troubleshooting Elastic Disaster Recovery (Risoluzione dei problemi relativi a Elastic Disaster Recovery)

Troubleshooting (Risoluzione dei problemi) (Application Migration Service)