SELinux 和 Azure CycleCloud
大部分新式 Red Hat 型 Linux 發行版本 (RHEL、CentOS) 隨附 安全性增強型 Linux (SELinux) ,預設會設定為 enforcing
。 SELinux 是 Linux 的安全性增強功能,可讓系統管理員更充分掌控存取控制。 Azure CycleCloud 預設支援 SELinux,但為了支援許多 HPC 應用程式,CycleCloud 會代表系統管理員修改 SELinux 環境。
HPC 叢集和 SELinux
許多 Azure Cyclecloud HPC 叢集都使用共用的 NFS 主目錄來協助提交作業,並簡化計算節點之間的資訊共用。 利用共用主目錄的叢集包括 PBS Pro、方格引擎和 Slurm。
預設 SELinux 主目錄原則可防止使用 NFS 掛接,或 主目錄的 /home 以外的任何專案。 基於這個理由,如果已啟用 使用者管理 ,CycleCloud 會自動執行必要的命令,以允許非標準的主目錄 /shared/home ,以及允許 NFS 主目錄。
若要啟用非標準主目錄,會執行下列命令,先將安全性內容從 /home 複製到 /shared/home ,然後在新的主目錄上以遞迴方式重設安全性內容:
semanage fcontext -a -e /home /shared/home
restorecon -R /shared/home
注意
一般而言,大部分 HPC 叢集中的 master
節點都會匯出所有節點作為主目錄的 execute
檔案系統。 在此情況下, /shared/home 不是上的 master
NFS 掛接,而是與 /mnt/export/shared/home 的符號連結,這是透過 NFS 匯出的目錄。
注意
一般而言,大部分 HPC 叢集中的 scheduler
節點都會匯出所有節點作為主目錄的 execute
檔案系統。 在此情況下, /shared/home 不是上的 scheduler
NFS 掛接,而是與 /mnt/export/shared/home 的符號連結,這是透過 NFS 匯出的目錄。
針對掛接共用檔案系統的 VM,必須明確啟用 NFS 主目錄,使用者才能登入 VM:
setsebool -P use_nfs_home_dirs 1
若要執行上述命令,如果某些套件尚未安裝在作業系統上,則會加以安裝:提供 和 命令,或 policycoreutils-python
policycoreutils-python-utils
根據作業系統版本提供 semanage
命令。 setsebool
restorecon
policycoreutils
注意
大部分的 Azure CycleCloud 叢集都會使用 /shared/home 作為叢集的主目錄,但某些設定可能會使用不同的路徑。 如果是這種情況,則會使用替代路徑執行相同的命令,而不是 /shared/home。
停用 SELinux
在某些情況下,應用程式可能無法正常運作,因為 SELinux。 為了更輕鬆地進行偵錯,CycleCloud 可讓叢集管理員將 SELinux 模式設定為 permissive
或 disabled
透過組態選項:
cyclecloud.selinux.policy = permissive # or `disabled`
若要變更作業系統層級上的 SELinux 原則, setenforce 0
系統會發出命令以暫時將 SELinux 設定為 permissive
mode,然後修改 /etc/selinux/config 檔案以永久變更 SELinux 模式。
若要執行 setenforce
套件 libselinux-utils
,如果作業系統上尚未安裝,則會安裝套件。
重要
將 SELinux 設定為停用之後,必須重新開機 VM 才能完全停用 SELinux。 VM 會保持寬鬆模式,直到重新開機為止。