实现不同机器的差异化配置

[svc]salt-jinja模版-LMLPHP

把apache监听的端口统一改为8080

把配置文件files/httpd.conf 文件做成模版

[svc]salt-jinja模版-LMLPHP

[svc]salt-jinja模版-LMLPHP

修改lamp.sls改模版变量赋值

[svc]salt-jinja模版-LMLPHP

执行看结果:

[svc]salt-jinja模版-LMLPHP

[svc]salt-jinja模版-LMLPHP

ok come on.

写多个变量列表

写2个吧

老套路 修改模版

[svc]salt-jinja模版-LMLPHP

定义HOST和PORT

[svc]salt-jinja模版-LMLPHP

但问题来了 HOST的指定? 因为每个机器的ip不一样 好, 姑且暂时先不用理这个问题

修改lamp.sls 给模版变量赋值

[svc]salt-jinja模版-LMLPHP

接下去测一下

[svc]salt-jinja模版-LMLPHP

comeon 配置文件真的变了

[svc]salt-jinja模版-LMLPHP

...

[svc]salt-jinja模版-LMLPHP

...

给模块赋值,那么 这个值可以用三个组件来获取

grains pillar 直接执行 以下一一介绍

二话不说,开干.

命令行获取对端地址

[svc]salt-jinja模版-LMLPHP

改sls

[svc]salt-jinja模版-LMLPHP

测试结果 apache的配置被改了.

这种还有一种蛋疼的写法

即不在sls里配置 值 直接在模版里配置

[svc]salt-jinja模版-LMLPHP

转而在模版里配置下

[svc]salt-jinja模版-LMLPHP

这种方式不太好管理, 如果我看sls里可以一目了然的看到我用了哪些 变量. 而这个方式 确实蛋疼了.

第二种方式:通过执行命令获取

模板里加上值

[svc]salt-jinja模版-LMLPHP

修改sls

[svc]salt-jinja模版-LMLPHP

通过执行命令获取值

[svc]salt-jinja模版-LMLPHP

[svc]salt-jinja模版-LMLPHP

剩下最后一种方式了.通过pillar

我们的目标是不老修改sls, . 在别的机器上用,我们不用老改那个sls了.

[svc]salt-jinja模版-LMLPHP

这些变量写成配置文件的形式??

pillar可以给每个minion指定不同的值

模版的变量值可以通过pillar值

首先使用pillar要注意:

[svc]salt-jinja模版-LMLPHP

接下去将三个值都该为pillar模式

[svc]salt-jinja模版-LMLPHP

修改master配置 创建pillar环境 存放pillar的sls

[svc]salt-jinja模版-LMLPHP

[svc]salt-jinja模版-LMLPHP

创建apache.sls

[svc]salt-jinja模版-LMLPHP

创建top.sls ->记住 top.sls永远只有1个 永远存放在base环境下

[svc]salt-jinja模版-LMLPHP

几经周折 弄出了这个目录结构

[svc]salt-jinja模版-LMLPHP

期间报错了

[svc]salt-jinja模版-LMLPHP

我看下了日志

是我的pillar apache.sls里的键写错了

pillar的top.sls给某个主机指定某个值.然后用salt '*' state.highstate去执行

注意:

如果 pillar里没指定的主机,则执行时候会报错误,大概意思说是没template没有值给提供.

还有要注意环境哦.

top.sls的位置,及其它环境位置.

05-28 14:58