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,无权修改

     

    后续再补充。

  • 相关阅读:
    高盛、沃尔玛 题做出来还挂了的吐槽
    amazon师兄debrief
    到所有人家距离之和最短的中点 296. Best Meeting Point
    问问题没人回答的情况怎么办终于有解了
    找名人 277. Find the Celebrity
    数组生存游戏 289. Game of Life
    547. Number of Provinces 省份数量
    428. Serialize and Deserialize Nary Tree 序列化、反序列化n叉树
    alias别名简介和使用
    面试官:线程池执行过程中遇到异常会发生什么,怎样处理? Vincent
  • 原文地址:https://www.cnblogs.com/whych/p/9510067.html
Copyright © 2011-2022 走看看