zoukankan      html  css  js  c++  java
  • Saltstack管理对象属性之grains和pillar组件

    Grains组件

    Grains是saltstack记录minion的一些静态信息组件,可以简单的理解为grains里面记录着每台minion的一些常用的属性,比如cpu、内存、磁盘、网络信息等,可以通过grains.items查看某台minion的grains所有信息,minion的grains信息是minion启动的时候采集汇报给master的。

    grains会在minion进程启动时进行加载,并缓存在内存中。这样salt-minion进程无需每次操作都要重新检索系统来获取grain,提升了minion性能。

    grains相关命令用法可用sys.list_functions grains来查看,详细用法可用sys.doc grains.items查看:

    grains的定义:

    通过minion配置文件定义

    通过grains相关模块定义

    通过python脚本定义

    通过minion配置文件定义grains:

    在配置文件中有默认的注释行,修改好配置文件重启minion服务

    在master上通过salt 'minion-01' grains.item roles和salt 'minion-01' grains.item deployment就可查看刚才定义的grains值。


    通过grains模块来设置并定义grains信息:

    salt 'minion-01' grains.append sufe 'beauty'

    salt 'minion-01' grains.setvals "{'salt': 'good','book': 'cool'}" #设置多对

    salt 'minion-01' grains.item sufe #查看所定义的grains信息


    现在都是将自定义的静态grain存在一个grain文件中(/etc/salt/grains),这样grains独立存储,易于在本地查找。能够通过执行模块进行修改。

     

     

    Pillar组件

    Pillar是数据管理中心,主要作用就是存储和定义配置管理中需要的一些数据,比如软件版本号、用户密码等信息,格式与grains类似,都是YAML格式。

    Pillar也是Salt用来分发全局变量到所有minions的一个接口。安全起见,有些数据是不可以共享出来的,需要指定。比如高度敏感的数据:通过pillar传输的数据会保证只向选定的minions展现,这使得pillar可以作为Salt中管理安全信息的引擎,比如加密的key和密码。

     

    通过master配置文件定义Pillar相关参数:

    pillar_roots:

    base:

    - /srv/pillar

     

    此处pillar工作目录为/srv/pillar。定义多个环境不同的pillar工作目录,去pillar工作目录新建top.sls文件然后引用两个sls文件即可。

     

    grains和pillar比较:

    1.grains存储的是静态数据、不常变化的内容,pillar则相反

    2.grains是存储在minion本地,而pillar存储在master本地

    3.minion有权限操作自己的grains值,如增加、删除,但minion只能查看自己的pillar,无权修改

     

    后续再补充。

  • 相关阅读:
    性能测试工具---loadrunner
    数据库Mysql监控及优化
    数据库基础----Mysql
    常见的性能问题及定位方法
    中间件
    JVM学习篇章(二)
    PhpStorm 配置本地断点调试
    TCP连接 三次握手 四次挥手
    https 的理解
    使用GatewayWorker 开发个即时聊天demo
  • 原文地址:https://www.cnblogs.com/whych/p/9510067.html
Copyright © 2011-2022 走看看