博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SaltStack远程执行两大模块:cmd与cp模块测试
阅读量:6222 次
发布时间:2019-06-21

本文共 1693 字,大约阅读时间需要 5 分钟。

上一篇分享了,涉及到了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个

01.png

02.png

2、使用命令salt 'salt-minion01' sys.list_functions test可以列出具体模块(如test模块)的所有函数

03.png

3、使用命令salt 'salt-minion01' sys.doc test可以列出具体模块(如test模块)全部函数的帮助及示例,若指定模块的具体函数,则可以单独查看该函数(如test.ping)的帮助及示例,类似查看man手册

04.png

05.png

二、cmd模块及其常用函数测试

1、cmd模块有不少函数,本节主要测试的是cmd.run、cmd.run_bg、cmd.script三个函数的使用

06.png

2、cmd.run的命令中若使用了awk,则$符前面需要加转义符

07.png

3、cmd.run可以使用参数stdin指定标准输入字符串

08.png

4、使用cmd.run_bg可以将命令放到minion后台执行

09.png

5、使用cmd.script可以将master上的脚本推送到minion并执行,通过查看/etc/salt/master文件可以知道master默认的文件根目录是/src/salt,需将测试脚本放到该目录

10.png

11.png

12.png

6、cmd.script推送脚本时也可以带参数

13.png

三、cp模块及其常用函数测试

1、cp模块可以实现master推送文件或目录给minion,也可以实现从minion拉取文件或目录,cp模块也有不少函数,本节主要测试cp.get_file、cp.get_dir、cp.push、cp.push_dir四个函数的使用

14.png

2、使用cp.get_file可以推送master上的文件到minion,文件需要位于master的文件根目录中,即默认的/srv/salt

15.png

16.png

3、当推送文件给minion时指定的存放路径在minion上不存在时会失败,这时可以加参数makedirs=true自动在minion上创建目录

17.png

4、使用cp.get_dir可以推送master上的目录到minion,目录需要位于master的文件根目录中,即默认的/srv/salt

18.png

19.png

5、从minion拉取文件或目录到master,默认是被禁用的,需要修改master上的/etc/salt/master文件启用,并重启salt-master服务。拉取的文件或目录默认存放在/var/cache/salt/master/minions/minion-id/files下

20.png

6、当使用cp.push从多台minion拉取文件时,即时使用了通配符,也只有文件名在多台minion上都相同的文件才会被拉取

22.png

7、如果想使用通配符拉取同一类文件,可以使用cp.push_dir加上glob参数

23.png

8、使用cp.push_dir如果不指定glob参数,则是拉取整个目录

24.png

9、虽然从不同的minion拉取的文件都存放在minion各自的目录下,但使用通配符可以轻松地把文件集中复制到同一个目录中

25.png

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

你可能感兴趣的文章
hdu-2685 I won't tell you this is about number theory---gcd和快速幂的性质
查看>>
异常处理
查看>>
家庭记事本开发进度2
查看>>
[Azure] 使用 Visual Studio 2013 管理中国版 Azure 订阅
查看>>
VB动态添加WebBrowser控件,并拦截弹出窗口(不用引用任何组件)
查看>>
C#线程的参数传递
查看>>
HDU1059
查看>>
jquery 选择器多个
查看>>
关于Maya 的 Node ID
查看>>
[转]DPM2012系列之十一:还原exchange 2010数据库
查看>>
Vector、ArrayList、List使用深入剖析
查看>>
教孩子学编程 Python
查看>>
:s 命令来替换字符串
查看>>
【“零起点”--百度地图手机SDK】如何查询公交线路?如北京的104路
查看>>
C#使用Linq操作Xml文件(创建xml文件、增删改查xml文件节点信息)的方法
查看>>
Jmeter:图形界面压力测试工具
查看>>
proteus中的常用文件
查看>>
Ubuntu搜狗输入法无法输入中文等问题
查看>>
Linux函数之snprintf()[一]
查看>>
php 使用zendstudio 生成webservice文件 wsdl
查看>>