- 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,并以最小的工作量和最大的灵活性安装所需的软件。