saltstack

一、了解saltstack

SaltStack管理工具允许管理员对多个操作系统创建一个一致的管理系统,包括VMware vSphere环境。

二、安装搭建

两台服务器

master192.168.109.128
slave192.168.109.129

master server端配置vim /etc/hosts
在这里插入图片描述
1、服务器安装salt-master

`[root@salt-master ~]# yum -y install https://mirrors.aliyun.com/saltstack/yum/redhat/salt-repo-latest-2.el7.noarch.rpm
[root@salt-master ~]# sed -i "s/repo.saltstack.com/mirrors.aliyun.com\/saltstack/g" /etc/yum.repos.d/salt-latest.repo
[root@salt-master ~]# yum -y install salt-master
[root@salt-master ~]# systemctl start salt-master`

2、客服端上软件安装并配置

[root@salt-slave ~]# yum -y install https://mirrors.aliyun.com/saltstack/yum/redhat/salt-repo-latest-2.el7.noarch.rpm
[root@salt-slave ~]# yum -y install salt-minion

3、修改配置文件
vim /etc/salt/minion
16行 master:主ip地址或者master
4、master server端

salt-key
密钥管理,通常在master端执行

[root@salt-master ~]# salt-key -L 

在这里插入图片描述

salt-key [options]
salt-key -L              ##查看所有minion-key
salt-key -a <key-name>   ##接受某个minion-key
salt-key -d <key-name>   ##删除某个minion-key
salt-key -A              ##接受所有的minion-key
salt-key -D              ##删除所有的minion-key

在这里插入图片描述
远程执行
测试连通

[root@salt-master ~]# salt '*' test.ping

在这里插入图片描述

[root@salt-master ~]#  salt 'slave' cmd.run 'ifconfig ens33' 
### SaltStack 安装、配置与使用指南 #### 1. SaltStack 简介 SaltStack 是一个基于 Python 开发的基础设施管理工具,采用 C/S 架构,由服务端(Master)和客户端(Minion)组成。它通过 ZeroMQ 进行通信,具有远程命令执行、配置管理和云管理三大核心功能。相较于 Puppet 和 Chef,SaltStack 更加轻量级且易于配置,适合大规模服务器的批量管理[^2]。 #### 2. SaltStack 安装步骤 ##### 2.1 安装 Master 节点 在 CentOS/RHEL 上安装 SaltStack Master: ```bash # 添加 EPEL 仓库 sudo yum install epel-release -y # 安装 SaltStack Master sudo yum install salt-master -y # 启动并启用服务 sudo systemctl start salt-master sudo systemctl enable salt-master ``` ##### 2.2 安装 Minion 节点 在 CentOS/RHEL 上安装 SaltStack Minion: ```bash # 添加 EPEL 仓库 sudo yum install epel-release -y # 安装 SaltStack Minion sudo yum install salt-minion -y # 配置 Minion 指向 Master echo "master: <master_ip>" | sudo tee /etc/salt/minion # 启动并启用服务 sudo systemctl start salt-minion sudo systemctl enable salt-minion ``` ##### 2.3 认证 Minion 在 Master 上接受 Minion 的密钥: ```bash # 查看待认证的 Minion sudo salt-key -L # 接受所有 Minion 密钥 sudo salt-key -A ``` #### 3. SaltStack 基本配置 ##### 3.1 配置文件位置 - **Master 配置文件**:`/etc/salt/master` - **Minion 配置文件**:`/etc/salt/minion` ##### 3.2 Grains 配置 Grains 是 SaltStack 中用于存储静态信息的机制。可以在 Minion 上定义自定义 Grains,例如: ```yaml # /etc/salt/grains role: webserver env: production ``` 之后重启 Minion 服务以应用更改: ```bash sudo systemctl restart salt-minion ``` 可以通过以下命令获取 Grains 信息: ```bash salt 'zabbix' grains.item role env mysql ``` 输出示例: ``` zabbix: ---------- env: test mysql: role: zabbix ``` #### 4. SaltStack 使用示例 ##### 4.1 远程命令执行 SaltStack 支持通过 `cmd.run` 执行远程命令。例如,在所有 Minion 上查看系统版本: ```bash salt '*' cmd.run 'uname -a' ``` ##### 4.2 配置管理 SaltStack 的状态系统(State System)用于实现配置管理。以下是一个简单的 SLS 文件示例,用于安装并启动 Apache 服务: ```yaml # /srv/salt/apache.sls apache-service: pkg.installed: - name: httpd service.running: - name: httpd - enable: True ``` 然后执行该状态文件: ```bash salt 'slaver.test.com' state.apply apache ``` ##### 4.3 高可用性与扩展 SaltStack 支持多 Master 架构,确保高可用性。此外,可以通过 Salt Cloud 实现云平台的自动化管理,支持 AWS、Azure、OpenStack 等主流云平台。 #### 5. 常见问题排查 ##### 5.1 Minion 无法连接 Master - 检查网络连通性,确保 Minion 可以访问 Master 的 4505 和 4506 端口。 - 确保 Minion 的 `/etc/salt/minion` 文件中正确配置了 `master` 地址。 - 在 Master 上运行 `salt-key -L` 查看 Minion 是否已正确注册。 ##### 5.2 状态文件执行失败 - 检查 SLS 文件语法是否正确,可以使用 `salt-lint` 工具进行检查。 - 使用 `-l debug` 参数查看详细日志: ```bash salt 'minion_id' state.apply -l debug ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值