侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

自动化运维工具saltstack使用

2023-11-09 星期四 / 0 评论 / 0 点赞 / 60 阅读 / 8325 字

================================================================================= 一、基础介绍 ===========

=================================================================================
一、基础介绍
=================================================================================

1、简介
SaltStack是一个服务器基础架构集中化管理平台,具备配置管理、远程执行、监控等功能,一般可以理解为简化版的puppet和加强版的func。SaltStack基于Python语言实现,结合轻量级消息队列(ZeroMQ)与Python第三方模块(Pyzmq、PyCrypto、Pyjinjia2、python-msgpack和PyYAML等)构建。通过部署SaltStack环境,我们可以在成千上万台服务器上做到批量执行命令,根据不同业务特性进行配置集中化管理、分发文件、采集服务器数据、操作系统基础及软件包管理等,SaltStack是运维人员提高工作效率、规范业务配置与操作的利器。

2、特性
(1)、部署简单、方便;
(2)、支持大部分UNIX/Linux及Windows环境;
(3)、主从集中化管理;
(4)、配置简单、功能强大、扩展性强;
(5)、主控端(master)和被控端(minion)基于证书认证,安全可靠;

(6)支持API及自定义模块,可通过Python轻松扩展。

3、Master与Minion认证
(1)、minion在第一次启动时,会在/etc/salt/pki/minion/(该路径在/etc/salt/minion里面设置)下自动生成minion.pem(private key)和 minion.pub(public key),然后将 minion.pub发送给master。

(2)、master在接收到minion的public key后,通过salt-key命令accept minion public key,这样在master的/etc/salt/pki/master/minions下的将会存放以minion id命名的 public key,然后master就能对minion发送指令了。

4、Master与Minion的连接
(1)、SaltStack master启动后默认监听4505和4506两个端口。4505(publish_port)为saltstack的消息发布系统,4506(ret_port)为saltstack客户端与服务端通信的端口。如果使用lsof 查看4505端口,会发现所有的minion在4505端口持续保持在ESTABLISHED状态。

(2)、minion与master之间的通信模式如下:

5、本次测试环境

IP地址

角色

系统环境

     

10.10.10.7

Master

CentOS 6.8

     
     

10.10.10.3

minion

CentOS 7.0

     
     
     
     

10.10.10.2

Minion1

CentOS 7.0

=================================================================================
二、SaltStack基础安装与配置
=================================================================================

1、salt-master安装

vim /etc/yum.repo.d/saltstack.repo

[saltstack-repo]

name=SaltStack repo for RHEL/CentOS $releasever

baseurl=https://repo.saltstack.com/yum/redhat/$releasever/$basearch/latest

enabled=1

gpgcheck=1

gpgkey=https://repo.saltstack.com/yum/redhat/$releasever/$basearch/latest/SALTSTACK-GPG-KEY.pub

其次,安装rpm -Uvh epel-release-X-Y.rpm

各种系统的epel下载地址,http://mirrors.neusoft.edu.cn/epel/

·         yum install salt-master salt-minion salt-ssh salt-syndic salt-cloud  -y

2、salt-minion安装

同理,安装资源路径

·         yum install salt-minion -y

3、salt-master和salt-minion配置

配置前准备,所有节点hosts文件,并修改对应主机名

10.10.10.7  saltstack.master.com

10.10.10.3  saltstack.minion.com

10.10.10.2  saltstack.minion1.com

salt-master:

vim /etc/salt/master

interface: 10.10.10.7

auto_accept: True

启动master,service salt-master start

salt-minion:

vim /etc/salt/minion

master: saltstack.master.com

id: minion-10-130-87-151(授权的唯一标识)

#在配置文件末尾加入下面内容,每隔5分钟自动同步master配置,效果等同于在客户端执行salt-call state.highstate或在server端执行 salt '*'state.highstate

schedule:

  highstate:

    function: state.highstate

    minutes: 5

启动minion,systemctl start salt-minion

4、SaltStack简单使用
## 查看当前的salt key信息
# salt-key -L

## 测试被控主机的连通性
# salt '*' test.ping

## 远程命令执行测试
# salt '*' cmd.run 'uptime'

## 根据被控主机的grains信息进行匹配过滤
# salt -G 'os:Centos' test.ping

## 显示被控主机的操作系统类型
# salt '*' grains.item os

## 远程代码执行测试
# salt '*' cmd.exec_code python 'import sys; print sys.version'

##服务器端 写sls 模板(我也不知道 该不该这样叫)  他的默认路径在 /srv/salt/ 下 没有就新建目录

然后新建一个top.sls   就跟puppet的入口文件 site.pp 类似

这里我讲解下 这个内容

base:  大家都这样取  因为只是一个代号吧  我也没改过

” : 这个引号内的是对象  说起匹配对象 你懂的  什么组 正则  类别都行  上面讲过的

-  fc7.sc  这样的东西是指资源文件是fc7目录下的sc.sls  这样的格式  这个一定得记住  好像还有一种方法 会用到init.sls  擦这个真忘记了

下面的fc7.pack  fc7.fc7 意思 都一样  #注意名称只是代号而已 你懂的

然后我们看fc7目录下的资源文件吧

讲解 我写图上了

这个就简单的实现 安装包(必须是yum能安装的)  服务  文件的最简单的管理了

我这里只是简单的演示 因为这个都是我测试过的 所以我没把客户端的结果给贴出来(客户端是30s抓一次) 当然也可以主动推

salt ‘*’ state.highstate

核心技术就是我上面说的 saltstack 管理这块 有很多模板 很多参数的

这里要说的是  如果以后你上线了   必须得规划好  准备用saltstack管些什么东西  然后再分类  什么初始化  什么服务 什么包 什么文件等等这些

初始化一般是进行一个简单的初始化

文件管理这块可以把不是经常变的 放到一起管理

包的话  可以细分成一些基础包 服务包这类

服务的话 一般跟该服务的配置文件 放到一起 需要watch 然后reload的

先写这么多吧  下次吧 资源管理那块 详细再弄下

广告 广告

评论区