千家信息网

Saltstack介绍及简单配置

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,Saltstack介绍Saltstack官方文档: dock.saltstack.comSaltstack项目:github.com/saltstackSaltstack中文网:wiki.saltst
千家信息网最后更新 2026年11月04日Saltstack介绍及简单配置

Saltstack介绍

Saltstack官方文档: dock.saltstack.com

Saltstack项目:github.com/saltstack

Saltstack中文网:wiki.saltstack.cn

Salt是基础平台管理工具。只需花费数分钟即可运行,扩展性足以支撑管理上万台服务器,数秒钟即可完成数据传递。

Salt可以做什么:

1. 配置管理

2. 远程命令

3. 包管理

应用安装

应用步骤:

本环境假设为离线环境,需要使用离线包安装此服务

参考文档

https://blog.csdn.net/u014703013/article/details/81288969

1. 先使用wget 下载网站的安装包,为了后面离线安装作准备。

以下这个是例子,根据你的发行版是啥而具体选择啥版本:

wget -r -c -np -P c:\satl https://repo.saltstack.com/yum/redhat/6.0/x86_64/2016.11/

说明:

-r 表示递归下载

-np 不下载旁站连接

-c 断点续传

-nd 递归下载时不创建一层一层的目录,把所有的文件下载到当前目录(不可取,这样不会把该目录下一级目录一并下载出来。)

-P 表示下载那个目录

2. 把下载到的文件导进服务器,做一个本地安装源

4. 编辑repo文件(这边为了方便直接在media的repo上增加本地路径)

5. 这边直接安装salt

服务端:

yum install salt

yum install salt-master -y

/etc/init.d/salt-master start

chkconfig salt-master on

客户端:

yum install -y salt-minion

vi /etc/salt/minion -----编辑配置文件

master: 192.168.24.32 ----- master端地址

cachedir: /etc/salt/modules -----模块目录

log file: /var/log/salt/minion.log -----日志路径

log level: warning -----日志级别

master: 192.168.24.4

cachedir: /etc/salt/modules

log file: /var/log/salt/minion.log

log level: warning

/etc/init.d/salt-minion start

chkconfig salt-minion on

服务和客户端都安装完后允许这些客户端

salt-key list

salt-key -A

测试连通性

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

lnmp02:

True

nfs-server:

True

lnmp01:

True

一些简单的即时管理,在服务端对客户机执行命令,无法执行一些例如top的即时命令。

配置

分组管理

编辑/etc/salt/master文件将成员按划分。可以根据系统版本、业务等划分不同的服务器。

vi /etc/salt/master

nodegroups:

group1: 'L@lnmp01,lnmp02'

group2: 'E@lnmp0[0-9]'

上面的是两种写法,"group1"可以自定义

执行命令查看一下

定义环境,定义该环境的模板存放在哪个路径下

环境配置:

环境实例测试:

配置模板实现使用salt服务端作为跳机无密码登录客户端

编辑/etc/salt/master

环境配置:

file_roots:

base

-/srv/salt

创建目录,创建mi.py脚本

[root@lnmp01 _modules]# ls

mi.py

[root@lnmp01 _modules]# pwd

/srv/salt/_modules

创建ssh公钥与私钥

ssh免密码登录原理:

[root@lnmp01 ~]# ssh-keygen 这个操作一路回车就可以

公钥文件在:

[root@lnmp01 ~]# cat ~/.ssh/id_rsa

id_rsa id_rsa.pub

得出的字符串写入到mi.py上

#!/usr/bin/env python

# Import Python Lib

import os

def sshkey():

'''

append salt manage machine public ssh-key

CLI Example:

salt '*' ssh.sshkey

'''

local_hostname = 'backup'

manage_pubkey = ' ssh-rsa /…….省略……== root@backup\n'

if not os.path.isfile('/root/.ssh/authorized_keys'):

if not os.path.isdir('/root/.ssh/'):

os.mkdir('/root/.ssh/')

file = open ('/root/.ssh/authorized_keys','w')

file.write(manage_pubkey)

file.flush()

file.close()

os.chmod('/root/.ssh/authorized_keys',0600)

return True

else:

file = open ('/root/.ssh/authorized_key','r')

if local_hostname not in file.read():

f = open('/root/.ssh/authorized_key','a')

f.write(manage_pubkey)

f.flush()

f.close()

return True

把模块推到客户端处

salt '*' saltutil.sync_all(这命令的意思是把所有模块推到客户端处)

执行

salt '*' mi.sshkey

查看公钥

ssh lnmp01测试能否无密码登录

一键部署好环境

基本原理

1.top.sls定义环境、所匹配的主机、配置什么模块(服务)

2.每个服务目录下有个init.sls,这个定义着这个模块是执行什么行为(推送配置文件、判断操作、执行命令等等)

3.这些准备工作完成后,执行salt命令使之推送到指定的客户端下实现一键群发配置。

创建目录、文件

现在/srv/salt目录上创建yum、sysctl 、httpd目录,并且创建top.sls文件

编辑top.sls文件

内容如下

base:

'lnmp0[1-2],nfs-server':

- yum

- sysctl

- httpd

- httpd.oldboy

首先编辑yum模块

在yum目录创建init.sls文件

将服务端/srv/salt/yum/file/CentOS-Base.repo 推到客户端/etc/yum.repos.d/CentOS-Base.repo这个位置。

"/etc/yum.repos.d/2408c7.repo":

file.managed:

- source: salt://yum/file/2408c7.repo

- mode: 644

- owner: root

- group: root

cmd.wait: -----将文件推到客户端的时候会比对文件MD5值,如果不一致会执行以下命令(清理缓存,重新建立缓存)

- name: "yum.clean all;yum makecache"

- onlyif: "test -f /etc/yum.repos.d/2408c7.repo" ----测试文件是否存在

- watch: ---判断这个文件是不是改变

- file: /etc/yum.repos.d/2408c7.repo

------------------------------------------------------------------------------------------------

"/etc/yum.repos.d/2408c6.repo":

file.managed:

- source: salt://yum/file/2408c6.repo

- mode: 644

- owner: root

- group: root

cmd.wait:

- name: "yum.clean all;yum makecache"

- onlyif: "test -f /etc/yum.repos.d/2408c6.repo"

- watch:

- file: /etc/yum.repos.d/2408c6.repo

在服务端/srv/salt/yum/file目录下应该有2408c6.repo文件在里面

salt -N 'all' state.sls yum 同步指定的模块

salt -N 'all' state.highstate 同步所有的模块

文件 目录 服务 客户 配置 环境 命令 客户端 模块 管理 测试 公钥 密码 服务器 路径 登录 原理 文档 日志 模板 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 什么是科技互联网 深圳市人人互联网科技有限公司 中关村互联网科技集团 深圳科技互联网 深圳互联网科技公司 腾讯科技 互联网女皇 有木互联网科技 菲比寻常互联网科技 顺网科技2021年互联网排名 恒银科技与互联网金融 贵州叶脉互联网科技有限公司所属行业 互联网5g黑科技有哪些 佛山市翊博互联网络科技有限公司 南博望互联网科技有限公司 小米互联网科技园入驻 互联网科技实习生岗位 云鲸互联网络科技有限公司 吉林省码上互联网科技电话 广州智享互联网科技 绵阳真晨互联网科技有限公司 互联网金融与金融科技 互联网医疗科技 互联网金融 科技金融 以房互联网科技 金融科技与互联网金融相同和不同 伍佰万互联网科技怎么赚钱 昆明中奇联合互联网科技 互联网金融金融科技 数字科技和互联网金融哪个好 银川新华互联网科技学校招聘
0