SaltStack集群部署实战:从节点配置到自动化状态管理
Salt-Minion节点配置
1. 基础配置
# 配置文件路径:/etc/salt/minion
vim /etc/salt/minion
# 核心配置项(约第16行)
master: 192.168.50.60 # Master节点IP地址
id: minion-1 # 自定义节点标识(不配置则默认使用hostname)
2. 服务管理
# 配置生效操作
systemctl restart salt-minion # 修改后立即生效
systemctl enable salt-minion # 设置开机自启
Master节点密钥管理
1. 密钥认证流程
# 查看节点认证状态
salt-key -L
# 输出示例:
Accepted Keys:
Denied Keys:
Unaccepted Keys: k8s-master1 # 未认证节点
Rejected Keys:
2. 节点管理操作
# 接受单个节点认证
salt-key -a k8s-master1
# 批量接受节点(支持正则表达式)
salt-key -a 'k8s-*'
# 删除失效节点
salt-key -d k8s-master1
3. 节点健康检查
# 全局连通性测试
salt '*' test.ping
# 输出示例:
k8s-master1: True
minion-1: True
Master服务端配置详解
1. 配置文件优化
# 创建配置备份(重要!)
cp -rp /etc/salt/master /etc/salt/master.bak
# 核心配置项(约第698行)
vim /etc/salt/master
file_roots:
base:
- /srv/salt # 状态文件存储根目录
2. 目录结构初始化
# 创建工作目录
mkdir -p /srv/salt
3. 服务重启
systemctl restart salt-master
自动化状态文件开发
1. 基础状态模板
# /srv/salt/execute_htop_command.sls
# 功能:安全执行htop命令(含错误处理)
# 错误日志记录模块
log_htop_failure:
cmd.run:
- name: logger -t saltstack "htop exec fail: {{ grains['id'] }}"
- runas: root
# 主执行模块
execute_htop_command:
cmd.run:
- name: htop
- pty: True # 强制分配伪终端
- runas: root # 指定执行用户
- onfail:
- log_htop_failure # 错误处理关联
- require:
- pkg: install_htop # 依赖安装状态
# 依赖安装模块
install_htop:
pkg.installed:
- name: htop
- unless: htop --version # 智能安装检测
2. 状态执行方式
# 单节点执行
salt 'k8s-master1' state.sls execute_htop_command
# 全局执行
salt '*' state.sls execute_htop_command
全局状态部署实践
1. 环境映射配置
# /srv/salt/top.sls
# 功能:定义全局状态分配策略
base:
'*': # 所有节点
- execute_htop_command # 基础监控
2. 全局状态推送
# 执行全局配置
salt '*' state.highstate
评论区