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

 

后续再补充。

posted @ 2018-08-21 10:54  风住  阅读(824)  评论(0编辑  收藏  举报