Salt 的配置非常简单。 默认的 master 配置就可以在大多数情况下运行。仅仅需要更改的是 minion ,在 minion 配置文件中设置 master 的地址。
The configuration files will be installed to /etc/salt
and are named
after the respective components, /etc/salt/master
, and
/etc/salt/minion
.
默认Salt master监听所有网卡接口(0.0.0.0)的4505和4506端口. 如果需要指定监听IP, 通过 /etc/salt/master
配置文件中的"interface"指令进行如下修改:
- #interface: 0.0.0.0
+ interface: 10.0.0.1
更新完配置文件后,需要重启Salt master以使其生效配置. 如果想了解更多的关于master的其他选项请访问: master配置参考 .
尽管Salt Minion有许多配置选项,但配置Minion还是非常简单的. 默认的配置Minion会尝试连接DNS名为"salt"的master,如果minion解析到的地址正确,就无需再做配置.
如果DNS名为"salt"并不能解析到本地正确的Master地址,需要通过如下方法修改 /etc/salt/minion
配置文件中的"master"指令:
- #master: salt
+ master: 10.0.0.1
更新完配置后,需要重启Salt minion以使配置生效. 如果想了解更多关于minion的配置选项,请访问 minion配置参考 .
前台启动master(如果要以daemon方式启动,请指定 -d参数 <salt-master -d>):
salt-master
前台启动minion(如果要以daemon方式启动,请指定 -d参数 <salt-minion -d>):
salt-minion
运行有问题?
排除 Salt 故障最简单的方法是在前台运行 master 和 minion,同时把 log level
设为``debug``
salt-master --log-level=debug
想了解更多关于salt的日志系统,请访问 logging document.
以普通(非root)用户运行
想要使用其他用户身份运行Salt,参见:conf_master:`user`参数在master配置文件中。
Additionally, ownership, and permissions need to be set such that the desired user can read from and write to the following directories (and their subdirectories, where applicable):
更多关于如何使用非特权用户运行salt的信息可以在 这里 找到。
我们也提供了一份完整的 troubleshooting指南 .
Salt provides commands to validate the identity of your Salt master and Salt minions before the initial key exchange. Validating key identity helps avoid inadvertently connecting to the wrong Salt master, and helps prevent a potential MiTM attack when establishing the initial connection.
Print the master key fingerprint by running the following command on the Salt master:
salt-key -F master
Copy the master.pub
fingerprint from the Local Keys section, and then set this value
as the master_finger
in the minion configuration file. Save the configuration
file and then restart the Salt minion.
Run the following command on each Salt minion to view the minion key fingerprint:
salt-call --local key.finger
Compare this value to the value that is displayed when you run the
salt-key --finger <MINION_ID>
command on the Salt master.
Salt在Master和Minion之间的通讯采用AES加密. 这就确保了发送给minions的命令不会被篡改, Master和Minion之间的通讯认证通过信任的已接受的key进行管理.
在发送给Minion之前,需要确保minion的key已经被Master所接受. 运行 ``salt-key``命令将列出Salt Master已知的所有keys.
[root@master ~]# salt-key -L
Unaccepted Keys:
alpha
bravo
charlie
delta
Accepted Keys:
下边的例子中,Salt已知有四个Minions,但是没有接受一个minion的key。 接受key以使Mionions可以被Master管控,需要使用 salt-key
命令:
[root@master ~]# salt-key -A
[root@master ~]# salt-key -L
Unaccepted Keys:
Accepted Keys:
alpha
bravo
charlie
delta
salt-key
命令能够进行单个操作,也可以进行批量操作. 例子中使用 -A
进行批量接受所有待定的keys. 接受单个key使用小写字母a, -a keyname
.
Master和Minion连通性测试可以通过运行 ``test.ping` 命令:
[root@master ~]# salt alpha test.ping
alpha:
True
Master与所有Minons的连通性测试可以使用下边类似的方法:
[root@master ~]# salt '*' test.ping
alpha:
True
bravo:
True
charlie:
True
delta:
True
每个Minions应该发送一个 True
回应并显示出来.
Understanding targeting is important. From there, depending on the way you wish to use Salt, you should also proceed to learn about Remote Execution and Configuration Management.