# 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 命令html
在命令能够经过salt -h 获取全部参数解释,这里主要介绍一些经常使用参数。node
Options: --version #查看saltstack程序的版本号 --versions-report #查看SaltStack程序以及依赖包的版本号 -h #查看帮助信息 -c CONFIG_DIR ,--config-dir=CONFIG_DIR #指定配置文件目录(默认是/etc/salt/) -t TIMEOUT, --timeout=TIMEOUT #指定超时时间(默认是5秒) --hard-crash #捕捉到original异常不退出(默认关闭) -s, --static #以组的形式返回全部Minion的数据 --async #异步执行 -v, --verbose #verbose模式 --show-timeout #显示minion timeout状态 --show-jid 显示任务jid -b BATCH, --batch=BATCH #按照百分比执行任务 -a EAUTH, --auth=EAUTH,--eauth=EAUTH,--external-auth=EAUTH #指定外部认证 -T, --make-token #生成Master token --return=RETURNER #指定saltstack return (mysql/redis), 将执行结果存储到mysql/redis,须要在配置文件中指定地址帐号密码等 -d, --doc #查看指定模块或者全部模块文档 --args-separator=ARGS_SEPARATOR #设置多个传参指定分隔符(同时执行多个模块) --summary #显示汇总信息 --username=USERNAME #指定外部认证用户名 --password=PASSWORD #指定外部认证密码
(2)salt-key 命令mysql
在master端管理minion key。正则表达式
Options: -l ARG, --list=ARG # 显示指定状态的key(支持正则) -L, #显示全部public keys -a # 接受指定等待的key(支持正则) -A # 接受全部等待认证的key -r key # 拒绝指定等待认证的key(支持正则) -R # 拒绝全部 --include-all # 显示全部状态的key(包含non-pending状态) -p key # 打印指定key(支持正则),显示key内容 -P # 打印全部key -d key # 删除指定key -D # 删除全部key -f key # 显示指定key的指纹信息(支持正则) -F # 显示全部key的指纹信息
# rpm -ql salt-minion /etc/salt/minion # 主配置文件 /etc/salt/minion.d # 扩展配置文件目录 /etc/salt/pki/minion # key /etc/salt/proxy /usr/bin/salt-call # salt minion 端主命令,相似于master端的salt /usr/bin/salt-minion # salt minion 服务命令 /usr/bin/salt-proxy
(1)salt-callredis
客户端主要命令。sql
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信息
在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 匹配less
# 经过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
经过对minion id 进行分组,能够经过组这个概念来批量操做受控主机。分组信息默认保存在 /etc/salt/master。能够经过建立子配置文件的方式来修改存放分组信息的文件。在master的主配置文件中有include配置文件(子配置文件)的设定: default_include: master.d/*.conf , 目录和文件都须要本身来建立。这样能够避免直接操做Master主配置文件 。
分组语法:
注意:分组语法与匹配相似,注意区分。匹配中可使用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,才能加载新的分组信息。
# 每次同时执行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