更新时间:2023-02-03 16:13:56浏览次数:81+次
本文介绍如何在Ubuntu 22.04系统上安装Salt master和minion的方法。SaltStack通常被称为Salt,是一个强大的开源配置管理和事件驱动编排工具。如果要按照本文的方法操作,请运行sudo apt update -y命令更新APT包存储库,然后运行sudo apt install curl vim python3 -y命令安装所需的软件包。
安装Salt master和minion的方法
步骤1:添加SaltStack存储库
我们将在我们的Ubuntu master和minion上添加SaltStack存储库。要使用的命令包括:
sudo curl -fsSL -o /etc/apt/keyrings/salt-archive-keyring.gpg https://repo.saltproject.io/salt/py3/ubuntu/22.04/amd64/latest/salt-archive-keyring.gpg
echo "deb [signed-by=/etc/apt/keyrings/salt-archive-keyring.gpg arch=amd64] https://repo.saltproject.io/salt/py3/ubuntu/22.04/amd64/latest jammy main" | sudo tee /etc/apt/sources.list.d/salt.list
添加后,更新APT存储库:
sudo apt update
步骤2:安装和配置Salt master
一旦添加了存储库,我们就可以在所选节点上安装Salt master:
sudo apt install salt-common salt-master
安装后,我们需要对Salt master进行配置。打开配置文件进行编辑:
sudo vim /etc/salt/master
我们将设置主节点的绑定地址,如下所示:
#要绑定到的接口的地址:
interface: 0.0.0.0
要使更改生效,请重新启动服务:
sudo systemctl restart salt-master
如果已启用防火墙,则允许端口通过防火墙:
sudo ufw allow proto tcp from any to any port 4505,4506
确认服务状态:
$ systemctl status salt-master
步骤3:安装和配置Salt Minion
我们还可以使用前面添加的存储库安装Salt Minion。在所需的Salt Minion节点上,执行以下命令:
sudo apt install salt-minion
完成后,进行配置:
sudo vim /etc/salt/minion
现在提供主节点的IP地址:
# Set the location of the salt master server. If the master server cannot be
# resolved, then the minion will fail to start.
master: 192.168.205.22
现在保持此打开状态,并按如下所示进行操作。
得验证Minions on Salt Master。用于添加Minions,他们必须使用主节点的公共指纹进行身份验证。在主节点上,列出可用指纹:
$ sudo salt-key --finger-all
Local Keys:
master.pem: 78:83:7e:99:15:90:47:62:04:68:23:9c:3f:b1:3f:24:95:16:23:6a:46:1f:16:71:89:1c:47:b1:6e:5b:5c:5b
master.pub: ea:f9:f8:a7:f9:14:17:f3:0f:80:8f:4c:bf:a0:6b:15:01:ce:7c:98:db:57:26:98:83:1b:c8:63:ed:57:f6:4f
复制显示的master.pub并将其粘贴到Minion配置文件中:
$ sudo vim /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: 'ea:f9:f8:a7:f9:14:17:f3:0f:80:8f:4c:bf:a0:6b:15:01:ce:7c:98:db:57:26:98:83:1b:c8:63:ed:57:f6:4f'
继续并为minion分配一个名字:
# clusters.
id: minion1
您现在可以保存配置文件并重新启动minion服务:
sudo systemctl restart salt-minion
确保启动时没有错误:
$ systemctl status salt-minion
要检查minion的指纹,请使用以下命令:
$ sudo salt-call key.finger --local
local:
1a:d5:dd:60:6f:4a:5f:95:dd:73:4d:25:4c:f9:64:de:01:71:47:6a:27:b8:5b:b1:96:0e:7f:74:e3:5f:29:a2
要验证minion在主节点上是否具有相同的指纹,请使用:
$ sudo salt-key --finger-all
Local Keys:
master.pem: 78:83:7e:99:15:90:47:62:04:68:23:9c:3f:b1:3f:24:95:16:23:6a:46:1f:16:71:89:1c:47:b1:6e:5b:5c:5b
master.pub: ea:f9:f8:a7:f9:14:17:f3:0f:80:8f:4c:bf:a0:6b:15:01:ce:7c:98:db:57:26:98:83:1b:c8:63:ed:57:f6:4f
Unaccepted Keys:
minion1: 1a:d5:dd:60:6f:4a:5f:95:dd:73:4d:25:4c:f9:64:de:01:71:47:6a:27:b8:5b:b1:96:0e:7f:74:e3:5f:29:a2
确认指纹匹配后,接受Salt master的minion:
$ sudo salt-key -a minion1
The following keys are going to be accepted:
Unaccepted Keys:
minion1
Proceed? [n/Y] y
Key for minion minion1 accepted.
或接受所有挂起的密钥:
sudo salt-key -A -y
为了确保添加了salt-minion,我们将运行下面的ping命令:
$ sudo salt minion1 test.ping
minion1:
True
步骤4:在Saltstack上执行远程任务
现在,我们可以从Salt master那里向所有添加的minions执行远程命令。在本指南中,我们将学习如何从salt master那里执行简单的任务。
要查看minion中的可用磁盘空间,请使用以下命令:
sudo salt '*' disk.usage
执行输出:
要安装apache等应用程序,请使用以下命令:
sudo salt minion1 pkg.install apache2
执行输出:
要在minions上执行shell命令,请使用cmd.run:
sudo salt '*' cmd.run 'ls -l /var'
样本输出:
步骤5:使用主状态文件管理Salt Minions
除了上述远程命令外,我们还可以使用状态文件来管理Salt Minions。状态文件是以.sls扩展名保存的配置管理文件。他们通常会声明一个所需的Salt Minions状态,并进行配置检查以满足它。
对于本指南,我们将创建一个简单的状态文件。该状态文件将确保Rsync、curl和Apache安装在minion上。
首先创建环境库:
sudo mkdir /srv/salt
创建状态文件:
$ sudo vim /srv/salt/setup.sls
network_utilities:
pkg.installed:
- pkgs:
- rsync
- curl
apache_pkg:
pkg.installed:
- name: apache2
apache_service:
service.running:
- name: apache2
- enable: True
- require:
- pkg: apache_pkg
要执行状态文件,请使用以下命令:
$ sudo salt '*' state.apply setup
返回的信息如下截图:
到这里,意味着在Ubuntu 22.04上安装Salt master和minion的详细指南结束了。现在,您可以根据需要轻松地编排和配置系统。