如何在 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,您将获得输出“防火墙已激活…”。
安装SALT大师
完成上面的任务后,您就可以安装 SaltStack 了。 您将在主服务器上安装并配置 Salt Master。
在主服务器上,运行以下命令安装 salt-master 包。输入 Y 确认安装。
sudo apt install salt-master
安装完成后,使用下面的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 Master 将使用的 TCP 端口 4505 和 4506。
sudo ufw allow 4505,4506/tcp
最后,使用以下命令检查主服务器中的端口列表。 确保允许访问端口 4505 和 4506。
sudo ufw status
安装 Salt Minion
现在您已经配置了 Salt Master,继续在 minion1 服务器上配置 Salt Manion。 您将安装 salt-minion,然后将其配置为连接到 Salt Master 服务器。
使用以下命令将 salt-minion 包安装到 minion1 服务器。输入 Y 确认安装。
sudo apt install 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 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。
通过 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 状态“lamp”应用到 minion1 服务器。
sudo salt minion1 state.apply lamp
当该过程完成时,您将获得以下输出:
最后,运行以下命令来验证 minion1 服务器上的 Apache 和 MariaDB 服务。
salt '*' service.get_running
确保 apache2 和 mariadb 服务都在运行。
结论
恭喜 您已在 Debian 12 服务器上完成 SaltStack(Salt Master 和 Minion)的安装。 您还学习了如何对 Minion 服务器运行任意命令,并创建用于安装 LAMP Stack(Apache2、MariaDB 和 PHP)的第一个 Salt 状态。
资讯来源:由a0资讯编译自THECOINREPUBLIC。版权归作者A0资讯所有,未经许可,不得转载