saltstack远程执行

安装完Saltstack后可以立即执行shell命令,更新软件包并将文件同时分不到所有受管系统。所有回复都以一致的可配置格式返回。远程执行参考文档:http://docs.saltstack.cn/topics/tutorials/modules.html

  1. [root@salt-master ~]# salt '*' cmd.run "uptime"
  2. salt-minion01:
  3. :: up day, min, users, load average: 0.00, 0.03, 0.08
  4. salt-minion02:
  5. :: up :, users, load average: 0.00, 0.04, 0.10
  6. salt-minion03:
  7. :: up :, users, load average: 0.00, 0.04, 0.10

Salt命令的结构语法

  1. salt '<target>' <function> [arguments]

目标主机Target

1、通配符匹配

  1. [root@salt-master ~]# salt '*' test.ping
  2. [root@salt-master ~]# salt 'salt-minion01' test.ping
  3. [root@salt-master ~]# salt '*01' test.ping
  4. [root@salt-master ~]# salt 'salt-minion0[1|2]' test.ping
  5. [root@salt-master ~]# salt 'salt-minion0[!1|2]' test.ping
  6. [root@salt-master ~]# salt 'salt-minion0?' test.ping

2、列表匹配

  1. [root@salt-master ~]# salt -L 'salt-minion01,salt-minion02' test.ping

3、正则匹配

  1. [root@salt-master ~]# salt -E '^salt' test.ping
  2. [root@salt-master ~]# salt -E '^salt.*2$' test.ping

4、IP匹配

  1. [root@salt-master ~]# salt -S '192.168.1.32' test.ping
  2. [root@salt-master ~]# salt -S '192.168.1.0/24' test.ping

5、复合匹配

  1. [root@salt-master ~]# salt -C 'G@os:CentOS and S@192.168.1.32' test.ping

6、分组匹配

  1. [root@salt-master ~]# vim /etc/salt/master
  2. nodegroups:
  3. webserver: 'salt-minion01,salt-minion02'
  4. dbserver: 'salt-minion03
  5. [root@salt-master ~]# systemctl restart salt-master
  6. [root@salt-master ~]# salt -N 'webserver' test.ping
  7. [root@salt-master ~]# salt -N 'dbserver' test.ping

7、Grains匹配

  1. [root@salt-master ~]# salt -G 'os:CentOS' test.ping
  2. [root@salt-master ~]# salt -G 'localhost:salt-minion02' test.ping

说明:上面这些匹配方式在top.sls文件中同样适用。

模块Module

  1. test 模块多用于测试
  2. user 模块用于用户管理
  3. cmd 模块可以执行任意shell命令
  4. pkg 模块用于软件包管理
  5. file 模块多用于配置
  6. service 模块用于服务管理

所有模块列表

test模块

  1. 模块名:test
  2. 功能:用于测试
  3. [root@salt-master ~]# salt '*' test.ping

user模块

  1. 参考:http://docs.saltstack.cn/ref/modules/all/salt.modules.useradd.html#module-salt.modules.useradd
  2. # salt '*' user.add name <uid> <gid> <groups> <home> <shell>
  3. [root@salt-master ~]# salt '*' user.add testuser

cmd模块

  1. 模块名:cmd
  2. 功能:实现远程的命令行调用执行(默认具备root操作权限,使用时需评估风险)
  3. #查看所有minion内存和磁盘使用情况
  4. [root@salt-master ~]# salt '*' cmd.run "free -m"
  5. [root@salt-master ~]# salt '*' cmd.run "df -h"

pkg模块

  1. 模块名:pkg
  2. 功能:软件包状态管理,会根据操作系统不同,选择对应的安装方式(如CentOS系统默认使用yumDebian系统默认使用apt-get
  3.  
  4. #安装
  5. [root@salt-master ~]# salt '*' pkg.install "vsftpd"
  6. #卸载
  7. [root@salt-master ~]# salt '*' pkg.remove "vsftpd"
  8. #安装最新版本
  9. [root@salt-master ~]# salt '*' pkg.latest_version "vsftpd"
  10. #更新软件包
  11. [root@salt-master ~]# salt '*' pkg.upgrade "vsftpd"
  12.  
  13. #查看帮助手册
  14. [root@salt-master ~]# salt '*' pkg

file模块

  1. 模块名:file
  2. 功能:被控主机常见的文件操作,包括文件读写、权限、查找、校验
  3.  
  4. #校验所有minion主机文件的加密信息,支持md5、sha1、sha224、shs256、sha384、sha512加密算法
  5. [root@salt-master ~]# salt '*' file.get_sum /etc/passwd md5
  6.  
  7. #修改所有minion主机/etc/passwd文件的属组、用户权限、等价于chown root:root /etc/passwd
  8. [root@salt-master ~]# salt '*' file.chown /etc/passwd root root
  9.  
  10. #获取所有minion主机/etc/passwd的stats信息
  11. [root@salt-master ~]# salt '*' file.stats /etc/passwd
  12.  
  13. #获取所有minion主机/etc/passwd的权限mode,如755,
  14. [root@salt-master ~]# salt '*' file.get_mode /etc/passwd
  15.  
  16. #修改所有minion主机/etc/passwd的权限mode为0644
  17. [root@salt-master ~]# salt '*' file.set_mode /etc/passwd
  18.  
  19. #在所有minion主机创建/opt/test目录
  20. [root@salt-master ~]# salt '*' file.mkdir /opt/test
  21.  
  22. #在所有minion主机穿件/tmp/test.conf文件
  23. [root@salt-master ~]# salt '*' file.touch /tmp/test.conf
  24.  
  25. #将所有minion主机/tmp/test.conf文件追加内容'maxclient 100'
  26. [root@salt-master ~]# salt '*' file.append /tmp/test.conf 'maxclient 100'
  27.  
  28. #删除所有minion主机的/tmp/test.conf文件
  29. [root@salt-master ~]# salt '*' file.remove /tmp/test.conf

service模块

  1. 模块名:service
  2. 功能:被控主机程序包服务管理
  3.  
  4. #开启(enable)禁用(disable)
  5. salt '*' service.enable <service name>
  6. salt '*' service.disabled <service name>
  7.  
  8. #reload、restart、start、stop、status操作
  9. salt '*' service.reload <service name>
  10. salt '*' service.restart <service name>
  11. salt '*' service.start <service name>
  12. salt '*' service.stop <service name>
  13. salt '*' service.status <service name>

saltstack快速入门

saltstack配置管理

saltstack数据系统

saltstack状态判断

saltstack使用salt-ssh

SaltStack--远程执行的更多相关文章

  1. Saltstack远程执行(四)

    Saltstack远程执行 语法例:salt '*' cmd.run 'w' -  命令:salt -  目标:'*' -  模块:cmd.run,自带150+模块,也可以自己写模块 -  返回:执行 ...

  2. 2、自动化运维之SaltStack远程执行详解

    SaltStack远程执行详解 ●目标(Targeting) ●模块(Module) ●返回(Returnners) 混合模式-C 选项 主机名设置参照: redis-node1-redis03-id ...

  3. SaltStack远程执行-返回MySQL

    上一篇:SaltStack远程执行-模块 参考官方文档:https://docs.saltstack.com/en/latest/ref/returners/all/salt.returners.my ...

  4. Linux centosVMware 自动化运维认识自动化运维、启动salt相关服务、saltstack配置认证、salt-key命令用法、saltstack远程执行命令、saltstack - grains、saltstack – pillar

    一.认识自动化运维 传统运维效率低,大多工作人为完成 传统运维工作繁琐,容易出错 传统运维每日重复做相同的事情 传统运维没有标准化流程 传统运维的脚本繁多,不能方便管理 自动化运维就是要解决上面所有问 ...

  5. saltstack远程执行命令.md

    saltstack 支持在master上向client 远程执行命令,并显示命令执行的结果 命令格式: salt '<操作目标>' <方法> [参数] 示例 示例1 ping检 ...

  6. SaltStack入门篇(四)之深入理解SaltStack远程执行

    1.目标 2.执行模块 3.返回 salt ‘*’ cmd.run ‘uptime’ 命令 目标 执行模块 执行模块参数 1.SlatStack远程执行–目标 执行目标:https://docs.sa ...

  7. SaltStack远程执行

    上一篇:SaltStack概述及安装 master也需要安装一个minion 启动salt-master systemctl start salt-master 配置文件在目录/etc/salt下 p ...

  8. 利用 Saltstack 远程执行命令

    Saltstack的一个比较突出优势就是具备执行远程命令的功能. 操作方法与func (https://fedorahosted.org/func/)相似,可以帮助运维人员完成集中化的操作平台. ht ...

  9. SaltStack远程执行-模块

    上一篇:SaltStack数据系统-Pillar 执行模块 salt 'linux-node2.example.com' service.status sshd 其中service是模块名称statu ...

  10. SaltStack远程执行shell脚本

    编辑文件fansik.sh 脚本内容: #!/bin/bash # Author: fansik # data: 2017年 09月 26日 星期二 :: CST touch /tmp/fansik. ...

随机推荐

  1. Linux下rpm及yum安装jdk

    笔者使用的Linux操作系统为CentOS7,Linux中有三种安装jdk的方式,在这里笔者主要介绍两种方式,即rpm和yum安装及卸载jdk,还有一种是直接从官网下载 tar.gz 压缩文件上传到L ...

  2. STRING Cytoscape 网络互作图

    网络图(Network)看似复杂,其实构成非常简单,网络图是一种图解模型,形状如同网络,故称网络图,由节点(node)和连线(edge)两个因素组成的.其中 node 又分为 source node( ...

  3. 安装gerrit服务器

    一.环境准备 1.Java环境 gerrit依赖,用于安装gerrit环境. 下载:jdk-7u79-linux-x64.tar.gz http://www.oracle.com/technetwor ...

  4. MySQL重要知识点

    可能是全网最好的MySQL重要知识点 |  mp.weixin.qq.com 点击蓝色“程序猿DD”关注我 回复“资源”获取独家整理的学习资料! 标题有点标题党的意思,但希望你在看了文章之后不会有这个 ...

  5. 【操作系统之十二】分支预测、CPU亲和性(affinity)

    一.分支预测 当包含流水线技术的处理器处理分支指令时就会遇到一个问题,根据判定条件的真/假的不同,有可能会产生转跳,而这会打断流水线中指令的处理,因为处理器无法确定该指令的下一条指令,直到分支执行完毕 ...

  6. 【操作系统之十一】任务队列、CPU Load、指令乱序、指令屏障

    一.CPU Loadcpu load是对使用或者等待cpu进程的统计(数量的累加):每一个使用(running)或者等待(runnable)CPU的进程,都会使load值+1;每一个结束的进程,都会使 ...

  7. 注意:MagickReadImageBlob() 引发的问题

    今天发现: 如果之前的 mw 已加载了具体的图片数据后,再对这个 mw 进行: MagickReadImageBlob(mw, data, dataLen) 程序运行发生了崩溃. 最后找到原因: Ma ...

  8. 基于ZYNQ 的UART中断实验之串口写数据到DDR3中

    1.参考 UG585 网络笔记 2.理论知识 参见上一次实验:基于ZYNQ 的UART中断实验 3.实验目的 练习使用UART的中断实验,并将接收到的数据写入到DDR3中. 4.实验过程 建立工程,设 ...

  9. OpenCV4.1.2 QRCode解码体验测评(附源码+支持中文)

    目前官方Release的OpenCV最新版本为4.1.2,偶然看到更新信息里面QRCode解码性能有提升,所以迫不及待想尝试一下,因为上次测试了4.0版本的效果不太好. 下载和配置OpenCV的步骤此 ...

  10. cad问题小百科 持续更新

    一些浩辰的问题移步去: 浩辰问题        (浩辰可能和桌子具有相同的问题,所以这篇你可能还是要看 cad2007遇到了这种情况 安装问题安装CAD出现C++2005问题的解决方法,出现此问题,原 ...