如何疑難排解 EC2 Linux 執行個體上的 AWS 複寫代理程式安裝失敗?

3 分的閱讀內容
0

我想要安裝 AWS Application Migration Service 或 AWS 彈性災難復原的 AWS 複寫代理程式。Amazon Elastic Compute Cloud (Amazon EC2) Linux 執行個體上的安裝失敗。

解決方法

下列解決方法涵蓋 Linux 作業系統 (OS) 上最常見的 AWS 複寫代理程式安裝錯誤。

識別錯誤

AWS 複寫代理程式安裝程式日誌顯示日誌結尾出現錯誤。

如要判斷錯誤的情形,請執行下列命令以檢視安裝程式日誌的最後一頁:

less +G aws_replication_installer.log

如要解決您找到的錯誤,請按照錯誤相關區段中的程序來操作。

錯誤:無法從共用物件映射區段: 不允許操作

錯誤範例:

「./aws-replication-installer-64bit:載入共用程式庫時發生錯誤:libz.so .1:無法從共用物件映射區段: 不允許操作」

安裝指令碼使用 /tmp 目錄。如果在 /tmp 上設定 noexec,那麼 libz.so 就無法映射區段。發生這種情況時,您會收到此 不允許操作 錯誤訊息。

如要解決此錯誤,請執行下列指令,以掛接具有執行權限的磁碟區:

# sudo mount /tmp -o remount,exec

錯誤:請求中包含的安全性權杖已到期

錯誤範例

「botocore.exceptions.ClientError: 呼叫 GetAgentInstallationAssetsForDrs 操作時發生錯誤 (ExpiredTokenException): 請求中包含的安全性權杖已到期 [installation_id: 1a9af9d3-9485-4e02-965e-611929428c61,agent_version: 3.7.0,mac_addresses: 206915885515739,206915885515740,_origin_client_type:安裝程式]」

到期的 AWS Identity and Access Management (AWS IAM) 角色經常造成這個錯誤。當 IAM 角色到期時,Application Migration Service 或彈性災難復原端點的 API 呼叫就會失敗。

若要解決此問題,請重新整理 IAM 角色,或使用存取金鑰或私密存取金鑰安裝該角色。如需詳細資訊,請參閱下列 AWS 文件:

錯誤: 模組 aws_replication_driver 目前沒有載入

錯誤範例

「rmmod: 錯誤: 模組 aws_replication_driver 目前沒有載入 insmod: 錯誤:無法插入模組 ./aws-replication-driver.ko: 所需的金鑰無法使用」

當來源執行個體啟用安全開機時,就會發生此錯誤。Application Migration Service 和彈性災難復原不支援安全開機。

若要解決此錯誤,請關閉來源執行個體的安全開機。

錯誤:ssl.SSLCertVerificationError

錯誤範例

「ssl.SSLCertVerificationError:[SSL: CERTIFICATE_VERIFY_FAILED] 憑證驗證失敗:無法取得本機發行人憑證 (_ssl.c:997) - urllib.error.URLError: <urlopen error unknown url type: https>

當用戶端使用較舊 OS 版本搭配 Python 3.10 或更新版本,就可能會發生此錯誤。Python 3.10 在 Python Enhancement Proposals 網站中新增「PEP 644 – 需要 OpenSSL 1.1.1 或較新提案」。

較舊的作業系統版本不具備支援 Python 3.10 的最新 OpenSSL 程式庫。因此,AWS 複寫代理程式安裝無法驗證 Application Migration Service 或彈性災難復原端點的 SSL 憑證。

若要避免此錯誤,請使用較舊版本的 Python,例如 2.7 或 3.8 版。

注意: 如要解決大部分 urllib/SSL 錯誤,請使用較舊版本的 Python。

錯誤:botocore.exceptions.CredentialRetrievalError

錯誤範例:

「botocore.exceptions.CredentialRetrievalError: 從憑證中擷取憑證時發生錯誤: 2022 年 10 月 17 日 9:38:54 AM com.amazonaws.cloudendure.credentials_provider.SharedMain createAndSaveJks」

當您修改彈性災難復原的 AWS Replication Agent 角色AWSElasticDisasterRecoveryAgentRole 和 Application Migration Service 的 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-*"
        }
      }
    }
  ]
}

錯誤: aws-replication.target 的相依性任務失敗。

錯誤範例:

「stderr: aws-replication.target 的相依性任務失敗。詳情請參閱『journalctl -xe』」

發生此錯誤有兩個可能的原因:

  • /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 複寫代理程式。

如需詳細資訊和安裝先決條件,請參閱下列 AWS 文件:

錯誤: 「主」執行緒 com.amazonaws.services.drs.model.InternalServerException 的例外狀況

錯誤範例:

「主」執行緒 com.amazonaws.services.drs.model.InternalServerException 的例外狀況: 發生意外錯誤 (服務: Drs;狀態代碼: 500;錯誤代碼: InternalServerException;請求 ID: 4f4a76cb-aaec-44cc-a07a-c3579454ca55;Proxy:null」

如果用戶端關閉 AWS Security Token Service (AWS STS) 端點,就會發生此錯誤。如果 STS 端點已關閉,則 Application Migration Service 或彈性災難復原就無法呼叫 AWS STS 以在用戶端帳戶中擔任該角色。

若要解決此錯誤,請啟用用戶端的 STS 端點

錯誤:無法插入模組 ./aws-replication-driver.ko: 所需的金鑰無法使用

如果 OS 已啟用安全開機,就會發生此錯誤。Application Migration Service 和彈性災難復原不支援已啟用安全開機的 Linux OS。

若要解決此錯誤,請關閉 Linux OS 的安全開機。在大多數 OS 上,請在 Hypervisor 中關閉安全開機。

錯誤:無法插入模組 ./aws-replication-driver.ko: 無法配置記憶體

錯誤範例:

「insmod: 錯誤:無法插入模組 ./aws-replication-driver.ko: 無法配置記憶體 rmmod: 錯誤: 模組 aws_replication_driver 目前沒有載入 ] 2023-03-16 10:27:08,416 ERROR 代理程式安裝 Traceback 期間出現例外 (最近的項目最後呼叫): 檔案「cirrus/installer_shared/installer_main.py」,第 308 行,in run_agent_installer_command_linux 檔案「shared/installer_utils/command_utils.py」,第 161 行,執行 shared.installer_utils.command_utils.RunException:指令:/tmp/tmp_t」

如果 Linux OS 的記憶體不足以安裝代理程式,就會發生此錯誤。

若要解決此錯誤,請確認您的 OS 具備至少 300 MB 的可用記憶體。

錯誤: 執行代理程式驅動程式時發生未預期的錯誤! 是否已正確安裝核心 linux 標頭?

錯誤範例:

「執行代理程式驅動程式時發生未預期的錯誤! 是否已正確安裝核心 linux 標頭? 安裝傳回代碼 1 安裝因未指定錯誤失敗:」

當您安裝代理程式時,安裝會下載與目前套件相符的 kernel-devel 套件。您可以在 Linux OS 配置的套件存儲庫中找到目前的套件包。

當代理程式安裝工作流程無法將 kernel-devel 套件安裝到 Linux OS 正在執行的核心時,就會發生此錯誤。

若要解決此錯誤,請檢閱安裝日誌以便驗證存取儲存庫時是否出現問題。然後,從網際網路手動下載 kernel-devel 套件。下載套件之後,請再次執行安裝。

您可以從以下網站下載 kernel-devel 套件:

AWS 複寫代理程式也會安裝該安裝所需的相依性,例如 make gcc perl tar gawk rpm。如需詳細資訊,請參閱 Linux 安裝需求

AWS 官方
AWS 官方已更新 1 年前