一、SaltStack的模块及其函数
1、使用命令salt 'salt-minion01' sys.list_modules可以列出所有的模块,可以看到多达146个
2、使用命令salt 'salt-minion01' sys.list_functions test可以列出具体模块(如test模块)的所有函数
3、使用命令salt 'salt-minion01' sys.doc test可以列出具体模块(如test模块)全部函数的帮助及示例,若指定模块的具体函数,则可以单独查看该函数(如test.ping)的帮助及示例,类似查看man手册
二、cmd模块及其常用函数测试
1、cmd模块有不少函数,本节主要测试的是cmd.run、cmd.run_bg、cmd.script三个函数的使用
2、cmd.run的命令中若使用了awk,则$符前面需要加转义符
3、cmd.run可以使用参数stdin指定标准输入字符串
4、使用cmd.run_bg可以将命令放到minion后台执行
5、使用cmd.script可以将master上的脚本推送到minion并执行,通过查看/etc/salt/master文件可以知道master默认的文件根目录是/src/salt,需将测试脚本放到该目录
6、cmd.script推送脚本时也可以带参数
三、cp模块及其常用函数测试
1、cp模块可以实现master推送文件或目录给minion,也可以实现从minion拉取文件或目录,cp模块也有不少函数,本节主要测试cp.get_file、cp.get_dir、cp.push、cp.push_dir四个函数的使用
2、使用cp.get_file可以推送master上的文件到minion,文件需要位于master的文件根目录中,即默认的/srv/salt
3、当推送文件给minion时指定的存放路径在minion上不存在时会失败,这时可以加参数makedirs=true自动在minion上创建目录
4、使用cp.get_dir可以推送master上的目录到minion,目录需要位于master的文件根目录中,即默认的/srv/salt
5、从minion拉取文件或目录到master,默认是被禁用的,需要修改master上的/etc/salt/master文件启用,并重启salt-master服务。拉取的文件或目录默认存放在/var/cache/salt/master/minions/minion-id/files下
6、当使用cp.push从多台minion拉取文件时,即时使用了通配符,也只有文件名在多台minion上都相同的文件才会被拉取
7、如果想使用通配符拉取同一类文件,可以使用cp.push_dir加上glob参数
8、使用cp.push_dir如果不指定glob参数,则是拉取整个目录
9、虽然从不同的minion拉取的文件都存放在minion各自的目录下,但使用通配符可以轻松地把文件集中复制到同一个目录中
本文出自https://blog.51cto.com/jiangjianlong/2084166