pillar学习

    salt提供了一个接口,用于在master端定义数据,而后能够在minion中使用。这个接口就是pillar,获取的数据就是pillar数据。pillar的数据定义方式跟state sls文件方式相似,默认都是使用jinja_yaml格式。pillar与grains最大的不一样点就是pillar是动态加载的,数据是随时变化的,它能根据不一样的信息显示不一样的数据,特定的minion只能看到特定的数据,所以能用于存储敏感数据,好比密码,这个数据定义方式使用的最多,操做简单。app

    首先定义下pillar的根路径和top.sls文件,以下图。
ide

wKioL1OIIXCgRuNJAABUa4s_QmU928.jpg

wKiom1OIIZ2Qz1HDAAAkkIopWf4613.jpg


top.sls在/opt/app/salt/pillar目录下。函数

wKiom1OIJYHgZXwcAABpbSAzeGY281.jpg

wKioL1OIJVXgdqfXAACZNxPQ9Ao996.jpg

wKiom1OIJYGBP_34AACGJpwz-kg653.jpg


结果显示,数据定义了,直接获取就好了,这个操做很简单,基本不耗资源。spa

很简单,是吗?好,来点需求,我想获取master端的时间咋办!!!blog

很简单的,在pillar里能够调用执行模块cmd.run来获取,如图。接口

wKioL1OIJvmBj6WrAAENZWn3bh8868.jpg


获取到了时间,可是我想要的格式是YYYYmmddHHMMSS,怎么办啊!资源

要知道jinja_yaml有时候不够灵活,能够换种方式,采用其余的renderers。这里采用py方式。get

wKiom1OIKOCjPvqrAAGRkJ7GD4U308.jpg

当当当,是否是很灵活啊!只要你对salt够熟悉,你想作什么就作什么,固然不能干愚蠢的事情啊!!cmd

这里说下,使用py renderer时,函数名必须是run,至于为何,源码里有说明的。源码


待续。。。

相关文章
相关标签/搜索