saltstack

一、saltstack介绍:

 

saltstack是基于python开发的一套C/S自动化运维工具,通信采用了zeromq消息队列的(pub/sub),数据传输采用了AES(高级加密)保证安全性,认证采用了SSL方式。

 

 

  1. ZeroMQ将网络通信分成4种模型,
  2. 1、一对一结对模型(Exclusive-Pair)、
  3. 2、请求回应模型(Request-Reply)、
  4. 3、发布订阅模型(Publish-Subscribe)、
  5. 4、推拉模型(Push-Pull)。
  6. 在实际中可以根据应用需要,组合其中的2种或多种模型来形成自己的解决方案。

saltstack-master与minion通信就采用了zeromq的请求回应模型(request-reply)和发布订阅模型(publish-subscribe):

 

 

  1. pub/sub模式介绍
  2. 发布/订阅模式,全称为Publish/Subscribe,支持多个发布者/多订阅者,使用在消息单向传输的应用场景,消息总是从发布者发送到订阅者。

主要功能

 

 

  1. 远程执行
  2. 配置管理

二、SaltStack认证方式

 
  1. 1. minion 在第一次启动时候,会在 /etc/salt/pki/minion/ 下自动生成 minion.pem(private key) minion.pub(public key), 然后将 minion.pub 发送给 master
  2. 2. master 在第一次启动时,会在 /etc/salt/pki/master/ 下自动生成 master.pem master.pub ;并且会接收到 minion public key , 通过 salt-key 命令接收 minion public key 会在 master /etc/salt/pki/master/minions目录下存放以 minion id 命令的 public key ;验证成功后同时 minion 会保存一份 master public key minion /etc/salt/pki/minion/minion_master.pub里。

1、Salt认证原理总结

 

 

minion将自己的公钥发送给master
master认证后再将自己的公钥也发送给minion端

 

 

2、salt-key命令解释密钥管理,通常在master端执行):

 

 

图片

 

 

salt-key -L
Accepted Keys: #已经接受的key
Denied Keys: #拒绝的key
Unaccepted Keys: #未加入的key
Rejected Keys: #吊销的key

 

 

常用参数
-L #查看KEY状态
-A #允许所有
-D #删除所有
-a #认证指定的key
-d #删除指定的key
-r #注销掉指定key(该状态为未被认证)

 

 

3、认证后状态:

 

 

图片

 

 

图片

 

 

