当前位置:首页 > Ubuntu > 正文

SaltStack自动化运维实战(Ubuntu SaltStack配置管理从零入门到精通)

在现代 IT 运维中,自动化配置管理已成为提升效率、保障一致性的关键手段。SaltStack 是一款功能强大且灵活的开源配置管理与远程执行工具,特别适合用于大规模服务器集群的统一管理。本文将手把手教你如何在 Ubuntu 系统 上安装、配置并使用 SaltStack,实现高效、可靠的 Ubuntu SaltStack配置管理

SaltStack自动化运维实战(Ubuntu SaltStack配置管理从零入门到精通) Ubuntu SaltStack配置管理 SaltStack自动化运维 Ubuntu系统配置 SaltStack教程 第1张

一、SaltStack 基础概念

SaltStack 采用 Master-Minion 架构:

  • Master:控制中心,负责下发指令和状态配置。
  • Minion:被管理的客户端节点,接收并执行 Master 的命令。

通过编写 SLS 文件(Salt State Files),我们可以定义系统应处于的状态(如安装软件包、创建用户、配置服务等),SaltStack 会自动确保目标系统达到该状态。

二、环境准备

本教程以两台 Ubuntu 22.04 服务器为例:

  • Master 节点:IP 为 192.168.1.10
  • Minion 节点:IP 为 192.168.1.11

确保两台机器网络互通,并已更新系统:

sudo apt update && sudo apt upgrade -y

三、安装 SaltStack

SaltStack 官方提供 PPA 仓库,我们通过它来安装最新稳定版。

1. 在 Master 和 Minion 上都执行以下命令:

# 添加 SaltStack 官方仓库wget -O - https://repo.saltproject.io/salt/py3/ubuntu/22.04/amd64/latest/SALT-PROJECT-GPG-PUBKEY-2023.pub | sudo gpg --dearmor -o /usr/share/keyrings/salt-archive-keyring.gpgecho "deb [signed-by=/usr/share/keyrings/salt-archive-keyring.gpg] https://repo.saltproject.io/salt/py3/ubuntu/22.04/amd64/latest jammy main" | sudo tee /etc/apt/sources.list.d/salt.list# 更新并安装sudo apt updatesudo apt install salt-master salt-minion -y  # Master 节点sudo apt install salt-minion -y              # Minion 节点(仅安装 minion)

2. 配置 Minion 指向 Master

在 Minion 节点(192.168.1.11)上编辑配置文件:

sudo nano /etc/salt/minion

找到 master: 行,取消注释并修改为 Master 的 IP:

master: 192.168.1.10

保存后重启 Minion 服务:

sudo systemctl restart salt-minion

3. 启动 Master 并接受 Minion 密钥

在 Master 节点启动服务:

sudo systemctl start salt-mastersudo systemctl enable salt-master

查看待接受的 Minion 密钥:

sudo salt-key -L

接受 Minion(假设 Minion ID 为 ubuntu-minion):

sudo salt-key -a ubuntu-minion

四、编写第一个 Salt State(配置文件)

现在我们来创建一个简单的 SLS 文件,用于在 Minion 上安装 Nginx 并确保其运行。

在 Master 节点创建目录结构:

sudo mkdir -p /srv/salt/nginx

创建 State 文件 /srv/salt/nginx/init.sls

sudo nano /srv/salt/nginx/init.sls

写入以下内容:

nginx:  pkg.installed  service.running:    - enable: True    - require:      - pkg: nginx

这个 SLS 文件定义了两个状态:pkg.installed 确保 nginx 包已安装,service.running 确保 nginx 服务正在运行且开机自启。

五、应用配置并验证

在 Master 上执行 highstate 应用所有配置:

sudo salt 'ubuntu-minion' state.apply nginx

如果看到返回结果中包含 Success 或绿色的 Changed,说明配置已成功应用!你可以登录 Minion 用 systemctl status nginx 验证服务是否运行。

六、总结

通过本教程,你已经掌握了在 Ubuntu 系统上部署 SaltStack、配置 Master-Minion 关系,并编写第一个自动化配置文件。SaltStack 强大的 SaltStack自动化运维 能力可以帮助你轻松管理成百上千台服务器,实现 Ubuntu系统配置 的标准化与自动化。

后续你可以学习 Pillar(敏感数据管理)、Grains(节点元数据)、Top 文件(批量应用状态)等高级功能,进一步提升你的 SaltStack教程 实战水平。

提示:生产环境中建议使用更安全的网络策略和密钥管理方式。