更新升级 专属应用 系统故障 硬件故障 电脑汽车 鸿蒙刷机 鸿蒙开发Linux教程 鸿蒙开发Linux命令
当前位置:HMXT之家 > 鸿蒙开发Linux教程 > 如何在Ubuntu 22.04上安装Salt master和minion

如何在Ubuntu 22.04上安装Salt master和minion

更新时间:2023-02-03 16:13:56浏览次数:118+次

本文介绍如何在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的详细指南结束了。现在,您可以根据需要轻松地编排和配置系统。