Saltstack 安装配置

2018/07/07 Saltstack

官方文档:http://docs.saltstack.cn/

一、环境说明

    IP地址        主机名         功能
10.100.4.181    k8s-master01    salt-master
10.100.4.182    k8s-master02    salt-minion
10.100.4.183    k8s-node01      salt-minion

操作系统版本:CentOS Linux release 7.5.1804 (Core)

二、安装 Saltstack

Saltstack 官方提供了 yum 镜像,镜像地址:repo.saltstack.com

1、配置镜像源

$ yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el7.noarch.rpm

2、安装 Saltstack

管理节点安装 salt-master 被管理节点安装 salt-minion

# 安装salt-master
$ yum -y install salt-master

# 安装salt-minion
$ yum -y install salt-minion

3、运行 salt-master 和 salt-minion

salt-master 配置文件默认位于/etc/salt/master在不修改任何配置文件的情况下 salt-master 可以直接进行启动,默认监听在 TCP/4505 和 TCP/4506 端口上。

$ systemctl start salt-master
$ systemctl enable salt-master
$ systemctl status salt-master

salt-minion 配置文件默认位于/etc/salt/minion 接下来我们需要修改其配置文件;

# 指定 salt-master 节点的IP地址
#master: salt
master: 10.100.4.181

# Explicitly declare the id for this minion to use, if left commented the id
# will be the hostname as returned by the python call: socket.getfqdn()
# Since salt uses detached ids it is possible to run multiple minions on the
# same machine but with different ids, this can be useful for salt compute
# clusters.
# 指定当前 salt-minion 节点的 id 默认是当前主机的主机名,可以使用IP,我这里就保持默认不变
#id:

指定 salt-master 节点的地址后,我们就可以运行 salt-minion了。

$ systemctl start salt-minion
$ systemctl enable salt-minion

4、配置 salt-master 认证 salt-minion

salt-minion 运行之后我们要在 salt-master 端对 minion 进行认证,否则 minion 端不受 master 管理。

使用 salt-key 命令来进行管理操作:

Usage: salt-key [options]
	-L:列出所有公钥
	-a:允许指定的公钥
	-A:允许所有的公钥
	-d:删除指定的公钥
	-D:删除所有的公钥,慎用

接下来进行实际操作

[root@k8s-master01 ~]# salt-key -L
Accepted Keys:
k8s-master02
Denied Keys:
Unaccepted Keys:
k8s-node01
Rejected Keys:

将 k8s-node01 授权

[root@k8s-master01 ~]# salt-key -a k8s-node01
The following keys are going to be accepted:
Unaccepted Keys:
k8s-node01
Proceed? [n/Y] Y
Key for minion k8s-node01 accepted.

查看授权列表

接下来我们来验证一下 minion 端是否可以被管理,使用第一个远程执行命令

[root@k8s-master01 ~]# salt 'k8s-node01' test.ping
k8s-node01:
    True
[root@k8s-master01 ~]# salt '*' test.ping
k8s-node01:
    True
k8s-master02:
    True

这里的 test.ping 不是我们 linux 中的 ping 命令,仅是用来检查 minion 端是否启动并可以作出回应。

Search

    Table of Contents