东城绝神

为了更好的学习和借鉴,分享是最好的途径!

saltstack使用指南:远程管理minion

通过saltstack远程管理minion

1.远程执行命令的组成结构
2.如何使用多种方法定位和匹配minion服务器

一、远程执行命令的组成结构

[root@salt-master ~]# salt --help
Usage: salt [options] '<target>' <function> [arguments]

第一部分:salt命令本身
第二部分:命令行选项
第三部分:目标定位字符串
第四部分:salt模块函数
第五部分:远程执行函数的参数

* :代表任意字符串,也可以是空字符串
?:代表一个字符,但是不可以为空
[] :字符集合,例如[a-z]代表任何一个小写字母,[0-9]代表数字

1.1 命令行选项
salt命令行选项的作用:通过不同的选项来改变程序本身的行为。

实例一:
[root@salt-master ~]# salt -v '*' cmd.run 'free -m'
Executing job with jid 20180516144835766360
-------------------------------------------

izwz9f8xrvty50quc2gq50z:
                  total        used        free      shared  buff/cache   available
    Mem:           1839          97         609           0        1132        1574
    Swap:             0           0           0
iZbp150ikdomqe3b32qaubZ:
                  total        used        free      shared  buff/cache   available
    Mem:           1839         106         603           0        1128        1564
    Swap:             0           0           0

注:-v或--verbose:开启命令的详细描述---详细描述命令运行后会发生什么。


实例二:
[root@salt-master ~]# salt --summary '*' cmd.run 'free -m'
izwz9f8xrvty50quc2gq50z:
                  total        used        free      shared  buff/cache   available
    Mem:           1839          97         609           0        1132        1574
    Swap:             0           0           0
iZbp150ikdomqe3b32qaubZ:
                  total        used        free      shared  buff/cache   available
    Mem:           1839         106         603           0        1128        1564
    Swap:             0           0           0


-------------------------------------------
Summary
-------------------------------------------
# of Minions Targeted: 2
# of Minions Returned: 2
# of Minions Did Not Return: 0
-------------------------------------------

注:--summary:显示一条salt命令的概要。


实例三:
[root@salt-master ~]# salt --out=json '*' cmd.run 'free -m'
{
    "izwz9f8xrvty50quc2gq50z": "              total        used        free      shared  buff/cache   available\nMem:           1839          97         609           0        1132        1574\nSwap:             0           0           0"
}
{
    "iZbp150ikdomqe3b32qaubZ": "              total        used        free      shared  buff/cache   available\nMem:           1839         106         603           0        1128        1565\nSwap:             0           0           0"
}

注:--out:控制salt执行后输出结构的格式。

二、如何使用多种方法定位和匹配minion服务器

2.1 全局匹配
[root@salt-master ~]# salt '*' test.ping
izwz9f8xrvty50quc2gq50z:
    True
iZbp150ikdomqe3b32qaubZ:
    True

2.2 正则匹配

后续会把正则规则总结出来,待后续补充......

注:salt使用python的re正则表达模块,可以解析正则表达式。

2.3 列表匹配
[root@salt-master ~]# salt -L 'izwz9f8xrvty50quc2gq50z' test.ping
izwz9f8xrvty50quc2gq50z:
    True
注:匹配多个主机,命令:salt -L 'izwz9f8xrvty50quc2gq50z,iZbp150ikdomqe3b32qaubZ' test.ping

2.4 minion端分组匹配
[root@salt-master ~]# vim /etc/salt/master  
nodegroups:  
  sa: 'L@10.0.10.100,10.0.10.101'  
  sb: 'S@172.31.24.0/24'  

进行分组操作:
salt -N sa test.ping  
注:-N或--nodegroup表示分组匹配。

2.5 网段/IP匹配

网段匹配
[root@172-25-16-163 ~]# salt -S '172.25.16.0/24' test.ping
172-25-16-223:
    True
172-25-16-176:
    True
172-25-16-126:
    True

IP匹配
[root@172-25-16-163 ~]# salt -S '172.25.16.171' test.ping
172-25-16-171:
    True
注:-S表示网段IP匹配。

2.6 grains匹配

Grains可以认为是描述minion本身固有属性的静态数据。例如minion服务器的操作系统版本、系统大小、网卡的MAC地址等

测试全部匹配为centos系统的网络联通性
[root@172-25-16-163 ~]# salt -G os:centos test.ping
172.25.34.20:
    True
172.25.34.9:
    True
172.25.34.19:
    True

定位系统版本是6.5的主机
[root@172-25-16-163 ~]# salt -G 'osrelease:6.5' test.ping
192-168-2-235:
    True
192-168-2-67:
    True
172-25-2-145:
    True

定位网卡的物理地址的主机
[root@salt-master ~]# salt -G 'hwaddr_interfaces:eth0:00:16:3e:08:1e:78' test.ping
izwz9f8xrvty50quc2gq50z:
    True

 查询所有的item
[root@salt-master pillar]# salt '*' grains.items
省去一万行.....

查询minion端操作系统
[root@salt-master pillar]# salt '*' grains.item os
izwz9f8xrvty50quc2gq50z:
    ----------
    os:
        CentOS
iZbp150ikdomqe3b32qaubZ:
    ----------
    os:
        CentOS

注:-G:表示grains匹配。

2.7 pillars匹配
后续不断完善中......

扩展:grains与pillar之间的区别?
1.grains数据通常是minion端的一些特性数据,比如操作系统类型,磁盘,内存信息等,它是存储在minion端的,缓存在master端。
2.pillar数据存储在master端,客户端有缓存。pillar数据可以通过salt '*' saltutil.refresh_pillar来刷新pillar数据。
3.grains和pillar都是以key value形式的数据库。
4.minion有权限操作自己的grains值,如增加、删除,但minion只能查看自己的pillar,无权修改。
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m0_37814112/article/details/80336663
文章标签: saltstack匹配
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

saltstack使用指南:远程管理minion

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