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

SaltStack 集群安装指南

SaltStack 集群安装指南

1. 环境准备

确保所有5台Ubuntu服务器(1台master,4台minion)满足以下条件:

  • Ubuntu 20.04 LTS 或更高版本
  • 网络互通,主机名解析正常
  • root权限或sudo权限

2. 主机名和IP规划

假设您的服务器规划如下:

  • Master: salt-master (192.168.1.100)
  • Minion1: salt-minion-1 (192.168.1.101)
  • Minion2: salt-minion-2 (192.168.1.102)
  • Minion3: salt-minion-3 (192.168.1.103)
  • Minion4: salt-minion-4 (192.168.1.104)

3. 在所有服务器上安装SaltStack

在Master和所有Minion上执行:

# 更新系统
sudo apt update
sudo apt upgrade -y# 安装SaltStack
sudo apt install -y salt-master salt-minion salt-ssh salt-cloud

4. 配置Master服务器

在Master服务器上配置:

# 编辑Master配置文件
sudo nano /etc/salt/master

添加或修改以下配置:

# 基本配置
interface: 0.0.0.0
auto_accept: True# 文件服务器设置
file_roots:base:- /srv/salt# Pillar设置
pillar_roots:base:- /srv/pillar# 启用自动接受密钥
auto_accept: True# 设置文件接收大小限制
max_open_files: 100000

启动Master服务:

sudo systemctl enable salt-master
sudo systemctl start salt-master
sudo systemctl status salt-master

5. 配置Minion服务器

在每台Minion服务器上配置:

# 编辑Minion配置文件
sudo nano /etc/salt/minion

修改以下配置(将master_ip替换为您的Master服务器IP):

# 指定Master服务器
master: 192.168.1.100# 设置Minion ID(每台Minion需要唯一)
id: salt-minion-1  # 根据实际情况修改

启动Minion服务:

sudo systemctl enable salt-minion
sudo systemctl start salt-minion
sudo systemctl status salt-minion

6. 在Master上验证连接

在Master服务器上执行:

# 查看所有连接的Minion
sudo salt-key -L# 接受所有Minion的密钥
sudo salt-key -A# 测试与所有Minion的连接
sudo salt '*' test.ping# 获取所有Minion的系统信息
sudo salt '*' grains.items

7. 创建基础Salt状态文件

在Master服务器上创建目录结构:

sudo mkdir -p /srv/salt
sudo mkdir -p /srv/pillar

创建基础状态文件:

# 创建top.sls文件
sudo nano /srv/salt/top.sls
base:'*':- common

创建通用状态文件:

sudo nano /srv/salt/common.sls
# 基础包安装
base_packages:pkg.installed:- pkgs:- htop- vim- curl- wget- git# 时间同步
ntp:pkg.installed:- name: ntpservice.running:- name: ntp- enable: True# 系统更新
system_update:pkg.uptodate:- refresh: True

8. 应用状态到所有Minion

# 应用基础状态
sudo salt '*' state.apply# 仅应用特定状态
sudo salt '*' state.apply common

9. 创建集群管理脚本

创建集群管理脚本:

sudo nano /usr/local/bin/salt-cluster-manager.sh
#!/bin/bash# SaltStack集群管理脚本MASTER_IP="192.168.1.100"
MINIONS=("salt-minion-1" "salt-minion-2" "salt-minion-3" "salt-minion-4")case "$1" instatus)echo "=== SaltStack集群状态 ==="sudo salt '*' test.ping;;keys)echo "=== 密钥状态 ==="sudo salt-key -L;;update)echo "=== 更新所有节点 ==="sudo salt '*' pkg.upgrade;;highstate)echo "=== 应用Highstate ==="sudo salt '*' state.highstate;;restart-services)echo "=== 重启Salt服务 ==="sudo systemctl restart salt-masterfor minion in "${MINIONS[@]}"; dosudo salt "$minion" service.restart salt-miniondone;;*)echo "用法: $0 {status|keys|update|highstate|restart-services}"exit 1;;
esac

设置脚本权限:

sudo chmod +x /usr/local/bin/salt-cluster-manager.sh

10. 防火墙配置(如果需要)

在Master服务器上:

sudo ufw allow 4505/tcp  # Salt发布端口
sudo ufw allow 4506/tcp  # Salt返回端口
sudo ufw reload

在Minion服务器上:

sudo ufw allow from 192.168.1.100 to any port 4505
sudo ufw allow from 192.168.1.100 to any port 4506
sudo ufw reload

11. 验证集群功能

测试集群功能:

