- SaltStack 教程
- SaltStack - 首頁
- SaltStack - 概述
- SaltStack - 架構
- SaltStack - 競爭對手
- SaltStack - 安裝
- 建立簡單的環境
- SaltStack - 訪問控制系統
- SaltStack - 作業管理
- SaltStack - Salt 檔案伺服器
- SaltStack - 使用 Git 作為檔案伺服器
- 使用 MinionFS 作為檔案伺服器
- SaltStack - 使用 Salt 和 Cron
- SaltStack - 遠端執行
- 配置管理
- SaltStack - 日誌記錄
- SaltStack - 透過 SSH 使用 Salt
- Salt 用於雲基礎設施
- SaltStack - Salt 代理 Minion
- SaltStack - 事件系統
- SaltStack - 編排
- SaltStack - Salt 包管理器
- SaltStack - Python API
- SaltStack - 例項演示
- SaltStack 有用資源
- SaltStack - 快速指南
- SaltStack - 有用資源
- SaltStack - 討論
SaltStack - 例項演示
在這個例項中,我們將建立一個 Salt 公式,用於配置 Apache Web 伺服器以及 PHP 軟體。Salt 非常適合執行臨時命令,但是您不會一直想要以這種方式持續配置您的基礎設施。透過建立一組 Salt 公式,您可以可靠地重現任何配置。
Salt 公式是簡單的 YAML 文字檔案,預設情況下位於 Salt Master 的 /srv/salt/* 目錄下。讓我們開始建立一個 Salt 公式,同時安裝 Apache Web 伺服器和 PHP。
在 /srv/salt/ 目錄下建立一個名為“websetup.sls”的檔案,並新增以下程式碼。
websetup.sls
websetup:
pkg:
- installed
- pkgs:
- apache2
- php5
- php5-mysql
在這個例子中,注意“- pkgs:”引數。“- pkgs:”下面的每個專案都將一起傳遞給作業系統的包管理器以一起安裝。當您有很多包需要安裝時,這是最有效的方法。
使用以下命令將此公式應用於 Salt master。
root@saltmaster:/home/vagrant# salt 'minion2' state.sls websetup
現在,您將看到以下輸出:
minion2:
----------
ID: websetup
Function: pkg.installed
Result: True
Comment: 3 targeted packages were installed/updated.
Started: 01:50:53.978396
Duration: 86738.132 ms
Changes:
----------
apache2:
----------
new:
2.4.7-1ubuntu4.13
old:
apache2-api-20120211:
----------
new:
1
old:
apache2-bin:
----------
new:
2.4.7-1ubuntu4.13
old:
apache2-data:
----------
new:
2.4.7-1ubuntu4.13
old:
libapache2-mod-php5:
----------
new:
5.5.9+dfsg-1ubuntu4.21
old:
libapr1:
----------
new:
1.5.0-1
old:
libaprutil1:
----------
new:
1.5.3-1
old:
libaprutil1-dbd-sqlite3:
----------
new:
1.5.3-1
old:
libaprutil1-ldap:
----------
new:
1.5.3-1
old:
php5:
----------
new:
5.5.9+dfsg-1ubuntu4.21
old:
php5-cli:
----------
new:
5.5.9+dfsg-1ubuntu4.21
old:
php5-common:
----------
new:
5.5.9+dfsg-1ubuntu4.21
old:
php5-json:
----------
new:
1.3.2-2build1
old:
php5-mhash:
----------
new:
1
old:
php5-mysql:
----------
new:
5.5.9+dfsg-1ubuntu4.21
old:
php5-readline:
----------
new:
5.5.9+dfsg-1ubuntu4.21
old:
phpapi-20121212:
----------
new:
1
old:
ssl-cert:
----------
new:
1.0.33
old:
Summary for minion2
------------
Succeeded: 1 (changed = 1)
Failed: 0
------------
Total states run: 1
Total run time: 86.738 s
現在,您已在minion2中安裝了這些軟體包。
Highstate
“highstate”是 Salt 用於確定哪些 Salt 公式應該應用於特定 minion 的一種方式。使用以下命令執行“highstate”。
root@saltmaster:/home/vagrant# salt <targets> state.highstate
top.sls
當 minion 請求執行 highstate 時,如前所述,minion 會從 Salt master 請求 top.sls 並搜尋與其匹配的公式。預設情況下,此檔案位於 /srv/salt/top.sls。讓我們將我們的公式新增到 top.sls 檔案中,並將 minion2 設定為目標。
base:
'*':
- common
'minion2’:
- websetup
現在,執行目標為 minion2 的highstate,如下所示。
root@saltmaster:/home/vagrant# salt 'minion2' state.highstate
應用此操作後,您將看到以下輸出:
minion2: ---------- ID: common_packages Function: pkg.installed Result: True Comment: All specified packages are already installed Started: 01:55:17.998824 Duration: 461.615 ms Changes: Summary for minion2 ------------ Succeeded: 1 Failed: 0 ------------ Total states run: 1 Total run time: 461.615 ms
現在,Apache Web 伺服器和 PHP 已安裝在 minion2 中。透過這種方式,我們可以使用top.sls和highstate來定位 minion,並以最小的工作量和最大的靈活性安裝所需的軟體。