疑難排解多使用者與活動目錄整合 - AWS ParallelCluster

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

疑難排解多使用者與活動目錄整合

本節與使用中目錄整合的叢集有關。

如果使用中目錄整合功能無法如預期般運作,SSSD 記錄檔可以提供有用的診斷資訊。這些記錄位於叢集節點/var/log/sssd上。依預設,它們也會儲存在叢集的 Amazon CloudWatch 日誌群組中。

活動目錄特定的故障

本節與特定於「活動目錄」類型的疑難排解相關。

Simple AD

  • DomainReadOnlyUser值必須符合使用者的 Simple AD 目錄庫搜尋:

    cn=ReadOnlyUser,cn=Users,dc=corp,dc=example,dc=com

    cnUsers.

  • 預設的管理員使用者為Administrator

  • Ldapsearch需要在使用者名稱之前使用 NetBIOS 名稱。

    Ldapsearch語法必須如下所示:

    $ ldapsearch -x -D "corp\\Administrator" -w "Password" -H ldap://192.0.2.103 \ -b "cn=Users,dc=corp,dc=example,dc=com"

AWS Managed Microsoft AD

  • DomainReadOnlyUser值必須符合使用者的 AWS Managed Microsoft AD 目錄庫搜尋:

    cn=ReadOnlyUser,ou=Users,ou=CORP,dc=corp,dc=example,dc=com

  • 預設的管理員使用者為Admin

  • Ldapsearch語法必須如下所示:

    $ ldapsearch -x -D "Admin" -w "Password" -H ldap://192.0.2.103 \ -b "ou=Users,ou=CORP,dc=corp,dc=example,dc=com"

啟用除錯模式

SSSD 的偵錯記錄檔對於疑難排解問題很有用。若要啟用偵錯模式,您必須使用對叢集配置所做的下列變更來更新叢集:

DirectoryService: AdditionalSssdConfigs: debug_level: "0x1ff"

如何從網路轉移到 LDAP

不建議從 LDAPS (含有 TLS/SSL 的 LDAP) 移至 LDAP,因為單獨使用 LDAP 不提供任何加密功能。但是,它可以用於測試目的和故障排除。

您可以使用先前的配置定義更新叢集,將叢集還原為先前的配置。

若要從 LDAPS 移至 LDAP,您必須使用叢集配置中的下列變更來更新叢集:

DirectoryService: LdapTlsReqCert: never AdditionalSssdConfigs: ldap_auth_disable_tls_never_use_in_production: True

如何停用 LDAPS 伺服器憑證驗證

為了測試或疑難排解,暫時停用頭節點上的 LDAPS 伺服器憑證驗證會很有用。

您可以使用先前的配置定義更新叢集,將叢集還原為先前的配置。

若要停用 LDAPS 伺服器憑證驗證,您必須使用叢集配置中的下列變更來更新叢集:

DirectoryService: LdapTlsReqCert: never

如何使用 SSH 密鑰而不是密碼登錄

SSH 金鑰會在您第一/home/$user/.ssh/id_rsa次使用密碼登入之後建立。要使用 SSH 密鑰登錄,您必須使用密碼登錄,在本地複製 SSH 密鑰,然後像往常一樣使用它來使用 SSH 密碼:

$ ssh -i $LOCAL_PATH_TO_SSH_KEY $username@$head_node_ip

如何重置用戶密碼和過期的密碼

如果使用者無法存取叢集,則其AWS Managed Microsoft AD 密碼可能已過期

若要重設密碼,請以具有目錄寫入權限的使用者和角色執行下列命令:

$ aws ds reset-user-password \ --directory-id "d-abcdef01234567890" \ --user-name "USER_NAME" \ --new-password "NEW_PASSWORD" \ --region "region-id"

如果您重設 DirectoryService/的密碼 DomainReadOnlyUser

  1. 請務必使用新密碼更新 DirectoryService/PasswordSecretArn秘密。

  2. 更新新密碼值的叢集:

    1. 使用pcluster update-compute-fleet指令停止運算叢集。

    2. 從叢集頭節點內執行下列命令。

      $ sudo /opt/parallelcluster/scripts/directory_service/update_directory_service_password.sh

在密碼重設和叢集更新之後,應該還原使用者的叢集存取權。