# 测试连通性
sudo salt '*' test.ping# 执行远程命令
sudo salt '*' cmd.run 'uname -a'# 检查磁盘空间
sudo salt '*' disk.usage# 检查内存使用
sudo salt '*' status.meminfo

12. 故障排除

如果遇到连接问题,检查以下内容:

# 检查服务状态
sudo systemctl status salt-master
sudo systemctl status salt-minion# 检查日志
sudo tail -f /var/log/salt/master
sudo tail -f /var/log/salt/minion# 检查网络连通性
ping salt-master
telnet salt-master 4505
telnet salt-master 4506

13. 常用命令参考

# 管理密钥
sudo salt-key -L          # 列出所有密钥
sudo salt-key -A          # 接受所有密钥
sudo salt-key -a minion-id # 接受特定Minion
sudo salt-key -d minion-id # 删除特定Minion# 执行命令
sudo salt '*' cmd.run 'command'
sudo salt 'minion-*' pkg.install package_name# 状态管理
sudo salt '*' state.apply
sudo salt '*' state.highstate
sudo salt '*' state.sls common

这样就完成了SaltStack一主四从集群的安装和基本配置。您现在可以使用SaltStack来集中管理所有4台Minion服务器了。

http://www.jsqmd.com/news/14601/

相关文章:

  • nginx基本配置详解
  • NCS 3.1.1 蓝牙如何设置 public 地址
  • C# Avalonia 16- Animation- BlurringButtons
  • iOS 26 崩溃日志导出全流程,多工具实践 辅助分析策略
  • 小白也能学会的 rime + 万象拼音 输入法安装教程
  • 别再争了,“Prompt已死”是个伪命题
  • 2025.10.16——1绿
  • 2025年通风气楼厂家最新权威推荐榜:工业厂房自然通风与消防排烟系统专业解决方案精选
  • 2025 年展柜定制厂家最新推荐排行榜:聚焦全链条服务与大规模生产能力的优质品牌精选
  • jsp初级crud
  • 了解漏洞管理和补丁管理
  • 2025 年国内铝型材源头厂家最新推荐排行榜:聚焦优质企业核心优势,为下游企业精准采购提供专业参考
  • 于鸿硕项目案例作业03
  • restful接口返回忽略字段 jackon的@JsonIgnore注解应用
  • DA (Domain Adaptation,域适应)
  • Android四大组件之一Activity简介
  • WPF应用绑定系统快捷键
  • 2025年篷布厂家最新推荐排行榜,多功能防水篷布、聚乙烯篷布、帐篷/汽车/宴会盖布、盖草布、泳池布、微喷水带、日用盖布、农林用篷布、重型机器用篷布公司精选
  • 2025年轻钢龙骨/铝方通/铝单板/石膏板厂家最新权威推荐榜单:专业生产与品质保障深度解析
  • 2025年彩钢瓦/镀锌板/折弯件/C型钢/Z型钢/压型瓦/楼承板/次檩条厂家最新推荐排行榜,钢结构安装服务与金属构件生产实力深度解析
  • 2025年发电机组厂家最新权威推荐榜:柴油/燃气/船用/静音箱式/移动拖车/集装箱式,涵盖上柴/玉柴/潍柴/康明斯/沃尔沃/道依茨/帕金斯/MTU品牌
  • pbm 还原物理备份提示executable file not found in $PATH. stderr
  • 程序员面试、算法研究、机器学习、大模型/ChatGPT/AIGC、论文审稿、具身智能/人形机器人、RAG等20大系列集锦
  • 2025年精密磨床/CNC加工厂家最新权威推荐榜:涵盖车床/铣床/多轴/复合加工,铝/不锈钢/钛合金/模具钢/塑料件定制,专攻汽车/医疗/航空航天/机器人零件及注塑模具
  • 2025 年最新推荐导轨丝杆源头厂家排行榜:聚焦优质货源,助力企业精准选品直线/滚珠/孚雷/恒而达导轨丝杆厂家推荐
  • 协作式调度(Cooperative Scheduling)详解
  • 有没有什么比较好用的拼图工具?
  • 2025年鸡精生产线厂家最新权威推荐榜:高速混合机/WDG农药生产线/鸡粉干燥设备/海鲜精干燥设备/调味料干燥成套系统专业解析
  • 2025年最值得关注的五款AI Wiki软件,打造你的专属知识大脑
  • 2025年法兰保护罩厂家最新推荐排行榜,阀门保温罩,法兰罩,法兰防溅罩,法兰保护套,专业定制与防护性能深度解析