本节包含安装Salt的说明。 如果您是第一次设置环境,则应在专用的管理服务器或虚机上安装Salt master,然后在要接受Salt管理的每个系统上安装Salt minion。 现在您不必担心您的架构,您可以在以后轻松添加组件和修改配置,而无需重新安装任何内容。
一般安装过程如下所示:
- 参照适用于您的系统平台的说明或运行Salt bootstrap脚本来安装Salt master。 如果是使用脚本方式,请确保包含-M选项以指定安装Salt master组件。
- 确保你的Salt minions可以找到Salt master(无论是通过域名,还是IP地址)。
- 在要管理的每个系统上都安装Salt minion组件。
- 在Salt minion发起连接请求后,接受Salt minion密钥。
在此之后,您应该就能够运行一个简单的命令并从所有连接的Salt minions接收返回数据了。
salt '*' test.ping
在大多数发行版中,你可以用Salt bootstrap安装一个Salt Minion。
这些指南将详细介绍如何在给定的系统平台上成功安装Salt。
- Arch Linux
- Debian GNU/Linux/Raspbian
- Arista EOS Salt minion installation guide
- Fedora
- FreeBSD
- Gentoo
- OpenBSD
- macOS
- RHEL/CentOS/Scientific Linux/Amazon Linux/Oracle Linux
- Solaris
- Ubuntu
- Windows
- SUSE
- Salt Bootstrap 通用安装脚本
- Opening the Firewall up for Salt 为Salt服务配置防火墙授权规则
- Whitelist communication to Master 配置与salt-master服务通信的白名单
- Preseed Minion with Accepted Key 使用带预授权key的Preseed-Minion
- The macOS (Maverick) Developer Step By Step Guide To Salt Installation - MacOS-Maverick-开发者Salt安装指南
- running salt as normal user tutorial 使用普通系统用户运行Salt的教程
- Standalone Minion 独立运行Minion
- Salt Masterless Quickstart - Salt Masterless快速使用指南
Salt应该可以在任何类Unix平台上运行,只要满足以下依赖关系。
- Python 2.7 >= 2.7 <3.0
- msgpack-python - High-performance message interchange format
- YAML - Python YAML bindings
- Jinja2 - parsing Salt States (configurable in the master settings)
- MarkupSafe - Implements a XML/HTML/XHTML Markup safe string for Python
- apache-libcloud - Python lib for interacting with many of the popular cloud service providers using a unified API
- Requests - HTTP library
- Tornado - Web framework and asynchronous networking library
- futures - Backport of the concurrent.futures package from Python 3.2
根据所选的Salt安装方式,ZeroMQ或RAET依赖关系会有所不同:
- ZeroMQ:
- ZeroMQ >= 3.2.0
- pyzmq >= 2.2.0 - ZeroMQ Python bindings
- PyCrypto - the Python cryptography toolkit
- RAET:
- libnacl - Python bindings to libsodium
- ioflo - the flo programming interface raet and salt-raet is built on
- RAET - the worlds most awesome UDP protocol
Salt默认为使用ZeroMQ,这可以在安装时进行选择,例如:
python setup.py --salt-transport=raet install
这样,如果需要的话,只需要安装脚本所需的依赖关系。 如果使用pip进行安装,则可以提供--salt-transport安装选项,如下所示:
pip install --install-option="--salt-transport=raet" salt
注意:Salt不捆绑通常作为基本操作系统的一部分分发的依赖项。 如果您有未满足的依赖关系并正在使用自定义或最小安装,则可能需要从操作系统供应商安装一些其他软件包。
- mako - an optional parser for Salt States (configurable in the master settings)
- gcc - dynamic Cython module compiling
升级Salt时,应始终先升级master。如果minion的版本比master还要新一些,则不保证向后兼容运行。 只要有可能,新master和旧minion之间的后向兼容性将得到保留。
通常,此政策的唯一例外是安全漏洞。当master和minion之间的版本差距较大时,向后兼容方面也将无法得到保证。
可以阅读Installing Salt for development来获取更多的信息。
Salt-pack是用于大多数常用Linux平台的开源包装生成器,例如:Redhat/CentOS和Debian/Ubuntu系列,利用SaltStack状态和执行模块构建Salt以及指定的依赖关系,从中可以构建平台特定的存储库。详情参见:https://github.com/saltstack/salt-pack 。