本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
疑難排解多使用者與活動目錄整合
本節與使用中目錄整合的叢集有關。
如果使用中目錄整合功能無法如預期般運作,SSSD 記錄檔可以提供有用的診斷資訊。這些記錄位於叢集節點/var/log/sssd
上。依預設,它們也會儲存在叢集的 Amazon CloudWatch 日誌群組中。
主題
活動目錄特定的故障
本節與特定於「活動目錄」類型的疑難排解相關。
Simple AD
-
此
DomainReadOnlyUser
值必須符合使用者的 Simple AD 目錄庫搜尋:cn=ReadOnlyUser,cn=Users,dc=
corp
,dc=example
,dc=com
注
cn
意Users
. -
預設的管理員使用者為
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:
-
請務必使用新密碼更新 DirectoryService/PasswordSecretArn秘密。
-
更新新密碼值的叢集:
-
使用
pcluster update-compute-fleet
指令停止運算叢集。 -
從叢集頭節點內執行下列命令。
$
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
若要疑難排解與憑證相關的問題,請依照下列驗證步驟執行:
驗證步驟:
-
檢查到活動目錄域控制站的連接:
確認您可以連線到網域控制站。如果此步驟成功,則與網域控制站的 SSL 連線會成功,並驗證憑證。您的問題與憑證無關。
如果此步驟失敗,請繼續進行下一次驗證。
$
openssl s_client -connect
SERVER
:PORT
-CAfilePATH_TO_CA_BUNDLE_CERTIFICATE
-
檢查憑證驗證:
確認本機 CA 憑證服務包可驗證網域控制站所提供的憑證。如果此步驟成功,則您的問題與憑證無關,而是與其他網路問題有關。
如果此步驟失敗,請繼續進行下一次驗證。
$
openssl verify -verbose -CAfile
PATH_TO_CA_BUNDLE_CERTIFICATE
PATH_TO_A_SERVER_CERTIFICATE
-
檢查活動目錄域控制站提供的證書:
確認網域控制站提供的憑證內容如預期般。如果這個步驟成功,您可能有用來驗證控制器的 CA 憑證的問題,請移至下一個疑難排解步驟。
如果這個步驟失敗,您必須更正為網域控制站發行的憑證,並重新執行疑難排解步驟。
$
openssl s_client -connect
SERVER
:PORT
-showcerts -
檢查證書的內容:
確認網域控制站所提供的憑證內容如預期般。如果此步驟成功,您可能遇到用於驗證控制器的 CA 憑證的問題,請移至下一個疑難排解步驟。
如果這個步驟失敗,您必須更正為網域控制站發行的憑證,並重新執行疑難排解步驟。
$
openssl s_client -connect
SERVER
:PORT
-showcerts -
檢查本機 CA 憑證套裝軟體的內容:
確認用來驗證網域控制站憑證之本機 CA 憑證套裝軟體的內容如預期般。如果這個步驟成功,您可能會遇到網域控制站所提供的憑證的問題。
如果此步驟失敗,您必須更正針對網域控制站發行的 CA 憑證套件,並重新執行疑難排解步驟。
$
openssl x509 -in
PATH_TO_A_CERTIFICATE
-text
如何驗證與活動目錄的集成是否正常工作
如果下列兩項檢查成功,則與作用中目錄的整合正在運作。
檢查:
-
您可以探索目錄中定義的使用者:
從叢集頭節點內,如下所示
ec2-user
:$
getent passwd
$ANY_AD_USER
-
您可以使用 SSH 進入提供使用者密碼的頭節點:
$
ssh
$ANY_AD_USER@$HEAD_NODE_IP
如果檢查一個失敗,我們預計檢查兩個也失敗。
其他疑難排解檢查:
-
確認使用者存在於目錄中。
-
啟動偵錯記錄。
-
請考慮暫時停用加密,方法是從 LDAPS 移至 LDAP,以排除 LDAPS 問題。
如何疑難排解登入運算節點的問題
本節與登入到與 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 啟動程序方法。如 IntelMPI_MPI_HYDRA_BOOTSTRAP=slurm
將環境變數匯出至啟動 StarCCM+ 的工作程序檔。
用戶名解析的已知問題
本節與檢索作業中的用戶名有關。
由於 Slurm 中存在已知錯誤nobody
如果您沒有執行作業。srun
此錯誤僅影響 AWS ParallelCluster 版本 3.1.1 和 3.1.2。
例如,如果您以目錄使用者sbatch --wrap 'srun id'
身分執行命令,則會傳回正確的使用者名稱。不過,如果您以目錄使用者sbatch --wrap 'id'
身分執行,則nobody
可能會以使用者名稱的形式傳回。
您可以使用下列因應措施。
-
如果可能的話
'sbatch'
,請使用'srun'
而不是啟動您的工作。 -
通過在群集配置中設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
主目錄建立失敗可能是因為叢集頭節點中安裝的oddjob
和oddjob-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