如需詳細資訊,請參閱《AWS Directory Service 管理指南》中的「重設使用者密碼」。

如何驗證加入的網域

下列命令必須從加入網域的執行個體執行,而不是頭節點執行。

$ realm list corp.example.com \ type: kerberos \ realm-name: CORP.EXAMPLE.COM \ domain-name: corp.example.com \ configured: kerberos-member \ server-software: active-directory \ client-software: sssd \ required-package: oddjob \ required-package: oddjob-mkhomedir \ required-package: sssd \ required-package: adcli \ required-package: samba-common-tools \ login-formats: %U \ login-policy: allow-realm-logins

如何疑難排解憑證問題

當 LDAPS 通訊不起作用時,可能是由於 TLS 通訊中的錯誤,這反過來可能是由於憑證問題所致。

憑證相關注意事項:
  • 叢集設定中指定的憑證LdapTlsCaCert必須是 PEM 憑證組合,其中包含針對網域控制站核發憑證之整個授權憑證 (CA) 鏈結的憑證。

  • PEM 憑證組合包是由 PEM 憑證串連所組成的檔案。

  • PEM 格式的憑證 (通常在 Linux 中使用) 等同於 Base64 DER 格式的憑證 (通常由視窗匯出)。

  • 如果網域控制站的憑證是由下屬 CA 發行,則憑證套裝軟體必須同時包含從屬 CA 和根 CA 的憑證。

疑難排解驗證步驟:

下列驗證步驟假設命令是從叢集頭節點內執行,而且網域控制站可在SERVER:PORT

若要疑難排解與憑證相關的問題,請依照下列驗證步驟執行:

驗證步驟:
  1. 檢查到活動目錄域控制站的連接:

    確認您可以連線到網域控制站。如果此步驟成功,則與網域控制站的 SSL 連線會成功,並驗證憑證。您的問題與憑證無關。

    如果此步驟失敗,請繼續進行下一次驗證。

    $ openssl s_client -connect SERVER:PORT -CAfile PATH_TO_CA_BUNDLE_CERTIFICATE
  2. 檢查憑證驗證:

    確認本機 CA 憑證服務包可驗證網域控制站所提供的憑證。如果此步驟成功,則您的問題與憑證無關,而是與其他網路問題有關。

    如果此步驟失敗,請繼續進行下一次驗證。

    $ openssl verify -verbose -CAfile PATH_TO_CA_BUNDLE_CERTIFICATE PATH_TO_A_SERVER_CERTIFICATE
  3. 檢查活動目錄域控制站提供的證書:

    確認網域控制站提供的憑證內容如預期般。如果這個步驟成功,您可能有用來驗證控制器的 CA 憑證的問題,請移至下一個疑難排解步驟。

    如果這個步驟失敗,您必須更正為網域控制站發行的憑證,並重新執行疑難排解步驟。

    $ openssl s_client -connect SERVER:PORT -showcerts
  4. 檢查證書的內容:

    確認網域控制站所提供的憑證內容如預期般。如果此步驟成功,您可能遇到用於驗證控制器的 CA 憑證的問題,請移至下一個疑難排解步驟。

    如果這個步驟失敗,您必須更正為網域控制站發行的憑證,並重新執行疑難排解步驟。

    $ openssl s_client -connect SERVER:PORT -showcerts
  5. 檢查本機 CA 憑證套裝軟體的內容:

    確認用來驗證網域控制站憑證之本機 CA 憑證套裝軟體的內容如預期般。如果這個步驟成功,您可能會遇到網域控制站所提供的憑證的問題。

    如果此步驟失敗,您必須更正針對網域控制站發行的 CA 憑證套件,並重新執行疑難排解步驟。

    $ openssl x509 -in PATH_TO_A_CERTIFICATE -text

如何驗證與活動目錄的集成是否正常工作

如果下列兩項檢查成功,則與作用中目錄的整合正在運作。

檢查:

  1. 您可以探索目錄中定義的使用者:

    從叢集頭節點內,如下所示ec2-user

    $ getent passwd $ANY_AD_USER
  2. 您可以使用 SSH 進入提供使用者密碼的頭節點:

    $ ssh $ANY_AD_USER@$HEAD_NODE_IP

