欢迎光临
屌丝博客

Salt 和 Salt-key

在进行salt操作时候,salt ,跟salt-key是两个经常用到的命令,这里对这两个命令的用法进行说明,也对两个命令的参数进行说明,外文水平有限,就当做是参考参考。


Salt 命令

###
[root@localhost salt]# salt --help
Usage: salt [options] '<target>' <function> [arguments]
 
Options:
  --version             版本号
  --versions-report     依赖包版本号
  -h, --help            显示帮助信息
  -c CONFIG_DIR, --config-dir=CONFIG_DIR
                        指定配置文件目录.
                        默认: /etc/salt
  -t TIMEOUT, --timeout=TIMEOUT
                        指定命令超时时间
                        建议默认:5秒
  -s, --static          等到所有minions都执行完了再一起显示数据
                         
  --async               运行所有的salt命令不等待返回结果
  --state-output=STATE_OUTPUT, --state_output=STATE_OUTPUT
                        覆盖掉配置文件中对minion输出内容所定义的 state_output 值
            默认: full
  --subset=SUBSET       对目标minions的随机子集执行程序. 
            minions在执行前会先验证是否存在该命名的函数,再去执行
  -v, --verbose         可以查看详细的命令执行情况
  --show-timeout        显示命令执行超时的 minions
  -b BATCH, --batch=BATCH, --batch-size=BATCH
                        开启salt命令批量执行模式, 既可以指定一批minions,
            也可以用指定百分比的方式确定多少minions批量执行
  -a EAUTH, --auth=EAUTH, --eauth=EAUTH, --extended-auth=EAUTH
                        指定一个扩展的认证系统.
  -T, --make-token      创建并保存一个认证token用于重用.
                        生成的token确保Salt Master在指定的周期内有效.
  --return=RETURNER     设置一个其它的返回方法. 
            默认情况下,salt查询后结果会返回给master, 
            指定return后,数据可以重定向其它的任意数量的系统,数据库或应用.
  -d, --doc, --documentation
            返回指定模块的文档说明,不指定特定的模块则返回全部                    
  --args-separator=ARGS_SEPARATOR
                        指定发送命令跟命令参数的分隔符. 
            当用户想把一个命令当作参数发送给另一个命令执行时,
            是个很好用的选项.
 
  Logging Options:
    指定下面的配置选项会覆盖掉配置文件中对应的配置信息.
 
    -l LOG_LEVEL, --log-level=LOG_LEVEL
                        日志等级. 
            其中一个: 'all', 'garbage', 'trace', 
            'debug', 'info', 'warning', 'error', 'quiet'.
                        默认: 'warning'.
    --log-file=LOG_FILE
                        日志文件路径. 默认: /var/log/salt/master.
    --log-file-level=LOG_LEVEL_LOGFILE
                        日志文件记录等级. 其中一个 'all', 'garbage',
                        'trace', 'debug', 'info', 'warning', 'error', 'quiet'.
                        默认: 'warning'.
 
  Target Options:
    Target Selection Options
 
    -E, --pcre          使用pcre(perl)的正则表达式规则匹配目标
    -L, --list          列出一组用逗号或空格隔开的minions id作为执行目标.
    -G, --grain         使用grain信息中指定的机器作为目标
                        例如: "os:Arch*"   'os:CentOS'
    --grain-pcre        使用基于pcre正则式规则的grain匹配目录
                        例如: "os:Arch.*"
    -N, --nodegroup     使用预先定义的节点组作为匹配目标.
    -R, --range         使用一个范围表达式去查找目标.
            例如: %cluster
    -C, --compound      多条件指定目标,根据多个条件筛选匹配目标
                        类似: salt 'G@os:RedHat and webser* or E@database.*'
    -X, --exsel         Instead of using shell globs use the return code of a
                        function.
    -I, --pillar        使用一个pillar 的值来筛选目标, 
                        例如: "role:production*"
    -S, --ipcidr        基于子网络匹配 (CIDR notation) or IPv4 address.
 
  Output Options:
    配置你的完美输出格式
 
    --out=OUTPUT, --output=OUTPUT
                        指定输出的格式,开发一般用json,默认是yaml
            可选如下: 'no_return',
                        'grains', 'yaml', 'overstatestage', 'json', 'pprint',
                        'nested', 'raw', 'highstate', 'quiet', 'key', 'txt',
                        'virt_query'.
    --out-indent=OUTPUT_INDENT, --output-indent=OUTPUT_INDENT
                        指定行缩进的空格数.
            负数为取消行缩进. 
            只有在输出格式适合行缩进,该参数才有效.
    --out-file=OUTPUT_FILE, --output-file=OUTPUT_FILE
                        内容输出到指定的文件
    --no-color, --no-colour
                        关闭颜色显示
    --force-color, --force-colour
                        强制颜色显示


 salt 使用实例:

测试所有的minion,并显示超时的对象

