菜鸟玩云计算之廿一: saltstack之pillar

时间:2022-04-02 21:37:33

菜鸟玩云计算之廿一: saltstack之pillar

参考:

点击打开链接

查看pillar数据:

# salt '*' pillar.items

pillar的默认根目录在:/srv/pillar,可以通过下面的参数更改配置文件/etc/salt/master:

pillar_roots: your_dir

saltstack的入口文件分别是/srv/pillar/top.sls 与 /srv/salt/top.sls. 入口文件的意思就是,在minion“客户端”上,每次请求服务端配置的时候,它们实际上所请求的是这两个文件,虽然有很多的sls文件,但其实它们都是通过这两个文件所关联起来的。


建立下面的pillar根目录,并创建入口文件: top.sls

# mkdir /srv/pillar
# vi /srv/pillar/top.sls

top.sls:

base:
  '*':
    - data

上面这个入口文件指定了/srv/pillar/data.sls文件,适用于所有minions. ('*').

data.sls:

info: somedata

刷新所有节点的pillar:

# salt '*' saltutil.refresh_pillar

202:
    True
203:
    True
再次查看节点的pillar:

# salt '*' pillar.items

202:
    ----------
    info:
        some data

...

203:
    ----------
    info:
        some data
...
如果在/srv/pillar/下面创建子目录users/,在top.sls中可以直接引用到init.sls. 例如:

# mkdir /srv/pillar/users
# vi /srv/pillar/users/init.sls

init.sls内容如下:

users:
  jhonson: 2001
  tom: 2993
  peter: 3098
  tex: 18990

为了在top.sls能引用到users,需要更改为:

base:
  '*':
    - data
    - users

刷新并显示:

# salt '*' saltutil.refresh_pillar
# salt '*' pillar.item users

203:
    ----------
    users:
        ----------
        jhonson:
            2001
        peter:
            2098
        tex:
            18900
        tom:
            2993
202:
    ----------
    users:
        ----------
        jhonson:
            2001
        peter:
            2098
        tex:
            18900
        tom:
            2993

再来一个例子:

# mkdir /srv/pillar/hadoop
# vi /srv/pillar/hadoop/params.sls

params.sls:

hdfs:
  namenode: 192.168.122.201
  stadbynode: 192.168.122.202

hbase:
  master: 192.168.122.201

# vi /srv/pillar/top.sls

top.sls:

base:
  '*':
    - data
    - users
    - hadoop.params

测试使用:

# salt '*' saltutil.refresh_pillar
# salt '*' pillar.items