saltstack是基于python开发的一套C/S架构配置管理工具,它的底层使用ZeroMQ消息队列pub/sub方式通讯,使用SSL证书签发的方式进行认证管理。ZeroMQ使SaltStack能快速在成千上万台机器上进行各类操做,以前已经介绍过了puppet mco的框架,比较相似。并且采用RSA Key方式确认身份,传输采用AES加密,使传输的安全性获得保障。node
saltstack是基于C/S架构的服务模式,服务器端叫作Master,客户端叫做Minion,而且有消息队列中的发布与订阅(pub/sub)服务模式,minion与master之间经过ZeroMQ消息队列通讯。Master和Minion端都以守护进程的模式运行,一直监听配置文件里面定义的ret_port也就是4506端口(接收minion请求)和publish_port也就是4505端口(ZMQ的发布消息)。当minion运行时会自动链接到配置文件里面定义的Master地址ret_port端口进行链接认证。python
以下图(salt-master端的4505和4506端口,被两个客户端(192.168.1.102,192.168.1.104)所链接。):mysql
第一步:salt stack的master与minion之间经过ZeroMq进行消息传递,使用了ZeroMq的发布-订阅模式,链接方式包括tcp,ipc。
第二步:salt命令,以ls查看为例,将cmd.run ls命令从salt.client.LocalClient.cmd_cli发布到master,获取一个Jobid,根据jobid获取命令执行结果。
第三步:master接收到命令后,将要执行的命令发送给客户端minion。
第四步:minion从消息总线上接收到要处理的命令,交给minion._handle_aes处理。
第五步:minion._handle_aes发起一个本地线程调用cmdmod执行ls命令。线程执行完ls后,调用minion._return_pub方法,将执行结果经过消息总线返回给master。
第六步:master接收到客户端返回的结果,调用master._handle_aes方法,将结果写的文件中。
第七步:salt.client.LocalClient.cmd_cli经过轮询获取Job执行结果,将结果输出到终端。git
saltstack对于python版本和python模块有必定的要求。web
Python | 版本大于2.6或版本小于3.0 |
msgpack-python | saltstack消息交换库 |
YAML | saltstack配置解析定义语法 |
Jinja2 | saltstack states配置模板 |
MarkupSafe | Python unicode转换库 |
apache-libcloud | saltstack对云架构编排库 |
Requests | HTTP Python库 |
ZeroMQ | saltstack消息系统 |
pyzmq | ZeroMQ Python库 |
PyCrypto | Python密码库 |
M2Crypto | Openssl Python包装库 |
官网地址:https://docs.saltstack.com正则表达式
Centos服务器安装地址:https://repo.saltstack.com/#rhelsql
若是是Centos7系统: yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest-1.el7.noarch.rpmdocker
若是是Centos6系统: yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest-1.el6.noarch.rpm数据库
或者直接编写一个源文件:apache
# cat /etc/yum.repos.d/salt-latest.repo
[salt-latest]
name=SaltStack Latest Release Channel for RHEL/Centos $releasever
baseurl=https://repo.saltstack.com/yum/redhat/$releasever/$basearch/latest
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=https://repo.saltstack.com/yum/redhat/$releasever/$basearch/latest/SALTSTACK-GPG-KEY.pub
#yum install salt-master -y
#yum install salt-minion -y
#yum install salt-ssh -y
#yum install salt-syndic -y
#yum install salt-cloud -y
#yum install salt-api -y
#yum install salt-minion -y
这里先保持默认配置直接启动服务,后面再涉及到配置文件的修改。
# service salt-master restart
# cat /etc/salt/minion #修改配置文件(注意每一个冒号后面都要跟一个空格,这是书写规范)
master: 192.168.1.101 #这里要指向salt-master服务器,能够是IP,也能够是域名,也能够是主机名,不过主机名就要写/etc/hosts了,若是用的是内部DNS服务器的话能够用主机名或者域名的形式。
id: zwidc_kvm_192.168.1.104 #这里定义后,master认证证书那里就以这个名称为主,默认这里是注释状态。我的比较偏向这里设置,由于机器众多外加主机业务的变化,我想这里的标识能够在初始化机器的时候就设置好而不受主机名以及主机名变化的影响,由于通常IP和机器类型和机器所在的机房是很难变化的,因此这里不设置的那么细化,方便管理工具的部署和管理。
注(这里有一个坑):
#上面这个图不陌生,这是编写puppet的时候的主机名,如今要搞salt环境了,个人主机名已经变成agent2.salt之类了,为啥master端那边收到的证书请求,仍是旧主机名的形式呢,并且重启服务机器都没用。
这是由于你再没有设置id:这个惟一标识的状况下,默认用的就是主机名做为id的值,可是呢,你是先启动了minion服务,后改的主机名,这时候你无论怎么重启minion的服务都木有用了,这是由于一个文件。
是由于你启动minion服务后,会产生/etc/salt/minion_id ,而这个文件里面的内容不会由于你主机名的改变、服务的重启、机器的重启而改变,因此若是你的主机名发送了变化,想让master端那里的证书认证名称也跟着发送变化的话,就要删除/etc/salt/minion_id文件或者清空/etc/salt/minion_id文件里面的内容,而后重启minion服务。
#关于主机名的设置,我的的习惯是:ydidc-server-web-101-223-200-2.douyu, ydidc-docker-cache-101-223-200-3.douwan,相似于这种机房名称、主机类型是服务器仍是虚拟机、机器业务类型、IP地址、公司域名后缀的形式。不建议用业务后面跟编号的形式,由于你加了编号,就有了顺序,可是机器所负责的业务可能要更换,机器可能要撤掉,那么你的编号就是不连贯乱的,可是IP具备惟一性,不会出现由于机器下架业务调整主机名变动形成看着不连贯很乱的现象,若是一个机房没有多网段能够直接后一位或者后两位。
#id: zwidc_kvm_192.168.1.104 #注意冒号后面要空一格,否则启动minion报错:ERROR: Unable to look-up config values for /etc/salt
# service salt-minion restart #设置完毕后重启minion服务
# salt-key -L #查看当前证书的签证状况(若是咱们客户端的证书在未验证Unaccepted Keys: 的下面。)
Unaccepted Keys:
zwidc_kvm_192.168.1.104
# salt-key -a zwidc_kvm_192.168.1.104 -y #经过此证书的验证
# salt-key -L #再次查看(发现出如今了Accepted Keys:下面表示已经经过了验证,能够创建通讯了)
# salt-key -L #再次查看(发现出如今了Accepted Keys:下面表示已经经过了验证,能够创建通讯了)
#经过端口查看,返现有一台机器与master端的端口创建了链接。
注:
master 秘钥对默认存储在/etc/salt/pki/master/master.pub /etc/salt/pki/master/master.pem
master 端认证的公钥存储在:/etc/salt/pki/master/minions/
minion 秘钥对默认存储在/etc/salt/pki/minion/minion.pub /etc/salt/pki/minion/minion.pem
minion 存放的master公钥/etc/salt/pki/minion/minion_master.pub
minion_id 默认存储在/etc/salt/minion_id
# salt 'zwidc_kvm_192.168.1.104' test.ping #测试服务器端是否能控制客户端。
# salt 'zwidc_kvm_192.168.1.104' cmd.run "hostname" #让客户端执行一个命令。
# man salt 或者 # salt -h 均可以查看salt命令使用方法:
# salt -h
Usage: salt [options] '<target>' <function> [arguments]
Options(选项):
--version : 查看saltstack软件的版本号。
--versions-report : 查看saltstack软件以及依赖包的版本号。
-h, --help : 查看帮助信息。
--saltfile=SALTFILE:指定saltfile的路径。 若是没有经过,将在当前工做目录中搜索一个。
-c CONFIG_DIR, --config-dir=CONFIG_DIR:指定配置文件的目录(默认是/etc/salt/)。
-t TIMEOUT, --timeout=TIMEOUT:指定超时时间默认是5秒。
--hard-crash:捕捉到original异常不退出默认关闭。
-s, --static:以组的形式返回全部minion的数据。
-p, --progress:显示进度图,须要progressbar的python包。
--failhard :在第一个执行错误返回以后中止批处理。
--async : 异步执行。
--subset=SUBSET : 对目标minions的随机子集执行程序. minions在执行前会先验证是否存在该命名的函数,再去执行
-v, --verbose : 打开命令详细,显示jid和活动的工做查询
--hide-timeout : 隐藏超时时间。
--show-jid : 显示任务的jid。
-b BATCH, --batch=BATCH, --batch-size=BATC : 按照百分比执行任务。
-a EAUTH, --auth=EAUTH, --eauth=EAUTH, --external-auth=EAUTH : 指定外部认证方式。
-T, --make-token : 生成master token.
--return=RETURNER : 设置一种替代方法。 默认状况下,salt将从命令将返回数据发送回主服务器,但返回数据能够重定向到任意数量的系统,数据库或应用程序。
--return_config=RETURNER_CONF : 指定命令返回的设置文件。
-d, --doc, --documentation : 查看指定模式或全部模块文档。
--args-separator=ARGS_SEPARATOR : 指定发送命令跟命令参数的分隔符,当用户想把一个命令看成参数发送给另外一个命令执行时。
--summary : 显示汇总信息。
--username=USERNAME : 指定外部认证的用户名。
--password=PASSWORD : 指定外部认证的密码。
--metadata=METADATA : 将元数据传递给Salt,用于搜索做业。
Logging Options(日志相关参数):
-l LOG_LEVEL, --log-level=LOG_LEVEL : 指定日志级别。
--log-file=LOG_FILE : 指定日志记录文件
--log-file-level=LOG_LEVEL_LOGFILE : 日志文件日志记录级别。'all', 'garbage', 'trace', 'debug', 'info', 'warning', 'error','critical', 'quiet'. 默认: 'warning'.
Target Options(目标选择选项):
-E, --pcre : 正则匹配
-L, --list: 列表匹配,目标表达式将被解释为以逗号分隔的列表。
-G, --grain: grains匹配。
--grain-pcre :grains加正则匹配。
-N, --nodegroup:组匹配。
-R, --range:范围匹配。
-C, --compound : 综合匹配(指定多个匹配,空格隔开)。
-I, --pillar : pillar值匹配。
-J, --pillar-pcre : pillar加正则匹配。
-S, --ipcidr : minions网段地址匹配。
Output Options(输出参数):
--out=OUTPUT, --output=OUTPUT : 使用指定的输出器从'salt'命令打印输出。 内置的是 'key', 'yaml', 'overstatestage', 'newline_values_only', 'pprint', 'txt', 'raw', 'virt_query', 'compact', 'json', 'highstate', 'nested', 'quiet', 'no_return'.
--out-indent=OUTPUT_INDENT, --output-indent=OUTPUT_INDENT : 在空格中打印由提供的值缩进的输出。 负值禁用缩进。 仅适用于支持缩进的输出器。
--out-file=OUTPUT_FILE, --output-file=OUTPUT_FILE : 输出到指定文件。
--out-file-append, --output-file-append : 输出附加到指定的文件。
--no-color, --no-colour : 关闭全部的颜色显示。
--force-color, --force-colour : 强制输出颜色显示。
--state-output=STATE_OUTPUT, --state_output=STATE_OUTPUT : 覆盖配置的state_output值输出,指定state格式(full, terse, mixed, changes or filter)输出,默认值是full。
# salt-key -h
Actions:
-l ARG, --list=ARG:显示指定状态的key(支持正则表达式)
-L, --list-all :列出全部公钥。"--list all"已经弃用。
-a ACCEPT, --accept=ACCEPT: 接受指定的公钥(除了挂起的密钥以外,使用--include-all匹配拒绝的密钥),支持正则表达式。
-A, --accept-all :接收全部等待认证的key。
-r REJECT, --reject=REJECT :拒绝指定等待认证的key(支持正则表达式)
-R, --reject-all:拒绝全部等待认证的key。
--include-all: 显示全部状态的key。
-p PRINT, --print=PRINT :打印指定的公钥支持正则表达式。
-P, --print-all:打印全部的公钥。
-d DELETE, --delete=DELET:删除指定的key。
-D, --delete-all:删除全部的key。
-F, --finger-all:显示全部key的指纹信息。
salt-call命令的output和log相关参数与salt命令同样,就不记录了,对一些不一样的参数作下记录。
# salt-call -h
Usage: salt-call [options] <function> [arguments]
Options:
--version: 查看saltstack程序的版本号。
--versions-report: 查看saltstack程序以及依赖包的版本号。
-h, --help:查看帮助信息。
--saltfile=SALTFILE: 指定配置文件。
-c CONFIG_DIR, --config-dir=CONFIG_DIR:指定配置文件目录(默认是/etc/salt/)
--hard-crash: 捕捉到original异常不退出(默认关闭)。
-g, --grains: 返回的信息生成grains。
-m MODULE_DIRS, --module-dirs=MODULE_DIRS: 指定自定义模块目录。
-d, --doc, --documentation: 查看指定模块或者全部模块文档。
--master=MASTER: 指定saltstack master。若是省略此选项,将使用minion config中的主选项。若是设置了多主机,则首先列出的主机将被使用。
--return=RETURNER:设置salt-call将返回数据传递给一个或多个returner接口。
--local:在本地运行salt-call,默认也是在本地运行。
--file-root=FILE_ROOT:指定fire基础根目录。
--pillar-root=PILLAR_ROOT: 指定pillar基础根目录。
--retcode-passthrough:显示salt-call命令返回状态。
--metadata :打印执行元数据以及返回。 这将打印输出器数据,返回码等。
--id=ID:指定一个minion ID.
--skip-grains:不加载grains信息。
--refresh-grains-cache:强制刷新grains信息。
-t AUTH_TIMEOUT, --timeout=AUTH_TIMEOUT:更改运行命令的超时时间,默认 60秒。
上面说到的test.ping和cmd.run 都是内置的用法,其实也就是python自带的模块功能,那么如何知道咱们如今的salt可使用哪些方法呢?
# salt '*' -d|grep :\'|more #就能够以列表的形式查看全部可使用的内置方法。为啥要加过滤呢,由于方法下面还有对应的举例。
# salt 'agent1.salt' sys.list_functions #上面的方法仍是比较粗糙,若是你已经知道了用法,能够用sys.list_functions将全部咱们可使用的函数列出来,固然就指定一个节点就能够了,指定'*'显示结果也是重复。
我如今已经把全部的能够用的模块的函数都查出来了,若是我只想看某个模块所拥有的函数方法呢?
# salt 'agent1.salt' sys.list_functions test #如我能够查看test模块有哪些函数方法能够用。
若是我想查看某个模块,或者某个模块里面某个函数的用法呢?
# salt 'agent1.salt' sys.doc test #查看test全部的方法及用法。
# salt 'agent1.salt' sys.doc test.ping #test.ping具体用法查看。
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: <no default> | 自定义模块的目录 |
module_dirs: <no default> | 自定义模块的同步目录 |
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返回的结果被什么使用 |