#
salt '*' test.ping --show-timeout
# 加入 --show-timeout 选项,可以在测试结果中显示连接失败的minion,如果不加该参数,对于测试失败的minion,返回结果不会显示出来

使用json输出方便进行二次开发,调用信息

#
salt '*' status.meminfo --out=json
## 指定json格式的输出,方便作为数据给web进行显示,或是python进行解析

复杂的minion匹配方式

salt 'G@os:RedHat and webser* or E@database.*' status.meminfo

salt-key 命令

sat-key的帮助文件中文信息:

[root@localhost ~]# salt-key --help
Usage: salt-key [options]
 
Salt key 用于管理认证key
 
Options:
  --version            显示版本号后退出
  --versions-report    显示程序的所有依赖包版本号,并退出
  -h, --help           帮助信息
  -c CONFIG_DIR, --config-dir=CONFIG_DIR
                       指定配置目录,默认 :/etc/salt/
                          
  -q, --quiet          安静模式,不输出信息到控制台
  -y, --yes            对所有询问是否继续,回答yes,默认:false
 
  Logging Options:
                   设置loggin选项会覆盖掉配置文件中对日志的配置.
 
    --log-file=LOG_FILE                 
                        指定日志文件路径,默认: /var/log/salt/key.
    --log-file-level=LOG_LEVEL_LOGFILE
                        日志文件等级,可设置下面中的一个值 'all', 'garbage',
                        'trace', 'debug', 'info', 'warning', 'error', 'quiet'.
                        默认: 'warning'.
    --key-logfile=KEY_LOGFILE
                        将所有的输出发送到指定的文件,默认: '/var/log/salt/key'
                        
 
  Output Options:
    配置输出格式
 
    --out=OUTPUT, --output=OUTPUT
                        把salt-key命令的输出信息发送给指定的outputer. 
                可设置为下面参数值 'no_return', 'virt_query'.
                        'grains', 'yaml', 'overstatestage', 'json', 'pprint',
                        'nested', 'raw', 'highstate', 'quiet', 'key', 'txt',
                        
    --out-indent=OUTPUT_INDENT, --output-indent=OUTPUT_INDENT
                        设置输出行缩进的空格数. 
                        负数取消输出缩进编排.仅对使用的outputer有效.
    --out-file=OUTPUT_FILE, --output-file=OUTPUT_FILE
                        把显示输出到指定的文件
    --no-color, --no-colour
                        关闭字体颜色
    --force-color, --force-colour
                        强制开启输出颜色渲染
 
  Actions:
    -l ARG, --list=ARG 
                      打印公钥key. 可设置下面三个值
                "pre", "un", and "unaccepted" 会显示 不许可/未签名 keys. 
                "acc" or "accepted"会显示 许可/已签名 keys. 
                "rej" or "rejected"会显示拒绝的 keys.  
                "all" 会显示所有 keys.
    -L, --list-all      会显示所有公钥,相当月: "--list all"
    -a ACCEPT, --accept=ACCEPT
                        许可指定的公钥(使用--include-all选项
                        可以指定除了挂起的key外的所有reject状态的公钥)
 
    -A, --accept-all    许可所有pending的公钥
    -r REJECT, --reject=REJECT
                        拒绝指定的公钥 (使用--include-all选项
                        可以指定除了挂起的key外的所有accept状态的公钥)
 
    -R, --reject-all    拒接所有pending的公钥
 
    --include-all         配合 accepting/rejecting 选项使用,指定所有非pending状态的公钥
 
    -p PRINT, --print=PRINT
                        打印指定的公钥
    -P, --print-all     Print all public keys
    -d DELETE, --delete=DELETE
                        根据公钥的名称删除公钥
    -D, --delete-all    删除所有 keys
    -f FINGER, --finger=FINGER
                        打印指定key的指纹信息
    -F, --finger-all    打印所有key的指纹信息
 
  Key 常用选项:
    --gen-keys=GEN_KEYS
                        对生成的key配置设置一个salt使用的名称。
    --gen-keys-dir=GEN_KEYS_DIR
                        设置生成key对的放置目录,默认当前目录。default=.
 
--keysize=KEYSIZE                    
                为生成key设置位数, 仅跟--gen-keys选项配合时有效,
                数值大小必须大于2048,否则会被提升至2048位,默认2048
                        default=2048

salt-key的使用实例

#
# 显示所有minion的认证信息
salt-key -L
 
# 接受192.168.0.100的认证信息
salt-key -a 192.168.0.100
 
# 接受192.168.0.100的认证信息,不需要手动验证
salt-key -a 192.168.0.100 -y
 
# 接受192.168.0.100的认证信息,即使该minion是Rejected Keys状态
salt-key -a 192.168.0.100 --include-all
 
# 接受所有 Unaccepted Keys 状态的minion的认证信息
salt-key -A
 
# 拒绝认证192.168.0.100
salt-key -d 192.168.0.100
 
# 拒绝所有 Unaccepted Keys 状态的minion
salt-key -D