设为首页 收藏本站
查看: 1110|回复: 0

[经验分享] SaltStack学习(三) 远程执行模块和函数

[复制链接]

尚未签到

发表于 2018-1-4 08:33:57 | 显示全部楼层 |阅读模式
  远程执行模块的构成
  salt 中有一些模块,这些模块就其实就是很多 python 函数的组合,是函数的逻辑分组。如果查看test 模块中的 ping 命令,大家就会明白,ping 命令只是使用 python 实现的一个函数。
  salt中所有的远程执行命令的格式都是
  <module>.<funtion>
  例如我们前面使用的 test.ping ,
  list_modules  函数可以列举对应 minion 主机上的所有模块
  list_functions 函数可以列出模块的所有函数
  doc 函数可以列出指定函数的文档,来查看函数的详细用法。
  

salt "m01" sys.list_modules  
salt
"m01" sys.list_functions test  
salt
"m01" sys.doc test.sleep  

  1  远程命令执行    cmd 模块
  

# cmd.run 执行一个远程shell命令  
salt
'192.168.0.100' cmd.run 'ls -l'  
# cmd.script 在远程minion执行一个master上的脚本,命令会从master下载脚本到minion上并执行
  
# 路径为file_root参数指定的路径为 salt:
// 路径  
salt '192.168.0.100' cmd.script salt://scripts/runme.sh
  

  2  安装包管理   pkg 模块
  

#为所有被控主机安装PHP环境,根据不同系统发行版调用不同安装工具进行部署,如redhat平台的yum,等价于yum -y install php  
salt
'*' pkg.install php  
#卸载所有被控主机的PHP环境
  
salt
'*' pkg.remove php  
#升级所有被控主机的软件包
  
salt
'*' pkg.upgrade  

  3  服务管理   service模块
  

#开启(enable)、禁用(disable)nginx开机自启动脚本  
salt
'*' service.enable nginx  
salt
'*' service.disable nginx  
#针对nginx服务的reload、restart、start、stop、status操作
  
salt
'*' service.reload nginx  
salt
'*' service.restart nginx  
salt
'*' service.start nginx  
salt
'*' service.stop nginx  
salt
'*' service.status nginx  

  4 文件管理    file 模块
  

#校验所有被控主机/etc/fstab文件的md5值是否为xxxxxxxxxxxxx,一致则返回True值  
salt
'*' file.check_hash /etc/fstab md5=xxxxxxxxxxxxxxxxxxxxx  
#校验所有被控主机文件的加密信息,支持md5、sha1、sha224、shs256、sha384、sha512加密算法
  
salt
'*' file.get_sum /etc/passwd md5  
#修改所有被控主机
/etc/passwd文件的属组、用户权限、等价于chown root:root /etc/passwd  
salt
'*' file.chown /etc/passwd root root  
#复制所有被控主机
/path/to/src文件到本地的/path/to/dst文件  
salt
'*' file.copy /path/to/src /path/to/dst  
#检查所有被控主机
/etc目录是否存在,存在则返回True,检查文件是否存在使用file.file_exists方法  
salt
'*' file.directory_exists /etc  
#获取所有被控主机
/etc/passwd的stats信息  
salt
'*' file.stats /etc/passwd  
#获取所有被控主机
/etc/passwd的权限mode,如755,644  
salt
'*' file.get_mode /etc/passwd  
#修改所有被控主机
/etc/passwd的权限mode为0644  
salt
'*' file.set_mode /etc/passwd 0644  
#在所有被控主机创建
/opt/test目录  
salt
'*' file.mkdir /opt/test  
#将所有被控主机
/etc/httpd/httpd.conf文件的LogLevel参数的warn值修改为info  
salt
'*' file.sed /etc/httpd/httpd.conf 'LogLevel warn' 'LogLevel info'  
#给所有被控主机的
/tmp/test/test.conf文件追加内容‘maxclient 100’  
salt
'*' file.append /tmp/test/test.conf 'maxclient 100'  
#删除所有被控主机的
/tmp/foo文件  
salt
'*' file.remove /tmp/foo  

  salt 的模块还有很多其他的,这里总结的可能会用到的一部分,大家可以使用  sys.list_modules 、sys.list_functions 、 sys.doc 来学习使用其他的模块。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-431403-1-1.html 上篇帖子: saltstack 数据系统之 grains 简单学习 下篇帖子: saltstack系列(六)——zmq扩展(二)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表