SaltStack 基础
2017-12-08 17:24
288 查看
介
SaltStack是基于Python开发的一套C/S架构配置管理工具。它的底层使用ZeroMQ消息队列pub/sub方式通信,使用SSL证书签发的方式进行认证管理。号称世界上最快的消息队列ZeroMQ使得saltstack能工快速在成千上万台机器上进行操作,而且使用RSA Key方式确认身份,传输采用AES加密,安全性高。在传统的C/S架构中,客户端发送请求给服务器端,服务器端接收到请求并且处理完后再返回给客户端。在SaltStack架构中不仅有传统的C/S架构服务模式,而且有消息队列中的发布与订阅(pub/sub)服务模式。一般
使用C/S架构进行配置管理。
在Master和Minion端都是以守护进程的模式运行,一直监听配置文件里面定义的re_port(接受minion请求)和publish_port(发布消息)的端口。当Minion运行时会自动连接到配置文件里Master的ret_port端口进行连接
认证。默认客户端请求id是socket.getfqdn()取到的值,也可以修改minion配置文件。
Master 4505端口:ZeroMQ的publish_port(发布消息);
4506端口:接受minion消息请求。
Masterless架构,如果采用Masterless架构,就不需要单独安装一台Master机器。只需要在每台机器上安装Minion,然后采用本机只负责对本机的配置管理工作机制服务模式。
saltstack 运行方式:
Local (本地运行,单机)
Master/Minion
Salt ssh(不安装agent,通过ssh 协议来管理)
多master(配置多个master)
saltstack 三大功能:
远程执行
配置管理
云管理 salt-cloud
安装:
点击查看安装方式Master 端命令
# rpm -ql salt-master /etc/salt/master # salt-master 主配置文件 /etc/salt/master.d # salt-master 扩展配置文件目录 /etc/salt/pki/master # master key /usr/bin/salt # master 核心命令 /usr/bin/salt-cp # salt 文件传输命令 /usr/bin/salt-key # salt 证书管理命令 /usr/bin/salt-master # salt-master 服务命令(start,stop,restart) /usr/bin/salt-run # salt-master runner命令 /usr/bin/salt-unity
(1)salt 命令
在命令可以通过salt -h 获取所有参数解释,这里主要介绍一些常用参数。
Options: --version # 查看SaltStack程序的版本号 --versions-report # 查看SaltStack程序以及依赖包的版本号 -h, --help # 帮助信息 -c CONFIG_DIR # 指定配置文件目录(默认/etc/salt/) --hard-crash # 捕捉到original异常不退出(默认关闭) -g # 返回的信息生成grains -m MODULE_DIRS #指定自定义模块目录 -d #查看指定模块所有模块文档 --master=MASTER # 指定saltstack MASTER --return=RETURNER # 指定return --local # 运行masterless模式(不需要master端,只对本机负责的一种工作机制) --file-root=FILE_ROOT # 指定file-root目录 --pillar-root=PILLAR_ROOT # 指定pillar-root目录 --retcode-passthrough # 显示salt-call命令返回状态 --id=ID # 指定一个minion ID --metadata # 打印metadata信息 --skip-grains # 不加载grains信息 --refresh-grains-cache # 强制刷新grains信息
salt-call 命令参数
Master 端匹配minion 方式
在SaltStack系统中的管理对象叫做Target。简写: tgt(1)正则表达式
# 正则表达式匹配的是 Minion端的 ID 值 salt -E 'min*' test.ping
(2)list 列表匹配
# 列表匹配也是匹配的Minion端的 ID 值 salt -L minion1,minion2 test.ping salt -L minion1, test.ping salt -L minion1 test.ping
(3)Grains 匹配
# 通过minions的grains item 来匹配 salt -G 'os:CentOS' test.ping
(4)组匹配
# 通过对minion分组,对整个组进行匹配,操作,groups是组名 # 组是需要人为划分的 salt -N groups test.ping
(5)复合匹配
# 复合匹配支持使用and和or关联多个条件 salt -C 'G@os:Centos or L@Minion1' test.ping
(6)Pillar值匹配
# key:value 是Pillar系统中定义的一组键值对,跟Grains的键值对类似。 salt -I 'key:value' test.ping
(7)CIDR匹配
# 通过一个指定的CIDR网段,这里CIDR匹配的IP地址是Minion连接Master 4505端口的来源地址 salt -S '192.168.1.0/24' test.ping
对Minions 进行分组
通过对minion id 进行分组,可以通过组这个概念来批量操作受控主机。分组信息默认保存在 /etc/salt/master。可以通过创建子配置文件的方式来修改存放分组信息的文件。在master的主配置文件中有include配置文件(子配置文件)的设定: default_include: master.d/*.conf , 目录和文件都需要自己来创建。这样可以避免直接操作Master主配置文件 。分组语法:
![](https://images2017.cnblogs.com/blog/952557/201712/952557-20171222161512021-1698155595.png)
注意:分组语法与匹配类似,注意区分。匹配中可以使用and, or 及not等boolean 型操作。
分组配置文件示例
# /etc/salt/master.d/group.conf nodegroups: group1: 'L@foo.domain.com,bar.domain.com,baz.domain.com or bl*.domain.com' group2: 'G@os:Debian and foo.domain.com' group3: 'G@os:Debian and N@group1' group4: - 'G@foo:bar' - 'or' - 'G@foo:baz
分组后记得需要重启salt-master,才能加载新的分组信息。
Salt 批处理执行方式
# 每次同时执行10台执行,就是每10台一组执行cmd.run [root@salt-master ~]# salt '*' -b 10 cmd.run 'whoami' Executing run on ['salt-master '] salt-master : root jid: 20171222160450456555 retcode: 0
相关文章推荐
- saltstack安装配置(面向零基础的,求大神不吐槽)
- saltstack 基础入门文档
- saltstack 基础入门文档
- Saltstack 基础详细介绍
- 自动化-----saltstack基础技术
- 初识salt之saltstack配置应用以及基础用法 推荐
- saltstack基础概念
- Saltstack 基础模块记录二
- 一、SaltStack安装与基础配置
- saltstack 基础入门文档
- saltstack之基础入门系列文章简介
- ceph存储 配置管理以及远程执行工具saltstack基础入门文档
- Saltstack安装和基础配置官方文档
- saltstack配置应用以及基础用法
- [SaltStack] 基础介绍
- saltstack1 安装及基础操作
- 1.saltstack基础笔记
- saltstack的state.sls和state.highstate之区别
- saltstack 安装
- 写一点Java中栈内存(Stack)和堆内存(Heap)的基础知识