Saltstack数据系统

1.数据系统Grains

Grains静态数据python

1.Grains数据存储在minion端,minion端的数据信息
2.当minion启动时会收集Minion自身的状态信息后才加载grins信息,因此grains数据是静态的。好比: 操做系统版本,内核版本,CPU,内存,硬盘。设备型号。web

 

Minion收集的信息,能够做为Master端匹配目标
Master端自定义grains设置, 须要执行命令推送给Minion端
Master端推送的数据会存储在端的/var/cache/saltvim

1.资产管理, 信息查询centos

//列出全部可打印的状态模块 [root@salt0-master ~]# salt '*' grains.ls //打印全部的状态信息 [root@salt0-master ~]# salt '*' grains.items //列出每台minion的本地IP地址 [root@salt0-master ~]# salt '*' grains.item fqdn_ip4 

2.salt远程执行的目标匹配ruby

//修改minion配置文件,定义grains [root@salt1-minion ~]# vim /etc/salt/minion grains: roles: - webserver os_version: - centos7u4 //重启minion [root@salt1-minion ~]# systemctl restart salt-minion //目标匹配方式 [root@salt1-minion ~]# salt -G 'os_version:centos7u4' test.ping 

3.Master端编写一个GrainsPython脚本推送给minion配置管理案例加密

[root@salt0-master ~]# mkdir /srv/salt/_grains -p && cd /srv/salt/_grains [root@salt0-master _grains]# cat /srv/salt/_grains/my_grains.py #!/usr/bin/env python #-*- coding: utf-8 -*- def mygrains(): #设置一个字典 grains = {} #设置字典的值 grains['iaas'] = 'openstack' grains['pass'] = 'Docker' #返回这个字典 return grains # 刷新Grains,从Master推送给全部的Minion客户端 [root@salt0-master ~]# salt '*' saltutil.sync_grains 

4.Grians优先级问题centos7

1.Grains默认获取的状态信息
2.在minion配置文件进行自定义
3.在Master端定义grains推送Minionspa

2.数据系统Pillar

Pillar是动态的,Pillar存储在master端,提供给minion端。
Pillar主要记录一些加密信息, 能够确保这些敏感数据不被其余minion看到。
PillarSaltStack中主要做用是存储和定义配置管理中须要的一些数据,好比软件版本号、用户名密码等信息,它的存储格式跟Grains相似,都是YAML格式。操作系统

 

1.在Master端定义Pillar3d

 

[root@salt0-master ~]# vim /etc/salt/master pillar_roots: base: - /srv/pillar [root@salt0-master ~]# systemctl restart salt-master [root@salt0-master ~]# mkdir /srv/pillar [root@salt0-master ~]# cd /srv/pillar/ [root@salt0-master pillar]# cat zabbix.sls Zabbix_Server: 192.168.70.170 Zabbix_Name: salt0-master.examp.com 

2.编写TopFile指定Minion端能够使用

[root@salt0-master pillar]# cat top.sls base: 'salt2-minion.example.com': - zabbix 

3.刷新Pillar

[root@saltstack01 ~]# salt '*' saltutil.refresh_pillar 

4.获取对应pillar

[root@salt0-master ~]# salt '*' pillar.items salt2-minion.example.com: ---------- Zabbix_Name: salt0-master.examp.com Zabbix_Server: 192.168.70.171 # 获取指定的key [root@salt0-master ~]# salt 'salt2-minion.example.com' pillar.item Zabbix_Server 

注意: 若是Master更新了新的数值, 须要刷新Pillar至Minion才可获取

5.pillarGrains对比

类型     数据采集方式   应用场景                   定义位置
Grains   静态         minion启动时收集  数据查询  目标选择  配置管理   minion
Pillar   动态         master进行自定义  目标选择  配置管理  敏感数据   master
相关文章
相关标签/搜索