原文地址: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发行版。
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-minion
,因为该系统是Salt Master。
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的指纹:
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...
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
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手册页。
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,并确定如何将它们应用于您的设置。