前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Saltstack数据系统

Saltstack数据系统

作者头像
菲宇
发布2019-06-12 17:46:28
7680
发布2019-06-12 17:46:28
举报
文章被收录于专栏:菲宇

1.数据系统Grains

Grains静态数据

1.Grains数据存储在minion端,minion端的数据信息 2.当minion启动时会收集Minion自身的状态信息后才加载grins信息,所以grains数据是静态的。比如: 操作系统版本,内核版本,CPU,内存,硬盘。设备型号。 Minion收集的信息,可以作为Master端匹配目标 Master端自定义grains设置, 需要执行命令推送给Minion端 Master端推送的数据会存储在端的/var/cache/salt

1.资产管理, 信息查询

代码语言:javascript
复制
//列出所有可打印的状态模块
[root@salt0-master ~]# salt '*' grains.ls
//打印所有的状态信息
[root@salt0-master ~]# salt '*' grains.items
//列出每台minion的本地IP地址
[root@salt0-master ~]# salt '*' grains.item fqdn_ip4

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

代码语言:javascript
复制
//修改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配置管理案例

代码语言:javascript
复制
[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优先级问题

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

2.数据系统Pillar

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

1.在Master端定义Pillar

代码语言:javascript
复制
[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端可以使用

代码语言:javascript
复制
[root@salt0-master pillar]# cat top.sls 
base:
  'salt2-minion.example.com':
    - zabbix

3.刷新Pillar

代码语言:javascript
复制
[root@saltstack01 ~]# salt '*' saltutil.refresh_pillar

4.获取对应pillar

代码语言:javascript
复制
[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对比

代码语言:javascript
复制
类型     数据采集方式   应用场景                   定义位置
Grains   静态         minion启动时收集  数据查询  目标选择  配置管理   minion
Pillar   动态         master进行自定义  目标选择  配置管理  敏感数据   master
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019年01月04日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.数据系统Grains
  • 2.数据系统Pillar
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档