如何在 Debian 12 上安装 SaltStack IT 自动化框架

如何在 Debian 12 上安装 SaltStack IT 自动化框架

Salt 或 Saltstack 是一个用 Python 编写的开源 IT 自动化框架。它允许管理员直接向多台机器远程执行命令。

Salt采用Master和Minion架构设计。 Salt master是Salt配置管理的中央控制器,Minions是Salt master管理的服务器,或者你将minions命名为目标服务器。

本指南将向您展示如何在 Debian 12 服务器上安装 SaltStack。我们将向您展示如何安装 Salt Master 和 Minion、如何通过 Salt 运行任意命令,然后创建用于安装 LAMP Stack 的第一个 Salt 状态。

先决条件

开始之前,请确保您已准备好以下物品:

  • 两到三台 Debian 12 服务器 – 在此示例中,我们将使用 192.168.5.15 上的 master 服务器和 192.168.5.21 上的 minion1 服务器。
  • 具有管理员权限的非 root 用户。

设置/etc/hosts文件

在本节中,您将设置 /etc/hosts 文件,以便每个服务器都可以通过主机名进行连接,这比使用 IP 地址更容易。

使用以下 nano 编辑器打开 /etc/hosts 文件。

sudo nano /etc/hosts

将详细主机和 IP 地址插入文件中。 确保使用您的信息更改 IP 地址和主机名。

192.168.5.15 master
192.168.5.21 minion1

完成后保存并退出文件。

添加 SaltStack 存储库

设置 /etc/hosts 文件后,您必须将 SaltStack 存储库添加到所有 Debian 服务器。SaltStack 为大多数 Linux 发行版提供了官方存储库,包括最新的 Debian 12。

首先,使用以下命令创建一个新目录 /etc/apt/keyrings。

mkdir /etc/apt/keyrings

使用以下命令下载 SaltStack 存储库的 GPG 密钥。

sudo curl -fsSL -o /etc/apt/keyrings/salt-archive-keyring-2023.gpg https://repo.saltproject.io/salt/py3/debian/12/amd64/SALT-PROJECT-GPG-PUBKEY-2023.gpg

下载 GPG 密钥后,使用以下命令添加 SaltStack 存储库。

echo "deb [signed-by=/etc/apt/keyrings/salt-archive-keyring-2023.gpg arch=amd64] https://repo.saltproject.io/salt/py3/debian/12/amd64/latest bookworm main" | sudo tee /etc/apt/sources.list.d/salt.list

现在更新并刷新您的 Debian 软件包索引。

sudo apt update

您可以在下面看到添加到 Debian 服务器的 SaltStack 存储库。

添加仓库

设置UFW

在此示例中,您将在 Debian 服务器上设置并启用 UFW(简单防火墙)。 因此,您将安装 UFW,打开 SSH 端口,然后启动并启用 UFW。

使用以下命令在您的 Debian 系统上安装 UFW。

sudo apt install ufw -y

安装 UFW 后,执行以下命令启用 OpenSSH 应用程序配置文件。您将看到添加的输出规则。

sudo ufw allow OpenSSH

现在使用以下命令启用 UFW。输入 y 确认、启动并启用 UFW。

sudo ufw enable

一旦启动并启用 UFW,您将获得输出“防火墙已激活…”。

设置 ufw

安装SALT大师

完成上面的任务后,您就可以安装 SaltStack 了。 您将在主服务器上安装并配置 Salt Master。

在主服务器上,运行以下命令安装 salt-master 包。输入 Y 确认安装。

sudo apt install salt-master

安装SALT大师

安装完成后,使用下面的nano编辑器命令打开默认的Salt Master配置/etc/salt/master。

sudo nano /etc/salt/master

将默认接口更改为本地 IP 地址。在此示例中,主服务器 IP 地址为 192.168.5.15。

interface: 192.168.5.15

保存文件并在完成后退出。

现在运行以下命令来重新启动 salt-master 服务并应用您的更改。

sudo systemctl restart salt-master

然后验证salt-master服务,确保服务正在运行。

sudo systemctl status salt-master

如果正在运行,您将看到诸如 active (running) 之类的输出。

验证SALT主

接下来,运行以下命令来打开 Salt Master 将使用的 TCP 端口 4505 和 4506。

sudo ufw allow 4505,4506/tcp

最后,使用以下命令检查主服务器中的端口列表。 确保允许访问端口 4505 和 4506。

sudo ufw status

设置 ufw

安装 Salt Minion

现在您已经配置了 Salt Master,继续在 minion1 服务器上配置 Salt Manion。 您将安装 salt-minion,然后将其配置为连接到 Salt Master 服务器。

