您可以將 SaltStack Config 從先前版本升級至最新穩定版本。
升級時的最佳做法
計劃升級時,請遵循以下準則:
- 請勿使用安裝程式或手動安裝指示進行升級。如果您要升級 SaltStack Config 安裝,請參閱下列升級指示。
- 為獲得最佳效果,請從一個主要版本遞增至下一個主要版本。最佳做法是,一律從 SaltStack Config 的最新主要版本升級至新版本。如果使用的是較舊版本,請從一個版本以遞增方式升級至下一個版本。
- 備份資料。為了防止資料遺失,請備份您的資料。
- 在網路活動緩慢的時段內執行升級。資料庫升級需要對資料重新建立索引。資料庫升級可能需要幾個小時的時間,視資料複雜性而定。若要避免服務中斷,請考慮在較慢的工作時間內升級資料庫,或在升級前整理資料庫。
- 檢查資料庫中是否儲存了任何舊命令。在某些情況下,PostgreSQL 資料庫會儲存尚未執行的舊命令。重新啟動主節點外掛程式時,這些命令可能會在升級程序期間執行。若要防止發生此情況,請檢查資料庫中是否儲存了任何舊命令,並啟用略過超過定義時間的工作。
- 部署前測試升級。如果可能,可以嘗試在測試環境中進行試驗,以瞭解升級可能需要多長時間。
- 先閱讀整個指南。執行升級之前,另請考慮通讀一遍本指南,以便瞭解所需執行的工作以及是否需要您的團隊進行規劃,或是否必須通知相關人士有關擱置中的變更。
從舊版本升級
最佳做法是,一律從 SaltStack Config 的最新主要版本升級至新版本。如果要從最新版本之前的版本進行升級,若以遞增方式從一個主要版本升級到下一個主要版本,則可能會獲得最佳結果。
如需有關升級到 SaltStack Config 較早版本的指示,請參閱要升級的版本的特定升級指示。先前版本的升級指示包含在後續版本的安裝指南 PDF 中。例如,如果需要從 5.5 升級到 6.0,請參閱 6.0 安裝 PDF 中的升級指示。
對於 SaltStack Config 版本 8.4 及更新版本,請使用本頁頂部的版本選取器為您的產品版本選取正確的升級指南。對於版本 8.3 及更舊版本,請使用下表中的 PDF 指南:
版本 | 安裝與升級指南 (PDF) |
---|---|
8.3 | 8.3 安裝與升級指南 |
6.4 | 6.4 安裝與升級指南 |
6.3 | 6.3 安裝與升級指南 |
6.2 | 6.2 安裝與升級指南 |
6.1 | 6.1 安裝與升級指南 |
6.0.1 | 6.0.1 安裝與升級指南 |
6.0 | 6.0 安裝與升級指南 |
如何升級 SaltStack Config
- 備份資料,包括對於 SaltStack Config 的特定安裝至關重要的某些檔案和目錄。
- 升級 PostgreSQL (可選,但建議升級)
- 升級 Salt 基礎結構 (可選,但建議升級)
- 下載升級檔案
- 升級 RaaS 節點
- 使用主節點外掛程式升級任何 Salt 主節點
如需有關透過 Lifecyle Manager 升級 SSC 的詳細資訊,請參閱 LCM 說明文件中的〈升級 vRealize Automation SaltStack Config〉。
備份 SaltStack Config 檔案和目錄
下列檔案和目錄包含自訂 SaltStack Config 組態,您需要在升級前對其進行備份:
- 在 RaaS 節點上,備份以下整個目錄:
/etc/raas/raas
/etc/raas/raas.secconf
/var/log/raas
/etc/raas/pki/
備註:pki
目錄包含隱藏檔案,因此,請務必備份整個目錄。備份/var/log/raas
目錄中的記錄檔是可選的。在升級過程中,如果需要進行疑難排解,則將清除這些記錄檔以提供一個乾淨的記錄檔。 - 在每個 Salt 主節點上,備份
/etc/salt/master.d/raas.conf
和/etc/salt/master.d/eAPIMasterPaths.conf
檔案。備註:根據最初安裝 SaltStack Config 的方式,eAPI Salt 主節點路徑可能改為位於
/etc/salt/master.d/raas.conf
檔案中。
備份資料庫架構
升級 RaaS 節點時,資料庫架構將會更新。基於此原因,請確保在升級前建立資料庫備份。
若要備份資料庫,需要首先查詢 PostgreSQL 資料庫名稱,然後複製內容:
- 在 PostgreSQL 伺服器上,備份以下檔案:
postgresql.conf
pg_hba.conf
- 使用下列命令以
postgres
使用者身分登入:sudo su - postgres
- 取得資料庫名稱,使用下列命令進入 PostgreSQL,然後列出資料庫:
psql \l
- 若要結束 PostgreSQL 並以
postgres
使用者身分登出,請按 Ctrl+D,然後執行下列命令:exit
- 將資料庫內容複製到檔案。下列命令提供了一個範例:
pg_dump -U salteapi raas_db_name > postgres_raas_backup_$(date +%Y-%m-%d).sql
升級 PostgreSQL 資料庫
SaltStack Config 需要 PostgreSQL 9.6 資料庫,但建議使用 PostgreSQL 13.7。建議的 PostgreSQL 版本隨附於 SaltStack Config 安裝程式。
不需要升級至最新版本的 PostgreSQL。但是,升級 PostgreSQL 可能會提升效能。如需升級至最新版本的 PostgreSQL 的相關指示,請參閱 PostgreSQL 升級。
升級 Redis 資料庫
SaltStack Config 需要 Redis 5.x 資料庫,但建議使用 Redis 6.2.7。建議的 Redis 版本隨附於 SaltStack Config 安裝程式。
不需要升級至 Redis 5.x 的最新版本。但是,升級 Redis 可能會提升效能。如需升級 Redis 的相關指示,請參閱〈Redis 管理〉。
升級 Salt
升級 Salt 時,必須先升級主節點。執行 Salt 版本高於其主節點的部屬節點可能無法按預期進行,因為部屬節點可能包含主節點中尚不可用的變更。此外,盡可能保留新主節點和舊部屬節點之間的回溯相容性。通常,此原則的唯一例外狀況是在出現安全性漏洞時。
為獲得最佳效能,請確保基礎結構中的所有 Salt 元件執行的是 Salt 最新主要版本。
如需升級 Salt Crystal 套件的相關指示,請參閱〈如何升級 Salt Crystal〉。
升級 RaaS 節點
升級至最新版本的 PostgreSQL、Redis 和 Salt 後,可以將 RaaS 節點從先前版本升級至最新版本。
升級 RaaS 節點之前,必須備份系統資料以避免資料遺失。若要保留設定,請將對預設檔案系統、pillar 資料和工作進行的任何變更另存為新的檔案或工作。此外,您應記錄或複製任何現有的 pillar 目標指派,因為升級過程中會移除這些指派。
升級 RaaS 節點:
- 從 Customer Connect 下載升級檔案。
- 使用下列命令停止 RaaS 服務:
sudo systemctl stop raas
- 移除
/var/log/raas
目錄中的記錄檔。如果需要進行疑難排解,則清除記錄檔會提供一個乾淨的記錄檔。 - 使用下列命令移除目前安裝的 API (RaaS) 版本:
sudo yum remove raas
- 安裝最新的 RPM 以升級 RaaS 節點。使用以下範例命令,取代 RPM 的確切檔案名稱:
sudo yum install raas-rpm-file-name.rpm
- 重要事項:還原下列檔案的備份:
/etc/raas/raas
/etc/raas/raas.secconf
/etc/raas/pki/
- 使用下列命令更新
raas
使用者的權限:sudo chown -R raas:raas /etc/pki/raas/certs
- 可選:如果您有 SaltStack SecOps 授權,並且想要新增合規性程式庫,請在
/etc/raas/raas
檔案中新增以下區段:sec: ingest_override: true locke_dir: locke post_ingest_cleanup: true username: 'secops' content_url: 'https://enterprise.saltstack.com/secops_downloads' download_enabled: true download_frequency: 86400 stats_snapshot_interval: 3600 compile_stats_interval: 10 ingest_on_boot: True content_lock_timeout: 60 content_lock_block_timeout: 120
備註:此步驟是可選的,僅適用於擁有有效 SaltStack SecOps 授權的組織。此附加元件模組適用於 SaltStack Config 6.0 版及更新版本。
/etc/raas/raas
組態檔中的先前組態選項特定於這些附加元件模組。 - 可選:如果您有 SaltStack SecOps 授權,並且想要新增漏洞庫,請在
/etc/raas/raas
檔案中新增區段:vman: vman_dir: vman download_enabled: true download_frequency: 86400 username: vman content_url: 'https://enterprise.saltstack.com/vman_downloads' ingest_on_boot: true compile_stats_interval: 60 stats_snapshot_interval: 3600 old_policy_file_lifespan: 2 delete_old_policy_files_interval: 86400 tenable_asset_import_enabled: True tenable_asset_import_grains: ['fqdn', 'ipv4', 'ipv6', 'hostname', 'mac_address', 'netbios_name', 'bios_uuid', 'manufacturer_tpm_id', 'ssh_fingerprint', 'mcafee_epo_guid', 'mcafee_epo_agent_guid', 'symantec_ep_hardware_key', 'qualys_asset_id', 'qualys_host_id', 'servicenow_sys_id', 'gcp_project_id', 'gcp_zone', 'gcp_instance_id', 'azure_vm_id', 'azure_resource_id', 'aws_availability_zone', 'aws_ec2_instance_ami_id', 'aws_ec2_instance_group_name', 'aws_ec2_instance_state_name', 'aws_ec2_instance_type', 'aws_ec2_name', 'aws_ec2_product_code', 'aws_owner_id', 'aws_region', 'aws_subnet_id', 'aws_vpc_id', 'installed_software', 'bigfix_asset_id' ]
備註:此步驟是可選的,僅適用於擁有有效 SaltStack SecOps 授權的組織。此附加元件模組適用於 SaltStack Config 6.0 版及更新版本。
/etc/raas/raas
組態檔中的先前組態選項特定於這些附加元件模組。 - RaaS 目前存在一個與失效工作相關的已知問題。升級時,某些使用者可能會注意到一系列停滯在擱置中狀態的失效工作。除非先將這些工作清除,否則升級 RaaS 節點可能會導致這些工作執行。
若要防止發生此情況,請先檢查資料庫中是否儲存了任何舊命令。在 PostgreSQL 節點上,使用下列命令檢查是否有擱置中的工作:
select count(1) from commands where state='new';
結果顯示的是擱置中工作數目。如果工作數目為
0
,請繼續執行升級程序的其餘步驟。 - 使用下列命令升級 RaaS 服務資料庫:
sudo su - raas raas upgrade
備註:根據資料庫的大小,升級可能需要幾分鐘到一個多小時的時間。如果遇到錯誤,請查看
/var/log/raas/raas
記錄檔以瞭解詳細資訊。 - 升級後,使用下列命令結束
raas
使用者的工作階段:exit
- 使用下列命令啟動 RaaS 服務:
sudo systemctl enable raas sudo systemctl start raas
使用 SaltStack Config 使用者介面升級主節點外掛程式
SaltStack Config 會自動將主節點外掛程式升級到最新版本,無需使用者執行任何動作。
但是,您也可以從 SaltStack Config 使用者介面升級主節點外掛程式。若要升級主節點外掛程式,請從 SaltStack Config 選取管理,然後按一下主節點外掛程式。[主節點外掛程式] 索引標籤顯示外掛程式版本和您所處的 SaltStack Config 環境,以及主節點外掛程式的識別碼清單。從「主節點外掛程式」索引標籤,可以選取要更新的主節點外掛程式,然後按一下更新。
使用 CLI 升級主節點外掛程式
成功升級 RaaS 節點後,可以接著升級使用主節點外掛程式連線至 SaltStack Config 的任何 Salt 主節點。
升級 Salt 主節點之前,請確保 Salt 主節點上已安裝 pip3 應用程式。如果您要從最新版本的主節點外掛程式升級,則已安裝此應用程式。
在 Salt 主節點上升級主節點外掛程式:
- 使用下列命令停止
salt-master
服務:sudo systemctl stop salt-master
- 檢查 Salt 主節點上正在執行哪個版本的 Python。如果執行的是 Python 3.6 或更高版本,則不需要進行變更。否則,請刪除先前版本的 SSEAPE 模組。(SSEAPE 是 Salt 主節點的 SaltStack Config 外掛程式)。例如:
RHEL/CentOS
sudo rm -rf /usr/lib/python3.6/site-packages/SSEAPE*
Ubuntu
sudo rm /usr/lib/python3.6/dist-packages/SSEAPE*
- 手動安裝更新的 Python wheel 以升級主節點外掛程式。使用以下範例命令,取代 wheel 檔案的確切名稱:
RHEL/CentOS
sudo pip3 install SSEAPE-file-name.whl --prefix /usr
Ubuntu
sudo pip3 install SSEAPE-file-name.whl
備註:某些使用者可能需要將其作業系統的語法更改為
pip3.6
或pip36
。 - 透過編輯
/etc/salt/master.d/eAPIMasterPaths.conf
檔案以參考各個模組的路徑,進而更新 API (RaaS) 模組路徑。例如,可以將此檔案中的所有python2.7
參考變更為python3.6
。備註:根據最初安裝 SaltStack Config 的方式,eAPI Salt 主節點路徑可能改為位於
/etc/salt/master.d/raas.conf
檔案中。 - 檢查
/etc/salt/master.d/raas.conf
中的engines
區段,確認其是否符合下列內容:engines: - sseapi: {} - eventqueue: {} - rpcqueue: {} - jobcompletion: {} - keyauth: {}
備註:如果發生問題,可能需要還原
/etc/salt/master.d/raas.conf
和/etc/salt/master.d/eAPIMasterPaths.conf
檔案的備份。 - 如果使用的是 salt 主節點金鑰驗證 (建議),請確保已設定
sseapi_pubkey_path
並在/etc/salt/master.d/raas.conf
中註釋掉sseapi_username
和sseapi_password
。sseapi_pubkey_path: /etc/salt/pki/master/sseapi_key.pub #sseapi_username: #sseapi_password:
- 確認
master_job_cache
和event_return
項目是否設定為sseapi
。pgjsonb
傳回程式無法再使用。 - 使用下列命令啟動
salt-master
服務:sudo systemctl start salt-master
升級程序現已完成。如果遇到任何其他錯誤,請參閱〈疑難排解〉。