zoukankan      html  css  js  c++  java
  • 自动化运维工具SaltStack

    转自:https://segmentfault.com/a/1190000000513137

    今天在进行 saltstack 多环境的时候,遇到一个问题,最终得到解决,好记性不如烂笔头,记录。

    首先,我在 salt master 服务器上对 /etc/salt/master 配置文件进行多环境配置,配置文件如下:

    file_roots:
      base:
        - /srv/salt/base
      dev:
        - /srv/salt/dev
      prod:
        - /srv/salt/prod
      test:
        - /srv/salt/test
    

    然后在分别建立配置文件所配置的目录。
    其中我的 /srv/salt/prod 的目录树如下:

    /srv/salt/prod
    |-- nginx
    |   `-- stock.sls
    |-- stock.prod.com
    |   `-- nginx
    |       `-- stock.prod.com
    `-- top.sls
    

    我做这个主要是为了对集群中的 nginx 的配置文件进行批量管理,当配置文件变更后,能进行批量推送。

    弄完以上后,执行命令让其生效:

    sudo salt -N STOCK  state.highstate -v
    

    执行完毕,能成功生效,但是突然想到个问题,这个是全局的所有的环境的所有的状态生效,如果我要只对 prod 环境的某一个状态生效呢,或者是其他的环境。于是查看官方文档,发现了可以使用 state.sls 来指定特定的进行处理,当时也没有细看,就直接执行命令:

    sudo salt -N STOCK state.sls nginx.stock
    

    结果执行报错,告诉我在 base 下面没有匹配到 nginx.stock

    当时想,不应该是,我不是定义了么,开始是以为 state.sls 和 state.highstate 一样,会对所有的环境遍历。
    有问题,就 google 呗,然后 google 了下没有出来,啃官方文档去,找到 state.sls 的那段,发现定义如下:

    salt.modules.state.sls(mods,saltenv='base',test=None,exclude=None,queue=False,env=None,concurrent=False,**kwargs)
    

    从上面可以看出, state.sls 默认的运行环境是 base,另外通过查看了下 saltstack 的 google groups ,发现绿肥也对这个解答了下, state.sls 并不读取 top.sls,所以 state.sls 需要单独执行哪些 sls 的话,需要你自定义。
    绿肥解答的连接请点击这里

    注:由于万恶的长城的存在,请准备梯子。

    经过上面的查看,因此,修正执行命令

     sudo salt -N STOCK state.sls  saltenv='prod' nginx.stock
    

    多加一个参数 saltenv,问题解决。更详细的内容请看官方的文档介绍 - salt.modules.state.sls

  • 相关阅读:
    初识python 2.x与3.x 区别
    装饰器
    函数的进阶
    Spring Boot启动问题:Cannot determine embedded database driver class for database type NONE
    22.Spring Cloud Config安全保护
    23.Spring Cloud Bus 无法更新问题(踩坑) Spring cloud config server Could not fetch remote for master remote
    24.Spring Cloud之Spring Cloud Config及Spring Cloud Bus
    Spring Boot整合Spring Data Elasticsearch 踩坑
    项目中Spring Security 整合Spring Session实现记住我功能
    32.再谈SpringBoot文件上传
  • 原文地址:https://www.cnblogs.com/yycc/p/7444343.html
Copyright © 2011-2022 走看看