1.基本概念
(1)什么是Pillar?
Pillar是在salt 0.9.8版本后才添加的功能组件。它跟grains的结构一样,也是一个字典格式,数据通过key/value的格式进行存储。
在Salt的设计中,Pillar使用独立的加密sessiion,所以Pillar可以用来传递敏感的数据,例如ssh-key,加密证书等。
存储位置:存储在master端存放需要提供给minion的信息
应用场景:敏感信息,每个minion只能访问master分配给自己的信息
(2)pillar和grains的区别
本质上都是key / value 型的数据库。 Grains
是存储在minon上的数据,minion启动后就进行Grain计算,是一种静态数据。 Pillar 数据存储在master,
是动态数据,每个minion只能看到自已的pillar。
一个minion可以告诉master它的数据,而minion则需要从master索要pillar数据。
grains存储的是静态、不常变化的内容,pillar则相反 grains是存储在minion本地,而pillar存储在master本地
minion有权限操作自己的grains值,如增加、删除,但minion只能查看自己的pillar,无权修改 grains
这个跟puppet的facter一样,负责采集客户端一些基本信息 可以在客户端自定义 然后自动汇报上来 也可以从服务器端定义然后推下去
采集完后 再汇报上来 pillar 这个东西如果跟grains 比较的话 他的灵活性强点 想咋定义就咋定义 然后取值就行
2.grains演示过程如下
(1)在minion端设置开启grains,并且重启服务
(2)在server1上通过grains查看角色
(3)在server3上编写文件
(4)在server1上同步模块并查看
(5)编写grains脚本变量并同步
(6)同步到server2:
(7)调用grains变量:
(8)grains匹配运用
3.pillar的演示过程如下
(1)在master节点上面设置
(2)编辑两个文件
高级推:
给server2安装httpd,server3安装nginx:
4.Jinja模板使用方式
jinja最基本的用法是使用控制结构包装条件:
用变量引用端口:
直接引用pillar变量:
直接引用grains变量:
定义变量文件:
导入模板文件: