萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

FreeBSD 8.2 Ports 系統安裝 SaltStack Master 完整步驟:portsnap 更新、依賴處理、配置檔部署

SaltStack 是 Python 開發的分散式配置管理與遠端執行平台。FreeBSD 8.2 官方倉庫版本過舊,需透過 Ports 系統從原始碼編譯安裝最新版,並自動處理龐大依賴鏈。本文記錄完整安裝與 Master 配置流程。

前置準備:更新 Ports 樹

# 備份舊 ports
mv /usr/ports /usr/ports.old

# 下載最新 ports 壓縮包並解壓 (約 20-30 分鐘)
cd /usr
portsnap fetch extract

# 後續更新增量
portsnap fetch update

安裝 Salt Master

cd /usr/ports/sysutils/py-salt
make install clean

依賴衝突處理:編譯過程提示 libtool 版本過舊 (需 ≥ 2.4)

cd /usr/ports/devel/libtool
make install clean FORCE_PKG_REGISTER=yes
# 強制覆蓋系統 libtool,滿足 Salt 依賴

重新編譯 Salt:

cd /usr/ports/sysutils/py-salt
make reinstall clean

部署 Master 配置檔

# 複製範本
cp /usr/local/etc/salt/master.sample /usr/local/etc/salt/master

# 編輯關鍵設定
vim /usr/local/etc/salt/master

核心配置項**:

interface: 0.0.0.0          # 監聽所有介面
publish_port: 4505          # 發布埠
ret_port: 4506              # 返回埠
user: root                  # 執行身份 (生產建議專用使用者)
log_file: /var/log/salt/master
log_level: info
file_roots:
  base:
    - /usr/local/etc/salt/states
pillar_roots:
  base:
    - /usr/local/etc/salt/pillars
auto_accept: True           # 自動接受金鑰 (僅測試環境)

建立目錄結構與啟動

mkdir -p /usr/local/etc/salt/states /usr/local/etc/salt/pillars
mkdir -p /var/log/salt /var/cache/salt /var/run/salt

# 啟動服務
/usr/local/bin/salt-master -d
# 或 rc.d 腳本
echo 'salt_master_enable="YES"' >> /etc/rc.conf
service salt_master start

驗證安裝

salt-key -L
# Accepted Keys: (none)
# Unaccepted Keys: (none)
# Rejected Keys: (none)

salt-master --version
# salt 2014.x.x (版本依 ports 而定)

SaltStack 安裝示意

FreeBSD 特有考量

  • rc.d 腳本:/usr/local/etc/rc.d/salt_master 管理服務
  • Python 版本:Ports 自動處理 Python 2.7/3.x 相依
  • ZFS 整合:State/Pillar 目錄建議放在獨立 ZFS 資料集
  • Jail 隔離:Master/Minion 可部署於獨立 Jail 增強安全

現代部署建議 (FreeBSD 13+)

# pkg 安裝 (二進制套件,快速)
pkg install py39-salt

# 或使用配置管理工具引導
# Ansible: community.general.salt_master
# Salt 自身: salt-ssh (無需 Minion 預裝)

Ports 系統雖編譯耗時,但能精確控制編譯選項、優化指令集、解決依賴版本衝突,是 FreeBSD 生產環境部署複雜 Python 應用的標準路徑。

copyright © 萬盛學電腦網 all rights reserved