问题起因:
grains很强大,但是在启用双master时,grains更新存在BUG。
minion状态异常时也可能存在问题。
现状:
pillar从官方介绍上看是比较合适的解决方法,但是从搜索到的大部分资料上未有详解。
解决思路:
pillar的优势在收敛管理信息,故是否可在master上全面定义pillar,然后由各自的grains及jinja来解决此类问题?
pillar的sls:
group-1:
- 65.13.18.131
- 65.13.18.132
group-2:
- 117.223.12.34
- 117.223.12.32
jinja模板代码:
{% set cacheips = salt['pillar.get'](grains['cachegroup']) %}
{%- if cacheips -%}
{%- set ips = cacheips -%}
{% else %}
{%- set ips = [ grains['ip'] ] -%}
{%- endif -%}
....
这样,一些基本不改变的值由grains来管理,然后通过jinja调用每台机器的grains来读取集中管理的pillar中对应的需要的值。
参考文章:
(这个官方的practise也不错)
阅读(659) | 评论(0) | 转发(0) |