使用以下命令将 salt-minion 包安装到 minion1 服务器。输入 Y 确认安装。

sudo apt install salt-minion

安装 salt-minion

安装完成后,使用 nano 编辑器命令打开 Salt Minion 配置 /etc/salt/minion。

sudo nano /etc/salt/minion

将您的 Salt Master IP 地址输入到 master 参数中,如下所示:

master: 192.168.5.15

保存文件并退出编辑器。

接下来,运行以下命令重新启动 salt-minion 服务并应用您的更改。

sudo systemctl restart salt-minion

最后,验证 salt-minion 服务以确保该服务正在运行。 Salt Minion 将自动注册到 Salt Master 服务器。

sudo systemctl status salt-minion

确保 salt-minion 服务正在运行,如下所示:

验证SALT奴才

将 Salt Minion 添加到 Salt Master

配置完 Salt Minion 后,您仍然需要接受来自 Minion 服务器的注册密钥。

首先,运行以下命令来验证主服务器上的列表密钥。

salt-key --finger-all

如果一切顺利,您可以看到 minion1 服务器或 Salt Minion 服务器的密钥。

列出键

现在运行以下命令以接受 minion1 服务器的密钥。 输入 Y 确认并接受密钥。

salt-key -a minion1

接下来,再次验证 minion1 服务器上的列表密钥。 您将看到“接受的密钥”部分中列出的 minion1 服务器的密钥。

salt-key --finger-all

接受密钥

现在您可以使用命令测试与 Salt Minion 服务器的连接。 您可以使用主机名指定目标服务器,也可以使用“*”字符来定位所有可用的 Salt Minion 服务器。

salt minion1 test.ping
salt * test.ping

如果与 Salt Minion 的连接成功,您将看到输出“True”。

最后,使用以下命令验证 Salt 版本。

salt minion1 test.version

本示例中安装的是Salt Minion 3007.0。

测试 salt ping 和版本

通过 SaltStack 运行任意命令

配置完所有内容后,您将通过从主服务器在 minion1 服务器上运行任意命令来测试 SaltStack 安装。

运行以下命令来更新 Minion 服务器的存储库包索引。

salt '*' pkg.refresh_db

现在运行下面的命令在目标服务器上打包更新。

salt '*' pkg.list_upgrades

接下来,运行以下命令以显示有关 apache2 包的信息。

salt '*' pkg.show apache2

要检查 Minion 服务器上运行的服务,请运行以下命令。

salt '*' service.get_running
salt '*' service.execs

为 LAMP Stack 安装创建 Salt State

在本节中,您将学习如何创建第一个 SaltState 以将 LAMP Stack(Apache、MariaDB 和 PHP)安装到 minion1 服务器。

首先,使用以下命令创建一个新目录 /srv/salt/lamp。

mkdir -p /srv/salt/lamp

现在使用以下 nano 编辑器创建一个新的 Salt 状态初始化文件 /srv/salt/lamp/init.sls。

nano /srv/salt/lamp/init.sls

将以下配置添加到文件中。 这样,您将在目标服务器上安装 LAMP Stack(Apache、MariaDB 和 PHP)。

lamp_stack:
pkg.installed:
- pkgs:
- apache2
- mariadb-server
- php
- libapache2-mod-php

apache2:
service.running:
- enable: True
- reload: True

mariadb:
service.running:
- enable: True
- reload: True

保存文件并退出。

现在运行以下命令来针对 Salt Minion 验证您的 Salt 状态配置。确保您没有任何错误。

sudo salt * state.show_sls lamp

测试SALT状态

接下来,运行以下命令将 Salt 状态“lamp”应用到 minion1 服务器。

sudo salt minion1 state.apply lamp

当该过程完成时,您将获得以下输出:

成功SALT状态

最后,运行以下命令来验证 minion1 服务器上的 Apache 和 MariaDB 服务。

salt '*' service.get_running

确保 apache2 和 mariadb 服务都在运行。

服务状态

结论

恭喜 您已在 Debian 12 服务器上完成 SaltStack(Salt Master 和 Minion)的安装。 您还学习了如何对 Minion 服务器运行任意命令,并创建用于安装 LAMP Stack(Apache2、MariaDB 和 PHP)的第一个 Salt 状态。

资讯来源:由0x资讯编译自HOWTOFORGE,版权归作者所有,未经许可,不得转载

资讯来源:由a0资讯编译自THECOINREPUBLIC。版权归作者A0资讯所有,未经许可,不得转载

上一篇 2024年 5月 31日
下一篇 2024年 5月 31日

相关推荐