什么是 SaltStack Minion

SaltStack 或者 Salt 是基于 Python 的开源软件,用于基于事件的 IT 自动化、远程任务执行和配置管理。

它支持数据中心系统和网络部署和管理、配置自动化、SecOps 编排、漏洞修复和混合云控制的“基础设施即代码”方法。

SaltStack minion 是安装在受管节点上的代理软件,用于在该节点上执行命令并向 SaltStack 主服务器报告。

在 CentOS/RHEL 8 上安装 Python:

SaltStack 是基于 Python 的软件,因此它需要 Python 语言支持才能编译和执行 SaltStack 命令。

Python 3.6 在默认 CentOS/RHEL 8 AppStream 中可用,因此,我们可以使用 dnf 命令轻松安装它。

# dnf install -y python3

安装 SaltStack 官方 Yum 存储库:

尽管 SaltStack 软件包可通过 EPEL(企业 Linux 的另外软件包)yum 存储库获得。

但是如果你想安装最新版本的软件,那么你必须安装 SaltStack 官方 yum 存储库,如下所示。

# dnf install -y https://repo.saltstack.com/py3/redhat/salt-py3-repo-latest.el8.noarch.rpm

为新安装的 yum 存储库构建缓存。

# dnf makecache
CentOS-8 - AppStream                            5.1 kB/s | 4.3 kB     00:00
CentOS-8 - Base                                 8.8 kB/s | 3.9 kB     00:00
CentOS-8 - Extras                               2.2 kB/s | 1.5 kB     00:00
SaltStack Latest Release Channel Python 3 for R 132 kB/s | 224 kB     00:01
Metadata cache created.

在 SaltStack Minion 上远程执行命令:

Minion 已添加到 SaltStack Master 库存中。
我们现在可以在此 Minion 上执行命令。

为了演示,我们在 saltstack-minion-01.onitroad.com 上远程安装 Apache Web 服务器。

# salt 'saltstack-minion-01.onitroad.com' cmd.run 'dnf install -y httpd'

在 saltstack-minion-01 上启用并启动 Apache 服务。

# salt 'saltstack-minion-01.onitroad.com' cmd.run 'systemctl enable --now httpd.service'
saltstack-minion-01.onitroad.com:
    Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service -> /usr/lib/systemd/system/httpd.service.

在 saltstack-minion-01 上的 Linux 防火墙中允许 http 服务。

# salt 'saltstack-minion-01.onitroad.com' cmd.run 'firewall-cmd --add-service=http'
saltstack-minion-01.onitroad.com:
    success

现在,使用 curl 命令访问新配置的 Web 服务器。

# curl -I http://saltstack-minion-01.onitroad.com
HTTP/1.1 403 Forbidden
Date: Tue, 11 Aug 2020 19:25:57 GMT
Server: Apache/2.4.37 (centos)
Content-Location: index.html.zh-CN
Vary: negotiate,accept-language
TCN: choice
Last-Modified: Fri, 14 Jun 2019 03:37:43 GMT
ETag: "fa6-58b405e7d6fc0;5ac9f026acb21"
Accept-Ranges: bytes
Content-Length: 4006
Content-Type: text/html; charset=UTF-8
Content-Language: zh-cn

Apache Web 服务器已安装并配置在 SaltStack minion 上。

配置 SaltStack Minion:

SaltStack minion 的默认配置可以正常工作,只是你需要告诉 Minion 关于 Master 服务器。

因此,使用 vim 文本编辑器编辑 SaltStack minion 配置文件。

# vi /etc/salt/minion

其中找到以下指令。

#master: salt

并将上述指令替换为以下指令。

master: saltstack-master-01.onitroad.com

其中 saltstack-master-01.onitroad.com 是我们在上一篇文章中配置的 SaltStack Master 服务器。
请参阅如何在 CentOS/RHEL 8 上安装 SaltStack Master。

启用并启动 salt-minion 服务。

# systemctl enable --now salt-minion
Created symlink /etc/systemd/system/multi-user.target.wants/salt-minion.service -> /usr/lib/systemd/system/salt-minion.service.
如何在 CentOS/RHEL 8 上安装 SaltStack Minion
欢迎 on it road

在 CentOS/RHEL 8 上安装 SaltStack Minion:

我们已经添加了 SaltStack 官方 yum 存储库,现在我们可以使用 dnf 命令安装软件包。

# dnf install -y salt-minion

将 Minion 添加到 SaltStack 主服务器:

使用 PuTTY 以 root 用户身份连接 saltstack-master-01.onitroad.com。

显示 SaltStack 主服务器已知的所有公钥的列表。

# salt-key -L
Accepted Keys:
saltstack-master-01.onitroad.com
Denied Keys:
Unaccepted Keys:
saltstack-minion-01.onitroad.com
Rejected Keys:

我们可以看到,有一个未被接受的密钥,例如:saltstack-minion-01.onitroad.com 。
它是我们 SaltStack Minion 的公钥。

使用以下命令接受此密钥。

# salt-key -A
The following keys are going to be accepted:
Unaccepted Keys:
saltstack-minion-01.onitroad.com
Proceed? [n/Y] Y
Key for minion saltstack-minion-01.onitroad.com accepted.
日期:2020-09-17 00:10:40 来源:oir作者:oir