• saltstack之(五)数据系统Grains和Pillar


    一、grains

    1.什么是grains
    grains:存储minion端的信息,包括一些网络、硬件等信息,保存在minion端。一般为静态信息,非经常变化的数据。

    2.grains的使用:
    获取minion端信息
    salt '192.168.3.1' grains.items --获取minion端所有的grains信息。
    salt '192.168.3.1' grains.item fqdn --通过grains.item获取minion端的fqdn信息。
    salt '192.168.3.1' grains.get fqdn --通过grains.get获取minion端的fqdn信息。

    匹配salt的target
    salt -G 'os:CentOS' cmd.run 'uptime' --匹配minion端OS为CentOS的执行uptime命令。

    3.自定义grains(*重启才能获取grains信息)
    1)编辑/etc/salt/minion定义grains信息。
    [root@node1 ~]# grep -A 1 ^grains /etc/salt/minion
    grains:
    roles: zabbix-agent
    [root@node1 ~]# salt '192.168.3.1' grains.item role
    192.168.3.1:
    ----------
    role:
    zabbix-agent

    2)单独的文件定义存储grains信息。(/etc/salt/grians)
    [root@node1 ~]# cat /etc/salt/grains
    role: nginx
    [root@node1 ~]# salt '192.168.3.1' grains.item role
    192.168.3.1:
    ----------
    role:
    nginx
    3)在top.sls文件中使用grains
    [root@node1 ~]# cat /etc/salt/top.sls
    base:
      'role:nginx':
        - match: grains

    *注释:建议使用单独的文件自定义grains的值,切勿多处定义。
    4.使用工具刷新grains
    [root@node1 ~] salt '*' saltutil.sync_grains

    二、pillar
    1.什么是pillar
    pillar: 存储在master端,存放需要提供给minion的信息。常用于敏感信息,每个minion只能访问master分配给自己的pillar信息,更多的是经常动态的变化信息。


    2.pillar的使用:
    获取master端pillar的数据信息
    salt '*' pillar.items|data

    3.自定义pillar信息
    [root@node1 ~]# grep -A 2 ^pillar /etc/salt/master
    pillar_roots:
      base:
        - /srv/pillar
    [root@node1 ~] mkdir /srv/pillar && cd /srv/pillar
    [root@node1 pillar]# cat zabbix.sls
    zabbix_server: 192.168.3.1
    [root@node1 pillar]# cat top.sls
    base:
      '*':
        - zabbix
    4.使用saltutil工具的saltutil.refresh_pillar刷新pillar的值
    [root@node1 pillar]# salt '*' saltutil.refresh_pillar
    192.168.3.1:
    True
    node2.xkops.com:
    True
    5.获取在pillar中自定义的zabbix_server的值
    [root@node1 pillar]# salt '*' pillar.data zabbix_server
    node2.xkops.com:
    ----------
    192.168.3.1:
    ----------
    zabbix_server:
    192.168.3.1


    6.匹配salt的target
    salt -I 'zabbix_server:192.168.3.1' test.ping


    总结:
    grains和pillar的区别
    1.grains是静态、不常变化的;pillar则是动态的。
    2.grains是存储在minion本地,而pillar存储在master本地。
    3.minion有权限操作自己的grains值,如增加、删除,但minion只能查看自己的pillar,无权修改。

  • 相关阅读:
    ubuntu segmentation fault 段错误
    css配合js模拟的select下拉框
    让IE6下支持固定定位
    max-height,min-height在IE下不支持的解决方法
    图片居中
    完美运动框架,随意调用,兼容性好
    JS创建Ajax的XMLHttpRequest对象的通用方法
    JS兼容性问题(FF与IE)
    css样式
    html之marquee详解[转]
  • 原文地址:https://www.cnblogs.com/xkops/p/5482591.html
Copyright © 2020-2023  润新知