/、salt-run

 

 

  1. 该命令执行runner(salt带的或者自定义的
  2. ,通常在master端执行,比如经常用到的manage

salt-run [options] [runner.func]

 

 

  1. salt-run manage.status ##查看所有minion状态
  2. salt-run manage.down ##查看所有没在线minion
  3. salt-run manged.up ##查看所有在线minion

三、Saltstack远程执行

 

远程执行是 Saltstack 的核心功能之一。主要使用 salt 模块批量给选定的 minion 端执行相应的命令,并获得返回结果。

 

 

1、判断 salt 的 minion 主机是否存活

 

 

图片

 

 

  1. salt saltstack自带的一个命令
  2. * 表示目标主机,这里表示所有目标主机
  3. test.ping testsaltstack中的一个模块,ping则是这个模块下面的一个方法

2、saltstack使用 cmd.run模块远程执行shell命令

 

 

『修改防火墙配置文件』

 

 

master:

 

 

图片

 

 

  1. salt-cp -- 分发文件到minion上,不支持目录分发,通常在master运行

slave:
验证

 

 

图片

 

 

四、Saltstack配置管理

 
  1. SLS(代表SaLt State文件)是Salt State系统的核心。SLS描述了系统的目标状态,由格式简单的数据构成。这经常被称作配置管理。首先,在master上面定义salt的主目录,默认是在/srv/salt/下面。

Salt 通过State模块来进行文件的管理;通过YAML语法来描述,后缀是.sls的文件

 

 

1、定义环境目录

 

 

图片

 

 

2、创建上面定义的目录并重启服务

 

 

3、编写sls文件(安装vim)

 

 

图片

 

 

4、使用salt命令的state状态模块让minion应用配置

 

 

图片

 

 

五、Saltstack常用配置

 
  1. 1Salt Master配置----Salt Master端的配置文件/etc/salt/master,常用配置如下:

interface: //指定bind 的地址(默认为0.0.0.0)

 

 

publish_port: //指定发布端口(默认为4505)

 

 

ret_port: //指定结果返回端口, 与minion配置文件中的master_port对应(默认为4506)

 

 

user: //指定master进程的运行用户,如果调整, 则需要调整部分目录的权限(默认为root)

 

 

timeout: //指定timeout时间, 如果minion规模庞大或网络状况不好,建议增大该值(默认5s)

 

 

keep_jobs: //minion执行结果返回master, master会缓存到本地的cachedir目录,该参数指定缓存多长时间,可查看之间执行结果会占用磁盘空间(默认为24h)

 

 

job_cache: //master是否缓存执行结果,如果规模庞大(超过5000台),建议使用其他方式来存储jobs,关闭本选项(默认为True)

 

 

file_recv : //是否允许minion传送文件到master 上(默认是Flase)

 

 

file_roots: //指定file server目录, 默认为:
file_roots:
base:
- /srv/salt

 

 

pillar_roots : //指定pillar 目录, 默认为:
pillar_roots:
base:
- /srv/pillar

 

 

log_level: //日志级别
支持的日志级别有’garbage’, ‘trace’, ‘debug’, info’, ‘warning’, ‘error’, ‘critical ’ ( 默认为’warning’)

 

 

  1. 2Salt Minion端的配置文件/etc/salt/minion,常用配置如下:

master: //指定master 主机(默认为salt)

 

 

master_port: //指定认证和执行结果发送到master的哪个端口, 与master配置文件中的ret_port对应(默认为4506)

 

 

id: //指定本minion的标识, salt内部使用id作为标识(默认为主机名)

 

 

user: //指定运行minion的用户.由于安装包,启动服务等操作需要特权用户, 推荐使用root( 默认为root)

 

 

cache_jobs : //minion是否缓存执行结果(默认为False)

 

 

backup_mode: //在文件操作(file.managed 或file.recurse) 时, 如果文件发送变更,指定备份目录.当前有效

 

 

providers : //指定模块对应的providers, 如在RHEL系列中, pkg对应的providers 是yumpkg5

 

 

renderer: //指定配置管理系统中的渲染器(默认值为:yaml_jinja )

 

 

file_client : //指定file clinet 默认去哪里(remote 或local) 寻找文件(默认值为remote)

 

 

loglevel: //指定日志级别(默认为warning)

 

 

tcp_keepalive : //minion 是否与master 保持keepalive 检查, zeromq3(默认为True)

 

saltstack-2

 

SaltStack-远程执行:

 

1.多种判断需要执行Minion的方法:

 

 

  1. salt -L 'slave01, slave02' cmd.run 'w' #通过列表
  2. salt -S '172.16.1.213' test.ping #通过ip判断
  3. salt -S '172.16.1.0/24' test.ping #通过网段判断
  4. vim /etc/salt/master #配置nodegroups来分组
  5. nodegroups:
  6. web: 'slave01,slave02'
  7. salt -N web test.ping #通过-N来指定

saltstack的配置管理:

 

一、YAML

 

 

1、sls采用YAML的格式编写

 

 

  1. 1.空格和Tabs
  2. YAML中不要使用Tab
  3. 2.缩进
  4. YAML推荐缩进为2个空格,**’ : , - ’**后面缩进1个空格再写
  5. 3.数字会解析成数字
  6. mode: 0644会解析成mode: 644,可用’括住防止mode: 0644′此情况
  7. 4.YAML不允许双简写
  8. 5.下划线将会被删除
  9. 有出现下划线要用 " " 括起来

二、高级状态top.sls
如果我有很多sls文件,并不能一个文件一个文件执行的.这时就需要高级状态了.

 

 

1、”top.sls”文件必须放在base环境下。

 

 

  1. file_roots:
  2. base:
  3. - /srv/salt/

2、编辑salt的入口文件:

 

 

vim top.sls

 

 

  1. base:
  2. 'slave01':
  3. - apache
  4. 'slave02':
  5. - apache

3、状态之间的关系

 

 

  1. 1.我依赖谁:只要依赖的状态为正常,我就执行。
  2. - require:
  3. - pkg: lamp-pkg (状态模块:状态名)
  4. - file: apache-config
  5. 2.我被谁依赖:(一般用不到)
  6. - require_in: (写在被依赖方)
  7. - service: mysql-service
  8. 3.我监控谁:监控某个状态,只有发生变化我才执行,
  9. - watch:
  10. 4.我被谁监控:(一般用不到)
  11. - watch_in:
  12. 5.我引用谁:
  13. include:

例子:vim apache.sls #安装apache并启动

 

 

  1. apache-install: # 名称声明(id声明) 高级状态id必须唯一 ps: 一个id声明下,状态模块不能重复使用。
  2. pkg.installed: # 安装模块 ps:python里模块的应用是通过“.”来进行的。
  3. - names: # 选项声明
  4. - httpd # 具体的选项,是一个list。
  5. - mod_ssl
  6. apache-service:
  7. service.running:
  8. - name: httpd
  9. - enable: True # 允许开机启动
  10. - reload: True # 允许重载
  11. - require: # 他们都正常执行了,我才执行。
  12. - pkg: lamp-pkg
  13. - file: apapche-config
  14. - watch: #如果监控到apache-config的状态发生改变(就是配置文件改变了),就重载服务。
  15. - file: apache-config

salt ‘*’ state.highstate #通过入口文件执行安装apache的脚本
salt ‘*’ state.highstate test=True #生产环境上面命令很危险,要先测试下

 

 

三、 jinja模版

 

 

通过jinja模板可以为不同服务器定义各自的变量。

 

 

二种分隔符

 

 

  1. {{...}} 表示变量的引用 #用于执行诸如 for 循环 或赋值的语句
  2. {%...%} 表示表达式 #把表达式的结果打印到模板上

相当于在jinja模版里,定义了一个变量,模版配置文件里面再去调用。
可以在模版文件里,也可以写在sls文件里,然后模版文件直接调用。

 

 

(1)、直接调用

 

 

install.sls文件

 

 

  1. install-apache:
  2. pkg.installed:
  3. - pkgs:
  4. - httpd
  5. file.managed:
  6. - name: /etc/httpd/conf/httpd.conf
  7. - source: salt://apache/files/httpd.conf
  8. - template: jinja
  9. - context:
  10. port: 80
  11. service.running:
  12. - name: httpd
  13. - relaod: True
  14. - watch:
  15. - file: install-apache

模板文件
vim files/httpd.conf

 

 

  1. listen {{ port }}

使用grains变量

 

 

(2) 、在普通文件的使用grains变量

 

 

  1. vim /srv/salt/apache/instsll.sls
  2. - template: jinja
  3. - context:
  4. port: 80
  5. host: {{ grains['ipv4'][1] }}

使用pillar变量

 

 

  1. vim /src/pillar/web/vars.sls
  2. {% if grains['fqdn'] == 'server2' %}
  3. webserver: httpd
  4. ip: 172.25.60.2
  5. {% elif grains['fqdn'] == 'server3' %}
  6. webserver: nginx
  7. {% endif %}

(4)、在普通文件的使用pillar变量

 

 

  1. vim /srv/salt/apache/instsll.sls
  2. - template: jinja
  3. - context:
  4. port: 80
  5. host:{{ pillar['ip'] }}

vim files/httpd.conf

 

 

  1. listen {{ host }}:{{ port }}

更改模板文件
vim files/httpd.conf

 

 

  1. listen {{ host }}:{{ port }}

(5)、直接引用pillar变量

 

 

vim files/httpd.conf

 

 

  1. Listen {{ pillar['ip'] }}:{{ port }}

四、数据系统Grains

 

 

(3)、直接引用grains变量

 

 

1.查看客户机的所有grains信息:

 

 

  1. salt 'slave01' grains.items

2.查看客户机的IP地址:

 

 

  1. salt 'slave01' grains.get ip_interfaces:eth0

3.通过grains判断在哪些客户端上执行‘uptime’命令:

 

 

  1. salt -G 'os:Centos' cmd.run 'uptime'

4.客户端自定义grains并通过top筛选:vim /etc/salt/grains #在客户端定义,写完要重启minion

 

 

  1. roles:
  2. - webserver

vim top.sls #服务端

 

 

  1. base:
  2. 'roles:webserver': #匹配roles变量为webserver的主机
  3. - match: grain #要定义通过grain方法获取参数
  4. - apache

salt ‘*’ state.highstate #通过top筛选匹配的grain

 

 

5.通过master刷新minion的grains参数:

 

 

  1. salt '*' saltutil.sync_grains

五、数据系统Pillar

 

 

Pillar是动态的,给特定的minion指定特定的数据 ,只有指定的minion可以看到(所有相对安全,可以用来设置密码)。

 

 

1.在服务端创建Pillar的base环境:
vim /etc/salt/master

 

 

  1. pillar_roots:
  2. base:
  3. - /srv/pillar

mkdir -p /srv/pillar
/etc/init.d/salt-master restart

 

 

2.自己创建pillar:
vim /srv/pillar/apache.sls

 

 

  1. my-pillar:
  2. {%if grains['os'] == 'CentOS'%}
  3. apache: httpd
  4. {% elif grains['os'] == 'Debian' %}
  5. apache: apache2
  6. {% endif %}

vim /srv/pillar/top.sls

 

 

  1. #配置在哪台主机上面使用pillar
  2. base:
  3. '1':
  4. - apache

salt ‘*’ saltutil.refresh_pillar #配置完成后要记得刷新pillar
salt ‘*’ pillar.items #查看配置的pillar

 

 

3.刷新pillar:

 

 

  1. salt '*' saltutil.refresh_pillar

4.通过pillar来筛选哪些minion执行操作:

 

 

    1. salt -I "apache:httpd" cmd.run 'uptime'

saltstack配置文件简介

 

4.1master配置文件详解

 

 

saltstack大部分配置都已经指定了默认值,只需要根据实际需求进行修改就行。

 

 

vim /etc/salt/master

 

配置项及默认值 注释
主配置设置:
default_include: master.d/*.conf 指定include的目录和文件
interface: 0.0.0.0 端口监听地址
ipv6: FALSE IPV6地址是否监听
publish_port: ZeroMQ消息发布端口
user: root saltstack运行的用户
max_open_files: 100000 最大文件打开限制不能高于硬限制,每个连接至少要使用一个文件描述符。
worker_threads: 5 saltstack工作的线程数目,不能低于3
ret_port:4506 saltstack的消息接听端口
pidfile: /var/run/salt-master.pid salt-master的进程pid文件位置
root_dir: / salt-stack工作的根目录,改变它可以使salt从另外一个目录开始运行,好比chroot
pki_dir: /etc/salt/pki/master 公钥存储目录
cachedir: /var/cache/salt/master jobs和cache的缓存目录
extension_modules: 自定义模块的目录
module_dirs: 自定义模块的同步目录
verify_env: True 服务启动时进行权限设置与验证
keep_jobs: 24 设置jobs缓存的过期时间,单位是小时
timeout: 5 设置salt命令和api的默认超时值。 默认值为5秒。
loop_interval: 60 saltstack进程检测周期,清理作业缓存并执行调度程序等。单位秒
output: nested 设置salt命令使用的默认输出器。
show_timeout: True 开启minion timeout提示
color: True 开启output颜色提示
strip_colors: False 不要从嵌套结果和状态输出中剥离彩色输出(默认情况下为true)。
sock_dir: /var/run/salt/master 设置用于保存unix套接字的目录
enable_gpu_grains: False 设置grains收集主控制器的GPU信息
job_cache: True jobs缓存,对于大型部署(超过5000次)可能是负担,不建议开启。
minion_data_cache: True 开启minion的grains和pillar数据的缓存
event_return: mysql 设置return存储
event_return_queue: 0 启用event_returns可能会对存储系统造成重大负担。默认情况不排队。
max_event_size: 1048576 允许消息的最大大小,该值以字节表示。
ping_on_rotate: False 建议通过使用’key’标签监听’aes_key_rotate’事件来处理此事件,并适当地执行。
preserve_minion_cache: False 删除key时是否删除cache数据
con_cache: False 此高速缓存并大大提高了max_minions的性能。
安全设定:
open_mode: False Ture的话,就会关闭身份验证,这仅适用于高度安全的环境
auto_accept: False 设置自动签证,默认是False不自动签证
autosign_timeout: 120 自动签证的超时时间,单位是秒
autosign_file: /etc/salt/autosign.conf 定义自动签名规则文件,支持正则表达式以及全局行
autoreject_file: /etc/salt/autoreject.conf 定义自动拒绝签证的规则文件,可以覆盖autosign_file定义的成员资格
permissive_pki_access: False 设置pki文件访问权限
client_acl: 定义用户模块执行限制
client_acl_blacklist: 定义模块和用户黑名单
sudo_acl: False 关闭利用sudo后client_acl限制
external_auth: 指定外部认证方式
token_expire: 43200 token过期时间,单位是秒,默认是12小时
file_recv: False 是否允许minions推送文件到master端
file_recv_max_size: 100 对可以推送到主机的文件的大小设置一个硬限制。单位是MB 默认值:100
Salt-SSH配置:
roster_file: /etc/salt/roster roster文件的路径
ssh_minion_opts: salt-ssh不使用本地配置。 可以在名册上(“minion_opts”)上以覆盖方式覆盖
主模块管理
runner_dirs: [] 管理主模块的加载方式。
cython_enable: False 是否为主模块启用Cython
状态系统设置
state_top: top.sls 设置state入口文件
master_tops: 设置其他的top方式
external_nodes: None 允许Salt收集通常放在顶级文件中的数据是将返回ENC数据的可执行文件。
renderer: yaml_jinja 设置呈现状态数据的方式
jinja_trim_blocks: False 如果这被设置为True,则在删除Jinja块后的第一个换行符。默认为False
jinja_lstrip_blocks: False 如果将此设置为True,则前导空格和制表符将从行的开头移除到块。 默认为False
failhard: False failhard选项会在状态执行中检测到第一个故障后立即停止,默认为False
state_verbose: True
state_output: full 默认情况下,打印所有数据。
state_aggregate: False 自动聚合支持mod_aggregate的所有状态或传递状态模块名称列表以自动聚合这些类型。
state_events: False 在状态运行中的每个功能完成执行时发送进度事件。
文件服务器设置
file_roots: 文件服务器的根目录
hash_type: md5 文件检验的hash类型,支持md5,sha1,sha224,sha256,sha384和sha512。
file_buffer_size: 1048576 文件服务器中的缓冲区大小
file_ignore_regex: 设置同步file忽略文件正则
file_ignore_glob:
fileserver_backend: Salt支持一个模块化的文件服务器后端系统,该系统允许master直接链接到第三方系统来收集和管理可用于客户端的文件。
fileserver_followsymlinks: False 设置fireserver允许文件链接
fileserver_ignoresymlinks: True 忽略fireserver允许文件链接
fileserver_limit_traversal: False 设置fireserver的遍历限制
fileserver_events: False 文件服务器可以在每次更新文件服务器时触发事件,默认情况下禁用
gitfs_provider: gitpython Gitfs驱动可以由两个python模块之一提供:GitPython或pygit2。 如果使用pygit2,则还必须安装libgit2和git。
gitfs_remotes: fileserver gitfs_remotes地址
gitfs_ssl_verify: True gitfs_ssl_verify选项指定在联系gitfs后端时是否忽略ssl证书错误。默认值True以外的任何值都是安全性问题
gitfs_root: somefolder/otherfolder gitfs_root选项可以从存储库中的子目录中提供文件。 路径是相对于存储库的根而定义的,默认为存储库根。
Pillar设置
pillar_roots: 设置pillar_roots目录
ext_pillar: 设置ext_pillar方式
ext_pillar_first: False ext_pillar_first选项允许在文件系统illar之前填充外部pillar源。
pillar_gitfs_ssl_verify: True 开启证书验证,将此标志设置为除默认值True以外的任何值都是安全性问题
pillar_opts: False 开启pillar读取opts参数
pillar_safe_render_error: True 因为错误可能包含模板数据,将提供不该有的信息,如密码。当设置为true时,错误消息将仅显示:呈现SLS’my.sls’失败。
pillar_source_merging_strategy: smart 配置不同来源之间的合并策略,它接受四个值:recurse,aggregate,overwrite或smart。
Syndic settings
order_masters: False 设置开启syndic
syndic_master: masterofmaster 如果这个master将运行一个salt syndic守护进程,设置syndic_master的地址
syndic_master_port: 4506 设置syndic_master的监听端口
syndic_pidfile: /var/run/salt-syndic.pid 设置syndic的pid文件
syndic_log_file: syndic.log 设置syndic的日志文件
对等发布设置
peer: 对等设置
peer_run: 此设置与对等设置相同,除了打开运行程序而不是模块功能。 所有对等运行程序支持都默认关闭,必须在使用前启用。
日志设置
log_file: /var/log/salt/master naster日志文件位置
log_level: warning 日志级别
log_level_logfile: warning 日志记录级别
log_datefmt: ‘%H:%M:%S’ 日志时间格式
log_datefmt_logfile: ‘%Y-%m-%d %H:%M:%S’ 日志文件的记录的时间格式
log_fmt_console: 设置console日志格式
log_fmt_logfile: 设置日志记录日志格式
log_granular_levels: {} 设置指定lib库的日志级别
节点组
nodegroups: 设置了一个节点组后面指定组以及组里面有哪些主机,配置文件里面有例子
范围集群设置
range_server: range:80 提供集群信息的范围服务器(和可选端口)
windows软件回收设置
win_repo: ‘/srv/salt/win/repo’ 回收主机的文件
win_repo_mastercachefile: master的回购缓存文件的位置
win_gitrepos: git存储库列表包含在本地的repo中
Returner设置
return: mysql minion返回的结果被什么使用
博文来自:www.51niux.com

 

 

4.2 minion配置文件详解

 

 

vim /etc/salt/minion

 

配置文件及默认值 注释
主配置文件设置
default_include: minion.d/*.conf include配置文件
master: salt master端的地址
random_master: False 设置多master随机请求
master_shuffle: False 如果master_type设置为故障转移这里启用
master_type: str 配置为故障转移,通过将此值设置为“str”来配置多个热主机。
master_alive_interval: 30 设置了故障转移,默认是30秒轮询检查一次,要完全禁用间隔,请将值设置为-1。
ipv6: False 设置Ipv6地址监听
retry_dns: 30 解析master主机名失败之后30秒再尝试,设置为0为不尝试
master_port: 4506 设置主应答和认证服务器使用的端口。
user: root 运行salt的用户
sudo_user: saltdev 设置sudo_user将导致salt将sudo下的所有执行模块运行到sudo_user中给出的用户。
pidfile: /var/run/salt-minion.pid 守护进程的pid文件
root_dir: / saltstack的工作目录
pki_dir: /etc/salt/pki/minion 存储pki信息的目录
id: 明确地声明这个使用的id,如果设置,id将是python调用返回的主机名。
append_domain: 将域附加到主机名这对于socket.getfqdn()不会产生FQDN(例如Solaris)的系统
grains: 设置grains信息
cachedir: /var/cache/salt/minion minion的cache数据目录
verify_env: True 在启动时验证并设置配置目录的权限。
cache_jobs: False 是否开启jobs的缓存
sock_dir: /var/run/salt/minion minion的sock目录
output: nested 设置salt-call命令使用的默认输出器。 默认值为“nested”。
color: True 默认输出为彩色。 要禁用彩色输出,请将颜色值设置为False。
strip_colors: False 从嵌套结果和状态输出中剥离彩色输出。
backup_mode: minion 设置备份文件,唯一有效的设置是minion,默认禁用
acceptance_wait_time: 10 等待master接收minion的公钥,10秒尝试一次直到成功。
acceptance_wait_time_max: 0 等待公钥认证的最大值。 如果设置为零,重新连接尝试之间的时间将保持不变。
rejected_retry: False 设置如果master拒绝minion的公钥,是否继续尝试而不是退出。
random_reauth_delay: 60 当主密钥更改时,minion将尝试重新认证,设置随机数防止客户端同时向master端请求。
auth_timeout: 60 设置等待认证的超时时间为60秒,然后再重新发起请求直到成功连接为止。
auth_tries: 7 尝试验证时可接受的SaltReqTimeoutError连续数。
auth_safemode: False 在ping_interval期间SaltReqTimeoutError导致身份验证失败是否重新启动子服务进程。
ping_interval: 0 Ping Master确保连接活着(单位分钟)。
loop_interval: 60 在评估调度程序和运行清理任务之间等待几分钟的时间。这默认为60秒
grains_refresh_every: 1 定期检查其grains,10分钟是合理值,单位是分钟。
grains_cache: False 是否做grains的缓存
grains_cache_expiration: 300 启用grains缓存之后这里才有作用,缓存过期时间,单位是秒
ipc_mode: ipc Windows平台缺少posix IPC,必须依赖于较慢的基于TCP的进程间通信。
tcp_pub_port: 4510 tcp模式下minion的pub端口
tcp_pull_port: 4511 tcp模式下minion的pull端口
max_event_size: 1048576 最大消息的大小,单位为字节。
master_alive_interval: 30 轮询检测master是否从故障恢复的秒数。
minion模块设置
disable_modules: [cmd,test] 禁用特定的模块
disable_returners: []
modules_max_memory: -1 为导入的模块指定最大大小单位是字节。此功能目前仅支持* nix操作系统需要psutil。
状态管理设置
renderer: yaml_jinja 状态管理系统执行所有状态模板默认渲染器是yaml_jinja。
failhard: False failhard选项会在状态执行中检测到第一个故障后立即停止。 默认为False。
autoload_dynamic_modules: True 在运行之前自动加载动态模块
clean_dynamic_modules: True 如果动态模块不在服务器上面将会自动从服务器中删除
environment: None 设置minion的运行环境。用来做环境隔离用的。
state_top: top.sls 设置state入口文件
文件目录设置
file_client: remote 设置文件客户端。 默认是remote远程。可以设置为local从本地查找文件。
file_roots:/srv/salt

 

 

本地文件的file服务目录
fileserver_limit_traversal: False Salt文件服务器是否将完全递归到所有定义的环境中以尝试查找文件。
hash_type: md5 文件检验hash类型
pillar_roots:/srv/pillar 果file_client设置为local,则会在本地搜索Salt pillar,这里是其目录
安全设定
open_mode: False Ture的话,就会关闭身份验证,这仅适用于高度安全的环境
permissive_pki_access: False 设置pki文件访问权限
state_verbose: True 设置可用于更改状态系统数据打印到显示器的方式。 默认情况下打印所有数据。
state_output: full
state_output_diff: False 是否忽略混乱日志
state_output_profile: True 更改每个状态运行时是否显示配置文件信息。
master_finger: ” 在主密钥交换之前,主公钥的指纹验证salt主人的身份。这里是master的指纹。
线程设置
multiprocessing: True 是否开启多线程支持接,收到一个发布时,会生成一个新进程,并在其中执行该命令。
日志设置
log_file: /var/log/salt/minion minion的日志文件位置
log_level: warning 日志级别
log_level_logfile: warning 日志记录级别
log_datefmt: ‘%H:%M:%S’ 日志时间格式
log_datefmt_logfile: ‘%Y-%m-%d %H:%M:%S’ 日志文件的记录的时间格式
log_fmt_console: 设置console日志格式
log_fmt_logfile: 设置日志记录日志格式
log_granular_levels: {} 设置指定lib库的日志级别
zmq_monitor: False 是否记录的所有事件将包括字符串’ZeroMQ事件’。
长连接配置
tcp_keepalive: True 是否开启tcp长连接
tcp_keepalive_idle: 300 默认300在5分钟后发送第一个keepalive,在Linux上,OS默认(-1)通常为7200秒
tcp_keepalive_cnt: -1 多少个丢失的探测器来考虑连接丢失。默认值-1使用操作系统默认值通常在Linux上为9
tcp_keepalive_intvl: -1 keepalives的检测频率。 默认值-1使用操作系统默认值,通常在Linux上为75秒
Returner设置
return: mysql minion返回的结果被什么使用

posted @ 2021-03-16 10:27  zhangshan  阅读(16)  评论(0编辑  收藏  举报