如果檢查一個失敗,我們預計檢查兩個也失敗。

其他疑難排解檢查:

如何疑難排解登入運算節點的問題

本節與登入到與 Active Directory 整合的叢集中的計算節點相關。

使用時 AWS ParallelCluster,叢集運算節點的密碼登入會停用設計。

所有使用者都必須使用自己的 SSH 金鑰來登入計算節點。

如果在叢集配置中啟用,使用者可以在第一次驗證後 (例如GenerateSshKeysForUsers登入) 在 head 節點中擷取其 SSH 金鑰。

當使用者第一次在頭節點上進行驗證時,可擷取以目錄使用者身分自動產生的 SSH 金鑰。也會建立使用者的主目錄。這也可能發生在 sudo-user 第一次切換到頭節點中的用戶時。

如果使用者尚未登入頭節點,則不會產生 SSH 金鑰,且使用者將無法登入計算節點。

在多使用者環境中, SimCenter StarCCM+ 工作的已知問題

本節與西門子 Simcenter StarCCM+ 計算流體動力學軟件在多用戶環境中推出的工作相關。

如果您執行設定為使用內嵌式 Intel MPi 的 StarCCM+ v16 工作,則預設情況下,MPI 程序會使用 SSH 啟動載入。

由於已知的 Slurm 錯誤導致用戶名解析錯誤,作業可能會失敗並顯示類似的錯誤。error setting up the bootstrap proxies此錯誤僅影響 AWS ParallelCluster 版本 3.1.1 和 3.1.2。

若要避免這種情況發生,請強制 Intel MPI 使用 Slurm 作為 MPI 啟動程序方法。如 IntelMP i 官方文件所述,I_MPI_HYDRA_BOOTSTRAP=slurm將環境變數匯出至啟動 StarCCM+ 的工作程序檔。

用戶名解析的已知問題

本節與檢索作業中的用戶名有關。

由於 Slurm 中存在已知錯誤,在作業程序中擷取的使用者名稱可能是nobody如果您沒有執行作業。srun此錯誤僅影響 AWS ParallelCluster 版本 3.1.1 和 3.1.2。

例如,如果您以目錄使用者sbatch --wrap 'srun id'身分執行命令,則會傳回正確的使用者名稱。不過,如果您以目錄使用者sbatch --wrap 'id'身分執行,則nobody可能會以使用者名稱的形式傳回。

您可以使用下列因應措施。

  1. 如果可能的話'sbatch',請使用'srun'而不是啟動您的工作。

  2. 通過在群集配置中設AdditionalSssd置配置來啟用 SSSD 枚舉,如下所示。

    AdditionalSssdConfigs: enumerate: true

如何解決主目錄創建問題

本節與建立主目錄相關的問題。

如果您看到類似下列範例所示的錯誤,則當您第一次登入 head 節點時,並不會為您建立主目錄。或者,當您第一次從 sudoer 切換到頭節點中的 Active Directory 使用者時,不會為您建立主目錄。

$ ssh AD_USER@$HEAD_NODE_IP /opt/parallelcluster/scripts/generate_ssh_key.sh failed: exit code 1 __| __|_ ) _| ( / Amazon Linux 2 AMI ___|\___|___| https://aws.amazon.com/amazon-linux-2/ Could not chdir to home directory /home/PclusterUser85: No such file or directory

主目錄建立失敗可能是因為叢集頭節點中安裝的oddjoboddjob-mkhomedir套件所造成。

如果沒有主目錄和 SSH 金鑰,使用者就無法將作業或 SSH 提交至叢集節點。

如果您的系統中需要oddjob套件,請確認oddjobd服務正在執行,並重新整理 PAM 組態檔案,以確定已建立主目錄。若要執行這項操作,請在 head 節點中執行指令,如下列範例所示。

sudo systemctl start oddjobd sudo authconfig --enablemkhomedir --updateall

如果您不需要系統中的oddjob套件,請解除安裝套件並重新整理 PAM 設定檔,以確定已建立主目錄。若要執行這項操作,請在 head 節點中執行指令,如下列範例所示。

sudo yum remove -y oddjob oddjob-mkhomedir sudo authconfig --enablemkhomedir --updateall