本文共 1427 字,大约阅读时间需要 4 分钟。
按照的方式不是一个master+minion的测试环境。
通过salt-key -L
查看一下加入salt环境的minion:
grains是minion启动的时候采集的系统的静态信息,包括cpu、操作系统、文件系统、硬盘等。
显示所有的minion的grians信息:
salt '*' grains.ls
可以将 * 替换为具体monions节点id
上边显示的只是门类,显示具体信息可以使用:
salt '*' grains.items
1、获取系统信息(监控、应用分配)
2、用于分类查找minion 3、与其他模块结合更灵活控制minion有三个路径可以打开自定义grains:
这三个路径优先级逐渐升高
和grains类似,可以将minion数据通过key、value方式存储。可以使用单独的加密session,所以可以传递敏感加密数据。它是运行在master端的。
为salt指定minion的方法,匹配minion的规则。
可以使用-G参数来表示使用grains中变量信息来匹配minion,例如:
salt -G 'os:CentOS' test.ping
对匹配到 os为centos的机器执行ping操作。
通过不同的方式匹配minion,例如:
salt -C 'G@os:CentOS and minion* or E@db.*' test.ping
G@ 表示制动grains匹配,minion*表示以minion开头的minion-id,E@ 表示正则方式匹配minion-id
多个条件可以使用逻辑关系符连接。
在salt-master配置文件中增加nodegroups配置项,
salt runners是在master上运行命令的方法,区别于salt execution model。
salt runners模块包括:
- cache:返回minion缓存数据- ddns:动态dns- fileserver:salt fileserver插件管理- .....
自定义salt runner:
1、添加一个目录到salt-master配置文件run_dirs配置项 2、创建该目录 3、添加python文件到该目录首先添加配置项:
然后创建该目录,并在该目录下写一个python文件:
运行这个自定义runner:
使用salt-run调用runner,后边test表示文件名,hello表示该文件的方法或函数名。打印print输出的是白色,返回值输出为绿色(也可能是其他颜色)
将命令在远程minion上执行。
在远程执行命令的时候需要使用cmd.run
这个模块:
salt '*' cmd.run 'uname -a'
使用cmd.exec_code
模块:
salt '*' cmd.exec_code python 'import sys;print sys.version'