saltstack pillar与grains实战

网友投稿 604 2023-02-13

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。

saltstack pillar与grains实战

先说下原始需求

1.我们全网的squid配置文件 配置比较乱 有视频 下载 web 3种业务的配置

2.我们全网的设备 磁盘大小 磁盘块数 也不同

3.我们某些节点还有特殊配置

目前就是针对这3个需求 统一一个squid主配置文件的模板 (jinja模板)

先讲下我的思路 (我的思路可能不是最好的 但是我能保证我的配置是能用的)

1.先收集全网所以squid 配置文件 对比 分析 挑选出 其中的共同之处 (squid 性能配置一般是一样的) 然后定义存储到pillar里面

2.然后对比 那些有区别的地方 (统计一下 有多少种配置) 然后 讲每种配置 都存储到pillar 里面

3.然后编写grains 去 采集设备自身的信息 (磁盘数 服务业务等等) 然后根据自身的grains 信息 自动调用上面定义的pillar 生成文件

OK 思路就是这样 不知道 你们看懂没 总结一句话吧 1. 把不变的东西 存到pillar 里面 2. 不确定的东西 用grains 去采集 3.根据采集的值 调用不同的pillar

现在我开始讲案例吧

先说下我们全网的squid配置文件的不同之处

1. 视频 下载 web 的核心配置不一样 (我们是通过api去确定这台设备改服务什么)这个是主导方向

2.有12*1T 12*2T 的设备 ( 直接定义2种pillar )

3.还有某些自定义的配置 (预留一个自定义的pillar)

cat _grains/fc8.py

脚本的意思 这里不用多讲了吧 还是那句话 python 牛掰了 想怎么弄 就怎么弄 按照官方源码的格式弄就行

这里说下这个脚本的用途吧 去采集3个值

1. 磁盘的块数

2.每块盘的大小

3.这台设备的应用(公司api已经有绑定)

同步下 这里不说了 saltutil.sync_grains 你懂的 验证这个也不多说了

然后去编写pillar值吧 这个是静态的 很简单 (例子 我前面的博客也有介绍)

我直接上配置吧

我的pillar结构就是这样的 下面我会每个挑个例子说下

cache.sls 这个里面定义 squid 的cache_dir配置 (跟盘大小 跟盘数量有关 你懂的)

sc.sls 这个里面定义所以squid配置文件里面共同的配置 你懂的

core.sls 这个里面定义 核心配置(跟 服务业务有关 视频 下载 web)

optimize.sls 这个是一些调优配置 (服务业务有关 视频 下载 web)

diy.sls 这个你懂的 留个一些 特殊配置用的

ok 下面 开始讲 没个sls的 定义吧 (前面也讲过 我这里指截图一部分 )

cache.sls 的部分配置

截图为 web 业务的2种配置 下载跟视频的 也一样 挨着定义就行 这里不截图

看看优化配置吧 (也是根据 web 视频 下载 3大业务来分的) 下面的截图是web的

其他的 也都差不多 记住我的方向是 根据业务来分的 就行 其他的配置 格式 也都一样 只是 东西不同(squid配置文件的一些东西)

OK pillar 也差不多讲完了 现在去弄弄 jinjia模板吧

我直接贴我的目标吧

这个就不讲了

核心在下面

判断很简单 你懂的 记住调用pillar值格式就行 我介绍一个吧

{{ pillar['CPISWEB']['12_1T'] }} 就这个吧

学过python的 这个应该能看懂吧 CPISWEB 是cache.sls 里面定义的一个 针对web的 12_1T 是web的cache_dir配置 简单吧

OK 先写到这里 抽烟去了。。。。。。。

上一篇:包含软件系统性能测试方法的词条
下一篇:saltstack mine使用
相关文章

 发表评论

评论列表