当前位置: 首页 > 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.gsyq.cn/news/22158.html

相关文章:

  • NCS 3.1.1 蓝牙如何设置 public 地址
  • C# Avalonia 16- Animation- BlurringButtons
  • 别再争了,“Prompt已死”是个伪命题
  • 2025年通风气楼厂家最新权威推荐榜:工业厂房自然通风与消防排烟系统专业解决方案精选
  • 了解漏洞管理和补丁管理
  • 2025 年国内铝型材源头厂家最新推荐排行榜:聚焦优质企业核心优势,为下游企业精准采购提供专业参考
  • WPF应用绑定系统快捷键
  • 2025年篷布厂家最新推荐排行榜,多功能防水篷布、聚乙烯篷布、帐篷/汽车/宴会盖布、盖草布、泳池布、微喷水带、日用盖布、农林用篷布、重型机器用篷布公司精选
  • 2025年发电机组厂家最新权威推荐榜:柴油/燃气/船用/静音箱式/移动拖车/集装箱式,涵盖上柴/玉柴/潍柴/康明斯/沃尔沃/道依茨/帕金斯/MTU品牌
  • pbm 还原物理备份提示executable file not found in $PATH. stderr
  • 2025年精密磨床/CNC加工厂家最新权威推荐榜:涵盖车床/铣床/多轴/复合加工,铝/不锈钢/钛合金/模具钢/塑料件定制,专攻汽车/医疗/航空航天/机器人零件及注塑模具
  • 协作式调度(Cooperative Scheduling)详解
  • 有没有什么比较好用的拼图工具?
  • WxPython跨平台开发框架之主从表展示和录入的界面处理--产品报价单和明细记录的处理
  • 2025 年南昌装修公司推荐:南昌宿然设计 —— 无营销套路专注落地还原的技术型装修设计机构
  • 【运维自动化-标准运维】各类全局变量使用说明(下)
  • 10 16
  • MSSQL 恢复到时间点方法
  • 线性代数笔记
  • 2025 年浇注料生产厂家最新推荐榜单:聚焦实力企业,助力石化冶金新能源等行业精准选择优质供应商轻质/氧化铝空心球/耐火纤维浇注料厂家推荐
  • 谷歌推出全新语音搜索技术 S2R:跳过语音转文字,直接理解语音意图;代体 AI 推出端侧语音输入法丨日报
  • 数据跨境传输:挑战、需求与管控实践
  • 元推理框架,人类文明的逻辑正果
  • 2025 年广州心理咨询机构最新推荐榜权威发布,详解品牌实力优势与选择指南广州青少年心理咨询/广州情感心理咨询/广州婚姻情感心理咨询/广州催眠心理咨询机构推荐
  • 还在手动Code Review?给你的GitHub项目请一个免费的AI审查官吧!
  • 【光照】UnityURP[泛光Bloom]原理与实现
  • Cartesian MST
  • JavaScript 中的安全编码:10 个关键实践
  • 2025 年飞机票预定公司最新推荐排行榜:聚焦专业诚信,覆盖特殊旅客与企业服务的口碑榜单
  • 2025 年水质测定仪厂家最新推荐排行榜:解析科技等优质企业实力领衔,助您精准选品多参数/便携式/cod快速/台式水质测定仪厂家推荐