zoukankan      html  css  js  c++  java
  • [svc]salt-jinja模版

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

       

       

       

       

    apache监听的端口统一改为8080

       

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

       

       

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

       

    执行看结果:

       

    ok come on.

       

       

       

    写多个变量列表

    2个吧

    老套路 修改模版

    定义HOSTPORT

       

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

       

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

       

    接下去测一下

       

    comeon 配置文件真的变了

    ...

    ...

       

       

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

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

       

    二话不说,开干.

       

    命令行获取对端地址

       

    sls

       

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

       

    这种还有一种蛋疼的写法

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

    转而在模版里配置下

       

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

       

       

       

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

       

    模板里加上值

       

    修改sls

       

    通过执行命令获取值

       

       

       

       

       

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

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

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

       

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

    模版的变量值可以通过pillar

       

       

    首先使用pillar要注意:

       

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

       

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

       

       

    创建apache.sls

       

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

       

       

       

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

       

       

    期间报错了

    我看下了日志

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

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

    注意:

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

       

    还有要注意环境哦.

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

       

       

       

       

       

  • 相关阅读:
    钩子函数和回调函数的区别
    观察者模式(Observer)和发布-订阅者模式(Publish/Subscribe)区别
    前端解决跨域问题的终极武器——Nginx反向代理
    CORS(cross-origin-resource-sharing)跨源资源共享
    Vue父子组件通讯
    js的变量——基本类型保存在栈中,引用类型保存在堆中
    python
    CentOS7 下 Zabbix3.4 源码安装
    linux配置ssh公钥认证,打通root用户的免密码输入的scp通道
    python
  • 原文地址:https://www.cnblogs.com/iiiiher/p/5966496.html
Copyright © 2011-2022 走看看