天天看点

入门Salt - 基本安装和设置

原文地址: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-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

获取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,并确定如何将它们应用于您的设置。