SaltStack的Grains和Pillar

SSCCGo 2019-06-20

SaltStack的Grains和Pillar

标签(空格分隔): SaltStack


Grains理解为除了 id之外 ,用户可以自定义的属性
下面我们通过Grains模块来设置并定义Grains信息:

root@ubuntu:~# salt '*' grains.append saltbook 'verycool'
ub1:
    ----------
    saltbook:
        - verycool
root@ubuntu:~# 
root@ubuntu:~# 
root@ubuntu:~# salt '*' grains.item 'saltbook'
ub1:
  saltbook:
      verycool
ub2:
  saltbook:
      verycool

可以使用以下命令查看其它命令,也可以删除grains

root@ubuntu:~# salt '*' sys.doc grains 
root@ubuntu:~# salt '*' grains.remove saltbook 'verycool'
ub2:
    ----------
    saltbook:
ub1:
    ----------
    saltbook:
root@ubuntu:~# salt '*' grains.item 'saltbook'     
ub2:
  saltbook:
ub1:
  saltbook:

Pillar也是SaltStack组件中非常重要的组件之一,是数据管理中心,我们经常配合states在大规模的配置管理工作中使用它,Pillar在SaltStack中主要的作用就是存储和定义配置管理中需要的一些数据,比如软件版本号、用户名密码等信息,它的定义存储格式跟Grains类似,都是YAML格式

在Master配置文件中有一段Pillar settings选项专门定义Pillar相关的一些参数:

#pillar_roots:
#  base:
#    - /srv/pillar

现在我们只需要了解pillar_roots相关的配置即可,默认Base环境下Pillar的工作目录在/srv/pillar目录下。
├── pillar
│   ├── packages.sls
│   └── top.sls

root@ubuntu:/srv/pillar# cat top.sls 
base:
  '*':
    - packages

top.sls的配置会引用/srv/pillar/下的packages的配置

root@ubuntu:/srv/pillar# cat packages.sls 
describe: this is just a test
root@ubuntu:/srv/pillar# salt '*' pillar.item describe
ub2:
    ----------
    describe:
        this is just a test
ub1:
    ----------
    describe:
        this is just a test

通过sys.list_functions可以查看pillar的模块的用法

root@ubuntu:/srv/pillar# salt '*' sys.list_functions pillar
ub2:
    - pillar.data
    - pillar.ext
    - pillar.get
    - pillar.item
    - pillar.items
    - pillar.raw
ub1:
    - pillar.data
    - pillar.ext
    - pillar.get
    - pillar.item
    - pillar.items
    - pillar.raw

pillar也可以从外部源获取,也可以从服务器上进行获取。

相关推荐