Saltstack远程执行命令(3)

发布时间:2019-09-14 09:25:47编辑:auto阅读(1689)

        Saltstack的一个比较突出的优势是具备执行远程命令的功能,可以帮助运维人员完成集中化的操作平台(批量执行服务器命令)

    命令格式:salt '<操作目标>' <方法>[参数]

    实例:查看minion主机的内存使用情况

    salt 'SN2013-08-021' cmd.run 'free -m'    


    其中针对<操作目标>,Saltstack提供了多种方法对minion(id)进行过滤。

    (1)-E, --pcre 通过正则进行匹配。

    示例:检测id是SN2013字符开头的主机是否连通

    salt -E '^SN2013.*' test.ping


    (2)-L, --list 以主机名列表的形式进行选择

    示例:获取主机id名为SN2013-08-021,SN2013-08-022两台主机的完整操作系统发行版本名称。

    salt -L 'SN2013-08-021,SN2013-08-022' grains.item osfullname


    (3)-G,--grain,根据minion主机的grains(之后详细介绍)信息进行匹配过滤

    示例:获取主机发型版本号为6.4的Python版本号

    salt -G 'osrelease:6.4' cmd.run 'python -V'


    (4)-I,--pillar,根据minion的pillar(之后详细介绍)的信息进行匹配过滤

    示例:探测具有“nginx:root:/date”信息的主机连通性

    salt -I 'nginx:root:/date' test.ping


    (5)-N,nodegroup,根据master配置文件中的分组名称进行过滤,分组通常可以根据业务类型、主机配置等信息进行分组。

    【etc/salt/master】

     nodegroups:

        web1group: 'L@SN2012-07-010,SN2012-07-011,SN2012-07-012'

        web2group: 'L@SN2013-08-021,SN2013-08-022'

    其中,L@表示后面的主机id格式为列表,以逗号分隔;G@表示以grain而是描述;S@表示以IP子网或地址格式描述

    示例:web2group组里所有主机的连通性

    salt -N web2group test.ping


    (6)-C, --compound,根据条件运算符not、and、or去匹配不同规则的主机信息

    示例:探测SN2013开头并且操作系统版本为Centos的主机连通性

    salt -c 'E@^2013.* and G@os:Centos' test.ping    E@的意思是根据正则匹配


    (7)-S, --ipcidr,根据minion主机的IP或者IP子网进行匹配

    示例:根据IP及子网进行匹配

    salt -S 192.168.0.0/16 test.ping

    salt -S 192.168.1.10 test.ping



    批量修改远程server密码

    salt '*' cmd.run 'echo "密码"|passwd --stdin root'

关键字