SaltStack远程执行两大模块:cmd与cp模块测试

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SaltStack远程执行两大模块:cmd与cp模块测试相关的知识,希望对你有一定的参考价值。

上一篇分享了《SaltStack安装配置与远程执行测试》,涉及到了test.ping和cmd.run两个模块方法,实际上SaltStack的模块有140多个之多,每个模块又有多种函数(function,也有的称为方法),但我在查阅和测试了多个模块如archive 、file、user、network、pkg、service、status等之后,发现很多模块的功能实际上大多都可以用万能的cmd.run加相应的系统命令来代替。如果SaltStack所管理的服务器系统发行版众多,系统命令有差异(比如yum和apt-get),用cmd.run的话需要分开执行,而用SaltStack相应的系统模块可以屏蔽这种差异性,一次执行就可以搞定多种发行版。如果不是这种情况的话我觉得用cmd.run加相应的系统命令就可以了。最后我觉得比较实用和值得写一写的是cmd与cp模块,本文主要内容是这两个模块及其基本用法。


一、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各自的目录下,但使用通配符可以轻松地把文件集中复制到同一个目录中

技术分享图片

本文出自江健龙的技术博客 jiangjianlong.blog.51cto.com,转载请注明出处。


以上是关于SaltStack远程执行两大模块:cmd与cp模块测试的主要内容,如果未能解决你的问题,请参考以下文章

Saltstack远程执行

Saltstack远程执行

saltstack常用模块

saltstack常用模块

saltstack使用指南----常用执行模块

saltstack在windows客户端远程执行脚本提示路径不对的问题