gpt4 book ai didi

salt-stack - 条件 salt 状态

转载 作者:行者123 更新时间:2023-12-03 17:36:18 25 4
gpt4 key购买 nike

我有一个场景,如果另一个服务已经在运行,我需要采取行动。具体来说,我想安装 snmp 监控,例如,如果 mysql 已经在运行。

我知道这样做的“正确”方法是安装 mysql 及其基于支柱数据、grain 数据或其他一些顶级文件过滤的监控。但是,在这种情况下,mysql 是在配置管理之外安装的(例如,MSP 的客户端安装了 mysql,但随后依赖托管服务提供商来配置监控)。

在这种情况下,最佳做法是什么?

我想到的一些解决方案:

  • 创建一个自定义grain,列出正在运行的服务。
  • 使用除非/仅当(以及不同操作系统发行版的映射文件)
  • 一个 Beacon(表示服务正在运行)和一个 react 器(部署)
  • 在状态文件中调用jinja中的service.status执行模块,如:
  • {% set mysqlrunning = salt['service.status'](mysql_service) %}
    {% if mysqlrunning %}
    <rest of state file>
    {% endif %}

    虽然#4 看起来很简单,但恐怕它会很慢并且在大型部署(1000 台服务器)中使用大量系统资源。

    在这种情况下,最佳做法是什么?

    最佳答案

    通常在各州使用 jinja 应该很容易,但使用 jinja maps .
    在您的示例中,我将使用 require

    mysqld:
    service.running

    insert_sql:
    cmd.run:
    - name: mysql < /tmp/src.sql
    - require:
    - service: mysqld

    关于salt-stack - 条件 salt 状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47721767/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com