以 Linux 為基礎的 HDInsight 叢集設定 OS 修補排程

重要

Ubuntu 映像在發行後的三個月內就會變成可用於建立新的 Azure HDInsight 叢集。 但系統不會自動修補執行中的叢集。 客戶必須使用指令碼動作或其他機制修補執行中的叢集。 最佳做法是,執行這些指令碼動作,並在叢集建立後立即套用安全性更新。

HDInsight 支援您在叢集上執行一般工作,例如安裝 OS 修補程式、OS 安全性更新,以及節點重新開機。 這些工作是使用下列兩個指令碼來完成,這些指令碼可以當作指令碼動作執行並使用參數進行設定:

  • schedule-reboots.sh - 立即重新開機,或在叢集節點上排程重新開機。
  • install-updates-schedule-reboots.sh - 安裝所有更新、僅限核心 + 安全性更新,或僅安裝核心更新。

注意

指令碼動作並不會在所有未來的更新循環中自動套用更新。 每次要套用更新時,都必須執行指令碼才能安裝更新,然後重新啟動 VM。

如果您使用防火牆進行網路限制,下列 URL 必須位於允許清單中。

準備

在部署到實際執行環境之前,先在代表性的非商業執行環境中執行修補。 制定計畫,以便在實際執行修補之前適當地測試您的系統。

有時,您可能會從叢集的 ssh 工作階段收到訊息,指出已提供安全性更新。 訊息可能如下所示:

89 packages can be updated.
82 updates are security updates.

*** System restart required ***

Welcome to Spark on HDInsight.

您可以自行決定是否選擇修補。

重新啟動節點

指令碼排程重新開機,設定將在叢集機器上執行的重新開機類型。 提交指令碼動作時,請將它設定為三種節點類型全部適用:前端節點、背景工作節點和 Zookeeper。 如果指令碼未套用至節點類型,則該節點類型的 VM 不會更新或重新開機。

schedule-reboots script 接受一個數值參數:

參數 接受的值 定義
要執行的重新開機類型 1 或 2 值 1 會啟用排程重新開機 (排程在 12-24 小時內)。 值 2 會啟用立即重新開機 (在 5 分鐘內)。 如果未指定任何參數,則預設值為 1。

安裝更新並重新啟動節點

指令碼 install-updates-schedule-reboots.sh 提供各種選項,讓您選擇是否安裝不同類型的更新並重新啟動 VM。

install-updates-schedule-reboots 指令碼接受兩個數值參數,如下表所述:

參數 接受的值 定義
要安裝的更新類型 0、1 或 2 值 0 只安裝核心更新。 值 1 表示安裝核心 + 安全性更新,2 表示安裝所有更新。 如果未提供任何參數,則預設值為 0。
要執行的重新開機類型 0、1 或 2 值 0 會停用重新開機。 值 1 會啟用排程重新開機,而 2 會啟用立即重新開機。 如果未提供任何參數,則預設值為 0。 使用者必須將輸入參數 1 變更為輸入參數 2。

注意

將指令碼套用至現有叢集之後,您必須將指令碼標示為已保存。 否則,透過調整作業所建立的新節點會使用預設的修補排程。 如果您在建立叢集的過程中套用指令碼,則指令碼會自動標示為已保存。

注意

[排程重新開機] 選項會在 12 到 24 小時內自動輪流重新啟動修補的叢集節點,並將高可用性、更新網域和容錯網域納入考量。 排程的重新開機不會終止正在執行的工作負載,但在節點無法使用時,可能會佔用暫時的叢集容量,導致處理時間較長。

下一步

如需使用指令碼動作的特定步驟,請參閱使用指令碼動作來自訂以 Linux 為基礎的 HDInsight 叢集中的以下章節: