原文地址:https://www.linode.com/docs/applications/configuration-management/getting-started-with-salt-basic-installation-and-setup/
使用Linode更新于2018.03.23周五
贡献于GitHub
报告问题 | 查看文件 | 编辑文件
Salt是一个基于Python的配置管理平台,旨在从单个主服务器控制许多从服务器(用Salt的术语叫Minions)。本指南将指导您配置Salt Master和Minion,并支持任何linux发行版。
准备工作
- 您将需要至少两个Linode:一个将作为Salt Master服务端,另一个将作为Salt Minions客户端。
- 设置每个Linode的主机名。主机名将用于标识以命名来明确Salt中的每个Linode(例如master,minion1,minion2等)。
- 如果您的Linode都设置在同一数据中心,我们建议您为每个系统都配置专用IP地址。
使用Salt Bootstrap安装
Salt Bootstrap是一个配置脚本,它可以自动检测正在运行的操作系统,然后设置正确的存储库并安装Salt。安装脚本旨在能在Salt master和所有minion机器上运行。
Salt Master
curl -L https://bootstrap.saltstack.com -o install_salt.sh
sudo sh install_salt.sh -P -M -N
复制
注意 : 该的标志表示不能安装
-N
,因为该系统是Salt Master。
salt-minion
Salt Minions
curl -L https://bootstrap.saltstack.com -o install_salt.sh
sudo sh install_salt.sh -P
复制
协调网络寻址
Salt Master
1.在文件顶部附近取消注释
#interface:
的行,并将地址占位符替换为Salt master的Linode的地址。如果您的Linode都设置在同一数据中心,您可以使用Linode的专用IP地址。
/etc/salt/master
# The address of the interface to bind to:
interface: 203.0.113.0
复制
2.重启Salt:
sudo systemctl restart salt-master
Salt Minions
注意 : 必须对每个 Salt minion 执行此步骤。
在顶部
/etc/salt/minion
附近取消注释
#master: salt
,并替换
salt
为Salt master的IP地址:
/etc/salt/minion
1 2 3 | # Set the location of the salt master server. If the master server cannot be # resolved, then the minion will fail to start. master: 203.0.113.0 |
---|
给Salt Master认证Minions
获取Salt Master Key指纹
列出Salt master的密钥指纹列表,以及与其关的所有Minions的指纹:
sudo salt-key --finger-all
复制
您会看到在Unaccepted Keys下列出的minion主机名或IP地址,以及每个密钥的SHA256指纹。这里指纹被
...
截断以避免混乱。
Local Keys:
master.pem: e9:6a:86:bf...
master.pub: 4b:2a:81:79...
Accepted Keys:
Unaccepted Keys:
minion1: c7:b2:55:83:46...
minion2: f8:41:ce:73:f8...
复制
配置Salt Minions
1.在单引号之间,添加Salt Master的master.pub指纹到/etc/salt/minion:
/ etc /salt/minion
# Fingerprint of the master public key to validate the identity of your Salt master
# before the initial key exchange. The master fingerprint can be found by running
# "salt-key -f master.pub" on the Salt master.
master_finger: '4b:2a:81:79...'
复制
2.重启Salt:
sudo systemctl restart salt-minion
复制
3.列出Minion的指纹散列,并使用上面步骤1中Salt Master报告的内容进行验证:
sudo salt-call key.finger --local
接收Minions
1.一旦验证了每个Minion ID,从Salt Master来的请全部接收:
sudo salt-key -A
复制
注意:要接收单个的minion,请按主机名或IP地址来指定它:
sudo salt-key -a hostname
复制
2.验证接收的minions的状态,下面的这个命令该要返回已验证并正在运行的每个Minion的主机名或IP地址。
sudo salt-run manage.up
复制
有关Salt键的更多信息,请参阅salt-key手册页。
测试Master-Minion的连接
Ping掉所有的Minions:
sudo salt '*' test.ping
复制
输出应显示每个Minion都是
true
:
root@saltmaster:~# salt '*' test.ping
minion1:
True
minion2:
True
复制
概述包管理
使用pkg状态模块在Minions中安装或删除软件包。只要你运行的是由SaltStack支持的Linux发行版,SaltStack控制发行版的包管理器,
apt
,
yum
等。可以通过指定Minion的主机名或IP地址,或通过向所有Minions使用
*
来对独立的Minions指定相应的包。
使用Salt minion的系统存储库中相同的包名称安装包。比如,
apache
是Debian和Ubuntu中的Apache httpd服务器包,
httpd
而是基于RHEL的系统中的包的名称。如果您的Salt Minions是Debian或Ubuntu的版本,您可以使用以下示例安装或删除Apache。
将Apache安装到所有的Minions:
sudo salt '*' pkg.install apache2
复制
从
minion5
中删除Apache:
sudo salt 'minion5' pkg.remove apache2
复制
列出安装在
minion1
的所有包:
sudo salt 'minion1' pkg.list_pkgs
复制
使用服务模块控制服务。
在所有Minions上重启Apache:
sudo salt '*' service.start apache2
复制
在
minion1
上查看
mariadb
服务的状态:
sudo salt 'minion1' service.status mariadb
复制
接下来的步骤
Salt是一个复杂的生态系统,必须通过学习和实践才能彻底掌握。该Salt文档有很多可能帮助到你的例子、教程和参考页面。
接下来,您应首先熟悉执行模块和Salt States,并确定如何将它们应用于您的设置。