如何疑難排解 EC2 Linux 執行個體上的 AWS 複寫代理程式安裝失敗?
我正在安裝 AWS Application Migration Service (AWS MGN) AWS 或 AWS 彈性災難復原 (AWS DRS) 的 AWS 複寫代理程式。Amazon Elastic Compute Cloud (Amazon EC2) Linux 執行個體上的安裝失敗。
解決方法
識別錯誤
AWS 複寫代理程式安裝程式日誌顯示日誌結尾出現錯誤。執行下列命令以檢視安裝程式日誌的最後一頁,以判斷錯誤的情形。然後,請檢閱下列與錯誤相關的章節。
less +G aws_replication_installer.log
下列解決方法涵蓋 Linux 作業系統上最常見的 AWS 複寫代理程式安裝錯誤。
libz.so .1:無法從共用物件映射區段: 不允許操作
錯誤範例
./aws-replication-installer-64bit: error while loading shared libraries: libz.so .1: failed to map segment from shared object: Operation not permitted
安裝指令碼使用 /tmp 目錄。如果在 /tmp 上設定 noexec,那麼 libz.so 就無法映射區段。發生這種情況時,您會收到此 不允許操作 錯誤訊息。
若要解決此錯誤,請執行下列動作:
- 執行下列命令以卸載 /tmp:
# umount /tmp
- 執行下列指令,以掛接具有 exec 權限的磁碟區:
# sudo mount /tmp -o remount, exec
要求中包含的安全性權杖已到期
錯誤範例
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]
到期的 AWS Identity and Access Management (AWS IAM) 角色經常造成這個錯誤。當 IAM 角色到期時,Application Migration Service 或彈性災難復原端點的 API 呼叫就會失敗。
若要解決此問題,請重新整理 IAM 角色,或使用存取金鑰或私密存取金鑰安裝該角色。如需詳細資訊,請參閱:
- Application Migration Service: 產生所需的 AWS 憑證
- 彈性災難復原: 產生所需的 AWS 憑證
rmmod: 錯誤: 模組 aws_replication_driver 目前沒有載入
錯誤範例
rmmod: ERROR: Module aws_replication_driver is not currently loaded insmod: ERROR: could not insert module ./aws-replication-driver.ko: Required key not available
當來源執行個體啟用安全開機時,就會發生此錯誤。Application Migration Service 或彈性災難復原不支援安全開機。
若要解決此錯誤,請關閉來源執行個體的安全開機。
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED]
錯誤範例
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>
**注意:**除了此錯誤之外,你可以使用以下方法解決大多數的 urllib/SSL 錯誤。
如果用戶端使用 Python 3.10 或更新版本的較舊作業系統版本,就可能會發生此錯誤。Python 3.10 新增 PEP 644 – Require OpenSSL 1.1.1 或更新提案。
較舊的作業系統版本不具備支援 Python 3.10 的最新 OpenSSL 程式庫。因此,AWS 複寫代理程式安裝無法驗證 Application Migration Service 或彈性災難復原端點的 SSL 憑證。
若要避免此錯誤,請使用較舊版本的 Python,例如 2.7 或 3.8 版。
botocore.exceptions.CredentialRetrievalError
錯誤範例:
botocore.exceptions.CredentialRetrievalError: Error when retrieving credentials from cert: Oct 17, 2022 9:38:54 AM com.amazonaws.cloudendure.credentials_provider.SharedMain createAndSaveJks
如果您修改 AWS 複寫代理程式角色 AWSElasticDisasterRecoveryAgentRole/ AWSApplicationMigrationAgentRole,就可能會發生此錯誤。
若要解決此錯誤,請確認 AWS 複寫代理程式角色如下:
Application Migration Service
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "PrincipalGroup": { "AWS": "svc:mgn.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:SetSourceIdentity" ], "Condition": { "StringLike": { "sts:SourceIdentity": "s-*", "aws:SourceAccount": "AWSACCOUNTIDHERE" } } } ] }
彈性災難復原
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "PrincipalGroup": { "AWS": "svc:drs.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:SetSourceIdentity" ], "Condition": { "StringLike": { "aws:SourceAccount": "AWSACCOUNTIDHERE", "sts:SourceIdentity": "s-*" } } } ] }
stderr: aws-replication.target 的相依性任務失敗。
錯誤範例:
stderr: A dependency job for aws-replication.target failed. See 'journalctl -xe' for details
以下為造成此錯誤的兩個可能原因:
- /var 目錄的權限為 754 。
- 建立 aws-replication 使用者的 Linux 群組時出現問題。
若要解決 /var 問題,請對 /var 目錄執行 chmod 755。
若要解決 Linux 群組問題,請執行下列動作:
1. 完整解除安裝 AWS 複寫代理程式。
2. 執行下列命令,以刪除 aws-replication 使用者和 aws-replication 群組:
# userdel aws-replication # groupdel aws-replication
3. 重新安裝 AWS 複寫代理程式。
如需詳細資訊和安裝先決條件,請參閱:
「主」執行緒 com.amazonaws.services.drs.model.InternalServerException 的例外狀況
錯誤範例:
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)
如果用戶端關閉 AWS STS 端點,就會發生此錯誤。如果 AWS STS 端點已關閉,則 Application Migration Service 就無法呼叫 STS 以在用戶端帳戶中擔任該角色。彈性災難恢復也會有相同的情形。
若要解決此錯誤,請啟用用戶端的 AWS STS 端點。如需詳細資訊,請參閱在 AWS 區域中啟用和停用 AWS STS。
insmod: 錯誤:無法插入模組 ./aws-replication-driver.ko: 所需的金鑰無法使用
如果該作業系統已啟用安全開機,就會發生此錯誤。Application Migration Service 和彈性災難復原不支援已啟用安全開機的 Linux 作業系統。
若要解決此錯誤,請關閉 Linux 作業系統的安全開機。在大多數作業系統上,請在 Hypervisor 中關閉安全開機。
insmod: 錯誤:無法插入模組 ./aws-replication-driver.ko: 無法配置記憶體
錯誤範例:
insmod: ERROR: could not insert module ./aws-replication-driver.ko: Cannot allocate memory rmmod: ERROR: Module aws_replication_driver is not currently loaded ] 2023-03-16 10:27:08,416 ERROR Exception during agent installation Traceback (most recent call last): File "cirrus/installer_shared/installer_main.py", line 308, in run_agent_installer_command_linux File "shared/installer_utils/command_utils.py", line 161, in run shared.installer_utils.command_utils.RunException: command: /tmp/tmp_t
如果 Linux 作業系統的記憶體不足以安裝代理程式,就會發生此錯誤。
若要解決此錯誤,請確認您的作業系統具備至少 300 MB 的可用記憶體。
執行代理程式驅動程式時發生未預期的錯誤! 是否已正確安裝核心 linux 標頭?
錯誤範例:
Unexpected error while making agent driver! Are kernel linux headers installed correctly? Installation returned with code 1 Installation failed due to unspecified error:
在代理程式安裝期間,安裝程式會從您的 Linux 作業系統中配置的套件儲存庫下載相符的 kernel-devel 套件。當代理程式安裝工作流程無法將相符的 kernel-devel 套件安裝到 Linux 作業系統正在執行的核心時,就會發生此錯誤。
若要解決此錯誤,請檢閱安裝日誌以便驗證存取儲存庫時是否出現問題。然後,從網際網路手動下載 kernel-devel 套件。下載套件之後,請再次執行安裝。
您可以從以下網站下載相符的 kernel-devel/linux-headers 套件:
- RHEL、CentOS、Oracle 及 SUSE 套件目錄
- debian.org 網站上的 Debian 套件目錄。
- Ubuntu 套件網站上的 Ubuntu 套件目錄。
AWS 複寫代理程式也會安裝該安裝所需的相依性,例如 make gcc perl tar gawk rpm。如需詳細資訊,請參閱 Linux 安裝需求。
相關內容
- 已提問 5 個月前lg...
- 已提問 5 個月前lg...
- 已提問 1 年前lg...
- 已提問 9 個月前lg...
- 已提問 10 個月前lg...
- AWS 官方已更新 1 年前
- AWS 官方已更新 9 個月前
- AWS 官方已更新 9 個月前
- AWS 官方已更新 9 個月前