📅  最后修改于: 2020-10-31 14:29:36             🧑  作者: Mango
在这个工作示例中,我们将创建一个Salt公式,该公式将配置Apache Web服务器和PHP软件。 Salt是执行临时命令的好方法,但您实际上并不想以这种方式连续配置基础结构。通过创建一组Salt公式,您可以可靠地重现任何配置。
Salt Formulas是简单的YAML文本文件,默认情况下位于/ srv / salt / *中的Salt Master上。让我们首先创建一个Salt Formula,以同时安装Apache Web服务器和PHP。
在/ srv / salt /目录下创建一个名为“ websetup.sls”的文件,并添加以下代码。
websetup:
pkg:
- installed
- pkgs:
- apache2
- php5
- php5-mysql
在此示例中,请注意“-pkgs:”自变量。 “-pkgs:”下面列表中的每个项目都将一起传递到OS的软件包管理器中,以一起安装。只要您有大量要安装的软件包列表,这就是安装它们的最有效方法。
使用以下命令将此公式应用于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中安装了软件包。
盐是一种“高状态”,用于确定应将哪个盐配方应用于某个奴才。使用以下命令执行“高态”。
root@saltmaster:/home/vagrant# salt state.highstate
如前所述,当仆从请求执行高状态时,仆从向Salt主机请求top.sls并搜索与其匹配的公式。默认情况下,此文件位于/srv/salt/top.sls。让我们将公式添加到top.sls文件中,并将minion2设置为目标。
base:
'*':
- common
'minion2’:
- websetup
现在,如下所示执行高状态定位minion2。
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
现在,在minion2中安装了Apache Web服务器和PHP。这样,我们必须同时使用top.sls和highstate来锁定小兵,并以最小的工作量和最大的灵活性安装所需的软件。